本文为您介绍GDB(Graph Database) Reader支持的数据类型、字段映射和数据源等参数及配置示例。
背景信息
图数据库GDB(Graph Database)支持Property Graph图模型,是一种用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。GDB支持Apache
TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。
说明
- 开始配置GDB Reader插件前,请首先配置好数据源,详情请参见配置GDB数据源。
- 由于点和边的数据集成任务的配置不同,请您分别进行配置。
使用限制
- 导出GDB需要配置点任务和边任务,分别导出点数据和边数据。
- 导出任务根据点或边的类型名称遍历数据,您需要确保待导出数据的类型名称。
- GDB中点和边的主键ID字段是字符串类型,请配置导出为STRING类型。如果配置LONG等数值类型,GDB Reader会转换为配置的目标类型,但转换失败时会丢失该记录。
- 您需要配置GDB导出的属性值为存储类型。如果存储类型和配置类型不一致,GDB Reader会转换为目标类型,但可能会转换失败导致该记录丢失。
- 导出点SET属性的一个值时,不能保证多次导出都是同一个值。
- 导出所有属性使用JSON格式输出时,仅包含一个属性值的SET属性会被作为普通属性输出。
- 如果未对示例的字段名或枚举值进行特别说明,请注意大小写敏感。
- GDB服务端仅支持UTF-8编码格式,导出的数据均为UTF-8编码格式。
- GDB需要升级至1.0.20或更高版本才支持SET属性。使用SET属性时,请确认实例的版本。
参数说明
参数 | 描述 | 是否必选 | 默认值 |
---|---|---|---|
host | GDB实例的连接域名。您可以在图数据库GDB控制台,单击相应实例后的管理,查看内网地址(即host)。 | 是 | 无 |
port | GDB实例的连接端口。 | 是 | 8182 |
username | GDB实例的账号名。 | 是 | 无 |
password | GDB实例账号的密码。 | 是 | 无 |
labels | 类型名,即点或边的名称。支持读取多个名称的数据,使用数组表示,例如["label1", "label2"]。 | 是 | 无 |
labelType | 数据的Label类型:
|
是 | 无 |
column | 点或边的字段映射关系配置。 | 是 | 无 |
column -> name | 点或边的映射关系的字段名。读取属性时必选,请提供属性名。 | 是 | 无 |
column -> type | 点或边的映射关系的字段值类型:
|
是 | 无 |
column -> columnType | GDB点或边数据对应到的点或边的映射关系字段,包括以下枚举值:
|
是 | 无 |
脚本开发介绍
使用脚本模式开发的详情请参见通过脚本模式配置离线同步任务。
配置写入GDB的数据同步作业时,请分别配置点和边,详情请参见参数说明:
- 点配置示例
{ "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] }, "setting":{ "errorLimit":{ "record":"100" //错误记录数,表示脏数据的最大容忍条数。 }, "jvmOption":"", "speed":{ "concurrent":3, "throttle":true,///当throttle值为false时,mbps参数不生效,表示不限流;当throttle值为true时,表示限流。 "mbps":"12"//限流 } }, "steps":[ { "category":"reader", "name":"Reader", "parameter":{ "host": "gdb-xxxxxx.aliyuncs.com", //GDB实例的连接地址。 "port": 8182, //GDB实例的连接端口。 "username": "gdb", //GDB实例的用户名。 "password": "gdb", //GDB实例用户名对应的密码。 "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": true }, "stepType":"stream" } ] }
- 边配置示例
{ "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] }, "setting":{ "errorLimit":{ "record":"100" //错误记录数,表示脏数据的最大容忍条数。 }, "jvmOption":"", "speed":{ "concurrent":3, "throttle":true,//当throttle值为false时,mbps参数不生效,表示不限流;当throttle值为true时,表示限流。 "mbps":"12"//限流 } }, "steps":[ { "category":"reader", "name":"Reader", "parameter":{ "host": "gdb-xxxxxx.aliyuncs.com", //GDB实例的连接地址。 "port": 8182, //GDB实例的连接端口。 "username": "gdb", //GDB实例用户名。 "password": "gdb", //GDB实例用户名对应的密码。 "labelType": "EDGE", // 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": "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": true }, "stepType":"stream" } ] }