DataWorks數據集成支持使用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 | 邊的屬性,如果邊沒有屬性,可以不填。 | 否 | 無 |