DataWorksData Integration支援使用Maxgraph Writer匯入MaxCompute表資料至Maxgraph,本文為您介紹DataWorks的Maxgraph資料寫入能力。
使用限制
當前僅支援使用指令碼模式將資料寫入Maxgraph。
當前主要應用情境為同步MaxCompute資料至Maxgraph。
資料同步前準備
如果需要匯入MaxCompute表至Maxgraph,請先在源端MaxCompute專案中授予Maxgraph build帳號讀取源端MaxCompute表的許可權。請聯絡Maxgraph管理員提供關於授權的Maxgraph build帳號。
資料同步任務開發
資料同步任務的配置入口和通用配置流程可參見下文的配置指導。
操作流程請參見通過指令碼模式配置離線同步任務。
指令碼模式配置的全量參數和指令碼Demo請參見下文的附錄:Maxgraph指令碼Demo與參數說明。
附錄:Maxgraph指令碼Demo與參數說明
離線任務指令碼配置方式
如果您配置離線任務時使用指令碼模式的方式進行配置,您需要按照統一的指令碼格式要求,在任務指令碼中編寫相應的參數,詳情請參見通過指令碼模式配置離線同步任務,以下為您介紹指令碼模式下資料來源的參數配置詳情。
Writer指令碼Demo
Maxgraph中點和邊的匯入配置不一致,所以Maxgraph Writer需要區分點和邊。
點配置樣本
{ "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表的column名稱,與Writer配置項中的column一一對應。 "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 vertex的屬性名稱,與reader配置項中的column一一對應。 "id", "name", "age" ] } } } ] } }
邊配置樣本
{ "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", //對應的在graph中的屬性名稱。 "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作業的分區大小。 | 否 | 256MB |
onlineMode | 資料上線模式,包括partition和type。兩者區別如下:
| 否 | type |
column | 點的屬性名稱,僅匯入點時使用。 | 是 | 無 |
name | 屬性的名稱。 | 僅匯入邊時必填 | 無 |
propertyType | 屬性的類型,包括srcPrimaryKey、dstPrimaryKey和edgeProperty。 | 僅匯入邊時必填 | 無 |
srcPrimaryKey | 起點主鍵,僅匯入邊時使用。 | 僅匯入邊時必填 | 無 |
dstPrimaryKey | 終點主鍵,僅匯入邊時使用。 | 僅匯入邊時必填 | 無 |
edgeProperty | 邊的屬性,如果邊沒有屬性,可以不填。 | 否 | 無 |