本文为您介绍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属性时请确认实例版本。