DataWorks の Data Integration は、Maxgraph Writer を使用して、MaxCompute テーブルから Maxgraph にデータをインポートします。この Topic では、Maxgraph Writer のデータ書き込み機能について説明します。
制限事項
Maxgraph Writer はスクリプトモードのみをサポートします。
Maxgraph Writer は、主に MaxCompute から Maxgraph にデータを同期するために使用されます。
事前準備
MaxCompute テーブルから Maxgraph にデータをインポートするには、ソース MaxCompute プロジェクトのソーステーブルに対する読み取り権限を Maxgraph ビルドアカウントに付与する必要があります。ビルドアカウントの名前を取得するには、ご利用の Maxgraph 管理者にお問い合わせください。
データ同期タスクの開発
同期タスクの設定のエントリポイントと手順については、以下の設定ガイドをご参照ください。
手順については、「スクリプトモードでのタスクの設定」をご参照ください。
すべてのパラメーターとスクリプトデモについては、「付録:Maxgraph のスクリプトデモとパラメーターの説明」をご参照ください。
付録:Maxgraph のスクリプトデモとパラメーターの説明
コードエディタを使用したバッチ同期タスクの設定
コードエディタを使用してバッチ同期タスクを設定する場合、統一されたスクリプトフォーマットの要件に基づいて、スクリプト内の関連パラメーターを設定する必要があります。詳細については、「コードエディタでのタスクの設定」をご参照ください。以下では、コードエディタを使用してバッチ同期タスクを設定する際に、データソースに対して設定する必要があるパラメーターについて説明します。
Writer スクリプトデモ
Maxgraph の頂点とエッジのインポート設定は異なります。そのため、Maxgraph Writer は頂点とエッジを区別します。
頂点設定の例
{ "job": { "setting": { "speed": { "channel": 1 // チャンネルを 1 に設定します。 }, "errorLimit": { "record": 1000 } }, "content": [ { "reader": { "name": "odpsreader", "parameter": { "accessId": "*****", "accessKey": "*****", "project": "maxgraph_dev", "table": "maxgraph_demo_person", "column": [ // MaxCompute テーブルの列名。これらの列は、writer 設定の列と 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 頂点のプロパティ名。これらのプロパティは、reader 設定の列と 1 対 1 で対応します。 "id", "name", "age" ] } } } ] } }エッジ設定の例
{ "job": { "setting": { "speed": { "channel": 1 // チャンネルを 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" // プロパティのタイプ。ソース頂点、宛先頂点、またはエッジプロパティのいずれであるかを識別するために使用されます。 }, { "name": "id", "propertyType": "dstPrimaryKey" }, { "name": "weight", "propertyType": "edgeProperty" }, { "name": "id", "propertyType": "edgeProperty" } ] } } } ] } }
Writer スクリプトパラメーター
パラメーター | 説明 | 必須 | デフォルト値 |
endpoint | Maxgraph の URL。 | はい | なし |
graphName | グラフインスタンスの名前。 | はい | なし |
accessId | ユーザー名。 | はい | なし |
accessKey | ユーザーのパスワード。 | はい | なし |
label | ラベル名。頂点またはエッジの名前です。 | はい | なし |
labelType | ラベルタイプ。有効値:vertex および edge。 | はい | なし |
srcLabel | エッジのソース頂点のラベル。このパラメーターは、エッジをインポートする場合にのみ使用されます。 | はい | なし |
dstLabel | エッジの宛先頂点のラベル。このパラメーターは、エッジをインポートする場合にのみ使用されます。 | はい | なし |
splitSize | データ作成時の MapReduce ジョブのシャードサイズ。 | いいえ | 256 MB |
onlineMode | データ公開モード。有効値:partition および type。違いは次のとおりです:
| いいえ | type |
column | 頂点のプロパティ名。このパラメーターは、頂点をインポートする場合にのみ使用されます。 | はい | なし |
name | プロパティの名前。 | エッジをインポートする場合にのみ必須です。 | なし |
propertyType | プロパティのタイプ。有効値:srcPrimaryKey、dstPrimaryKey、および edgeProperty。 | エッジをインポートする場合にのみ必須です。 | なし |
srcPrimaryKey | ソース頂点のプライマリキー。このパラメーターは、エッジをインポートする場合にのみ使用されます。 | エッジをインポートする場合にのみ必須です。 | なし |
dstPrimaryKey | 宛先頂点のプライマリキー。このパラメーターは、エッジをインポートする場合にのみ使用されます。 | エッジをインポートする場合にのみ必須です。 | なし |
edgeProperty | エッジのプロパティ。エッジにプロパティがない場合、このパラメーターはオプションです。 | いいえ | なし |