DataWorksデータ統合は、MaxComputeテーブルからMaxgraphにデータを書き込むためのMaxgraph Writerを提供します。このトピックでは、Maxgraphデータソースへのデータ同期機能について説明します。
制限事項
- コードエディターのみを使用して、Maxgraphデータソースにデータを書き込むバッチ同期ノードを設定できます。
- ユースケースは、MaxComputeからMaxgraphへのデータ同期です。
データ同期前に必要な権限を持つMaxgraphアカウントを準備する
Maxgraph Writerを使用してMaxComputeテーブルからMaxgraphにデータを書き込む場合は、MaxComputeプロジェクト内のMaxComputeテーブルに対する読み取り権限をMaxgraphビルドアカウントに付与します。 Maxgraph管理者に連絡して、Maxgraphビルドアカウントを取得してください。
データ同期ノードを開発する
- 設定手順の詳細については、コードエディターを使用してバッチ同期タスクを設定するをご参照ください。
- コードエディターを使用してバッチ同期ノードを設定する場合に設定されるすべてのパラメーターと実行されるコードについては、付録:コードとパラメーターをご参照ください。
付録:コードとパラメーター
付録:コードエディターを使用してバッチ同期ノードを設定する
コードエディターを使用してバッチ同期タスクを設定する場合は、コードエディターの形式要件に基づいて、関連データソースのリーダーとライターのパラメーターを設定する必要があります。 形式要件の詳細については、コードエディターを使用してバッチ同期タスクを設定するをご参照ください。 次の情報では、コードエディターのリーダーとライターのパラメーターの設定の詳細について説明します。
Maxgraph Writerのコード
次のコードでは、頂点とエッジに関するデータをMaxgraphに書き込むように同期ノードが設定されています。
- 頂点に関するデータをMaxgraphに書き込む同期ノードを設定する
{ "job": { "setting": { "speed": { "channel": 1 // channel を 1 に設定します。 }, "errorLimit": { "record": 1000 } }, "content": [ { "reader": { "name": "odpsreader", "parameter": { "accessId": "*****", "accessKey": "*****", "project": "maxgraph_dev", "table": "maxgraph_demo_person", "column": [ // MaxComputeテーブルの列の名前。 このパラメーターの値は、Maxgraph Writerの column パラメーターの値と1対1でマッピングされます。 "id", "name", "age" ], "packageAuthorizedProject": "biggraph_dev", "splitMode": "record", "odpsServer": "******" } }, "writer": { "name": "maxgraphwriter", "parameter": { "endpoint": "http://graph.alibaba.net", "graphName": "xxx", "accessId": "xxx", "accessKey": "xxx", "label": "person", "labelType": "vertex", "onlineMode": "partition", "splitSize": "256", "column": [ // Maxgraphの頂点プロパティの名前。 このパラメーターの値は、MaxCompute Readerの column パラメーターの値と1対1でマッピングされます。 "id", "name", "age" ] } } } ] } } - エッジに関するデータをMaxgraphに書き込む同期ノードを設定する
{ "job": { "setting": { "speed": { "channel": 1 // channel を 1 に設定します。 }, "errorLimit": { "record": 1000 } }, "content": [ { "reader": { "name": "odpsreader", "parameter": { "accessId": "*****", "accessKey": "*****", "project": "maxgraph_dev", "table": "maxgraph_demo_knows", "column": [ "person_id", "person_id2", "weight", "id" ], "packageAuthorizedProject": "biggraph_dev", "splitMode": "record", "odpsServer": "****" } }, "writer": { "name": "maxgraphwriter", "parameter": { "endpoint": "http://graph.alibaba.net", "graphName": "xxx", "accessId": "xxx", "accessKey": "xxx", "label": "knows", "labelType": "edge", "srcLabel": "person", "dstLabel": "person", "onlineMode": "partition", "splitSize": "256", "column": [ { "name": "id", // プロパティの名前。 "propertyType": "srcPrimaryKey" // プロパティのタイプ。 有効な値:srcPrimaryKey、dstPrimaryKey、およびedgeProperty。 }, { "name": "id", "propertyType": "dstPrimaryKey" }, { "name": "weight", "propertyType": "edgeProperty" }, { "name": "id", "propertyType": "edgeProperty" } ] } } } ] } }
Maxgraph Writerのコードのパラメーター
| パラメーター | 説明 | 必須 | デフォルト値 |
| endpoint | Maxgraphのエンドポイント。 | はい | デフォルト値なし |
| graphName | Maxgraphインスタンスの名前。 | はい | デフォルト値なし |
| accessId | ユーザー名。 | はい | デフォルト値なし |
| accessKey | パスワード。 | はい | デフォルト値なし |
| label | ラベル。頂点またはエッジの名前。 | はい | デフォルト値なし |
| labelType | ラベルのタイプ。 有効な値:vertexおよびedge。 | はい | デフォルト値なし |
| srcLabel | エッジの開始頂点のラベル。 このパラメーターは、エッジに関するデータをインポートする場合にのみ有効です。 | はい | デフォルト値なし |
| dstLabel | エッジの終了頂点のラベル。 このパラメーターは、エッジに関するデータをインポートする場合にのみ有効です。 | はい | デフォルト値なし |
| splitSize | MapReduceジョブのシャードのサイズ。 単位:MB。 | いいえ | 256MB |
| onlineMode | Maxgraphのストレージにデータをアップロードするモード。有効な値:
| いいえ | type |
| column | 頂点プロパティの名前。 このパラメーターは、頂点に関するデータをインポートする場合にのみ有効です。 | はい | デフォルト値なし |
| name | プロパティの名前。 | エッジに関するデータをインポートする場合のみ必須 | デフォルト値なし |
| propertyType | プロパティのタイプ。 有効な値:srcPrimaryKey、dstPrimaryKey、およびedgeProperty。 | エッジに関するデータをインポートする場合のみ必須 | デフォルト値なし |
| srcPrimaryKey | 開始頂点のプライマリキー。 このパラメーターは、エッジに関するデータをインポートする場合にのみ有効です。 | エッジに関するデータをインポートする場合のみ必須 | デフォルト値なし |
| dstPrimaryKey | 終了頂点のプライマリキー。 このパラメーターは、エッジに関するデータをインポートする場合にのみ有効です。 | エッジに関するデータをインポートする場合のみ必須 | デフォルト値なし |
| edgeProperty | エッジのプロパティ。 エッジにプロパティがない場合は、このパラメーターを空のままにすることができます。 | いいえ | デフォルト値なし |