本文為您介紹GDB Reader支持的數據類型、字段映射和數據源等參數及配置示例。
說明
- GDB Reader僅支持使用獨享數據集成資源組 和自定義資源組。
- 開始配置GDB Reader插件前,請首先配置好數據源,詳情請參見配置Graph Database數據源。
- 由于點和邊的數據集成任務的配置不同,請您分別配置點和邊的數據集成任務。
使用須知
- 需要分開配置點任務和邊任務來導出GDB的點數據和邊數據。
- 導出任務按點或邊的類型名(即名稱,對應label)遍歷數據,因此您需要正確提供待導出數據的類型名。
- GDB中點和邊的主鍵ID字段是字符串類型,導出應該配置成string類型,如果配置long等數值類型,插件會轉換成配置的目標類型,但轉換失敗時會丟失該記錄。
- GDB導出的屬性值需要配置成存儲類型,如果存儲類型與配置類型不一致,插件會轉換成目標類型,但可能會轉換失敗導致該記錄丟失。
- 導出點SET屬性的一個值時,不能保證多次導出都是同一個值。
- 導出所有屬性使用JSON格式輸出時,只包含一個屬性值的SET屬性會被當成普通屬性輸出。
- 示例的字段名或枚舉值,如果沒有特殊說明,均為大小寫敏感。
- 目前GDB服務端僅支持UTF-8編碼格式,導出的數據均為UTF-8編碼格式。
- 由于網絡限制,運行數據集成任務時,只能使用獨享資源模式。
參數說明
參數 | 描述 | 是否必選 | 默認值 |
---|---|---|---|
datasource | 數據源名稱,腳本模式支持添加數據源,此配置項填寫的內容必須與添加的數據源名稱保持一致。 | 是 | 無 |
labelType | 寫入數據的類型
|
是 | 無 |
labels | 類型名,即點/邊名稱;支持讀取多個名稱數據,用數組表示。 | 是 | 無 |
column::name | 點/邊映射關系配置 name 字段。
讀取屬性時必選,提供屬性名。 |
是 | 無 |
column::type | 點/邊映射關系配置 type 字段。
|
是 | 無 |
column::columnType | 點/邊字段映射關系配置 columnType 字段。
點/邊字段映射字段的分類,支持以下枚舉值。
|
是 | 無 |
vertexJsonProperty格式
{"properties":[
{"k":"name","t":"string","v":"tom","c":"set"},
{"k":"name","t":"string","v":"jack","c":"set"},
{"k":"sex","t":"string","v":"male","c":"single"}
]}
edgeJsonProperty格式
{"properties":[
{"k":"name","t":"string","v":"tom"},
{"k":"sex","t":"string","v":"male"}
]}
注意
- 邊不支持多值屬性,封裝成JSON格式時,沒有
c
字段。 - 如果點的多值屬性只包含一個屬性值時,導出會被當成單值屬性處理。
向導開發介紹
暫不支持向導模式開發。
腳本開發介紹
配置一個導出GDB的數據同步作業,通過腳本模式開發請參見腳本模式配置任務。
- 點配置示例
{ "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] }, "setting":{ "errorLimit":{ "record":"100" //錯誤記錄數,表示臟數據最大容忍條數。 }, "jvmOption":"", "speed":{ "concurrent":3, "throttle":false } }, "steps":[ { "category":"reader", "name":"Reader", "parameter":{ "datasource": "testGDB", //數據源名稱。 "labelType": "VERTEX", // label類型,"VERTEX"表示點 "labels": ["label1", "label2"], // 類型名稱label列表,為空表示導出所有的點 "column": [ { "name": "id", // 字段名 "type": "string", // 字段類型 "columnType": "primaryKey" // 字段分類,表示點的主鍵id,GDB中是string類型 }, { "name": "label", // 字段名 "type": "string", // 字段類型 "columnType": "primaryLabel" // 字段分類,表示點的label名,GDB中是string類型 }, { "name": "age", // 屬性字段名 "type": "int", // 屬性字段類型 "columnType": "vertexProperty" // 字段分類,表示點的屬性,GDB中基礎類型屬性 } ] } "stepType":"gdb" }, { "category":"writer", "name":"Writer", "parameter":{ "print":false, //是否向屏幕打印輸出。 "fieldDelimiter":"," //列分隔符。 } "stepType":"stream" } ] "type":"job", "version":"2.0" }
- 邊配置示例
{ "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] }, "setting":{ "errorLimit":{ "record":"100" //錯誤記錄數,表示臟數據最大容忍條數。 }, "jvmOption":"", "speed":{ "concurrent":3, "throttle":false } }, "steps":[ { "category":"reader", "name":"Reader", "parameter":{ "datasource": "testGDB", //數據源名稱 "labelType": "EDGE", // label類型,"EDGE"表示邊 "labels": ["label1", "label2"], // 類型名稱label列表,為空表示導出所有的邊 "column": [ { "name": "id", // 字段名 "type": "string", // 字段類型 "columnType": "primaryKey" // 字段分類,表示邊的主鍵id,GDB中是string類型 }, { "name": "label", // 字段名 "type": "string", // 字段類型 "columnType": "primaryLabel" // 字段分類,表示邊的label名,GDB中是string類型 }, { "name": "srcId", // 字段名 "type": "string", // 字段類型 "columnType": "srcPrimaryKey" // 字段分類,表示邊關聯點中起點的id,GDB中是string類型 }, { "name": "srcLabel", // 字段名 "type": "string", // 字段類型 "columnType": "srcPrimaryLabel" // 字段分類,表示邊關聯點中起點的label名,GDB中是string類型 }, { "name": "dstId", // 字段名 "type": "string", // 字段類型 "columnType": "dstPrimaryKey" // 字段分類,表示邊關聯點中終點的id,GDB中是string類型 }, { "name": "dstLabel", // 字段名 "type": "string", // 字段類型 "columnType": "dstPrimaryLabel" // 字段分類,表示邊關聯點中終點的label名,GDB中是string類型 }, { "name": "weight", // 屬性字段名 "type": "double", // 屬性字段類型 "columnType": "edgeProperty" // 字段分類,表示邊的屬性 } ] } "stepType":"gdb" }, { "category":"writer", "name":"Writer", "parameter":{ "print":false, //是否向屏幕打印輸出。 "fieldDelimiter":"," //列分隔符。 } "stepType":"stream" } ] "type":"job", "version":"2.0" }
說明 GDB需要升級到
1.0.20
或更高版本才支持SET屬性,使用SET屬性時請確認實例版本。