映射配置¶
本文介绍将数据导入悦数图数据库开发版时的映射配置,包括点映射配置和边映射配置。
点映射配置¶
点映射配置写在配置文件的sources.nodetypes一节。
配置示例¶
sources: [
{
// type:"hdfs"
// format:"csv"
// header:false
// separator:","
// path: "hdfs://127.0.0.1:9000/import_movie/sub_movie.csv"
nodetypes: [
{
name: "movie"
sourceFields:[movieid, name]
nebulaFields:[id, name]
batchSize: 1000
enableRealTimeQPSLog: true
mode: "INSERT IGNORE"
}
]
edgetypes: []
}
]
配置项¶
| 选项 | 描述 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
name |
图中待写入数据的点类型的名称。 | String | 是 | 无 |
sourceFields |
数据源的字段名列表。这些字段的值将作为点类型的属性值写入。 若数据源为 NebulaGraph 3.x,需将 sourceFields设置为从中检索数据的属性名列表。此外,还支持指定_vertexId以检索点 ID;指定_srcId、_dstId和_rank以分别检索边的起始点 ID、终点 ID 和排序值(rank)。 |
List | 是 | 无 |
nebulaFields |
点类型的属性名列表。属性名的顺序必须与sourceFields中的字段名顺序一一对应。 |
List | 是 | 无 |
关于nebulaFields支持的属性的数据类型,以及特殊数据类型对sourceFields字段的格式要求,请参见支持的数据类型。
通用写配置¶
下列配置项也可以作为全局设置在配置文件的writeCommon一节指定:batchSize、enableRealTimeQPSLog和mode。请注意,针对特定点类型的配置会覆盖全局设置。
关于这些配置项的详细信息,请参见通用写配置。
边映射配置¶
边映射配置写在配置文件的sources.edgetypes一节。
配置示例¶
sources: [
{
// type:"hdfs"
// format:"csv"
// header:false
// separator:","
// path: "hdfs://127.0.0.1:9000/import_movie/sub_user_watched_movies.csv"
nodetypes: [ ]
edgetypes: [
{
name: "watch"
sourceKeys: [userid]
nebulaSrcKeys: [id]
targetKeys: [movieid]
nebulaDstKeys: [id]
sourceFields:[rate]
nebulaFields:[rate]
batchSize: 1000
enableRealTimeQPSLog: true
mode: "INSERT IGNORE"
ignoreHangingEdge: false
}
]
}
]
配置项¶
| 选项 | 描述 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
name |
图中待写入数据的边类型的名称。 | String | 是 | 无 |
sourceKeys |
数据源中映射为边类型的起始点类型的主键的字段列表。 | List | 是 | 无 |
nebulaSrcKeys |
作为边类型的起始点类型的主键的属性名列表。属性名的顺序必须与sourceKeys中的字段名顺序一一对应。若起始点类型的主键仅由一个属性构成,则该选项为可选。 |
List | 否 | 无 |
targetKeys |
数据源中映射为边类型的目标点类型的主键的字段列表。 | List | 是 | 无 |
nebulaDstKeys |
作为边类型的目标点类型的主键的属性名列表。属性名的顺序必须与targetKeys中的字段名顺序一一对应。若目标点类型的主键仅由一个属性构成,则该选项为可选。 |
List | 否 | 无 |
sourceFields |
数据源的字段名列表。这些字段的值将作为边类型的属性值写入。 若数据源为 NebulaGraph 3.x,需将 sourceFields设置为从中检索数据的属性名列表。此外,还支持指定_vertexId以检索点 ID;指定_srcId、_dstId和_rank以分别检索边的起始点 ID、终点 ID 和排序值(rank)。 |
List | 否 | 无 |
nebulaFields |
边类型的属性名列表。属性名的顺序必须与sourceFields中的字段名顺序一一对应。 |
List | 否 | 无 |
ignoreHangingEdge |
是否忽略悬挂边,即两端或一端未连接点的边。可选值:true:不报错,忽略悬挂边,但计为成功写入操作。false:报错,悬挂边写入失败。 |
Bool | 否 | false |
关于nebulaSrcKeys、nebulaDstKeys和nebulaFields支持的属性的数据类型,以及特殊数据类型对sourceKeys、targetKeys和sourceFields字段的格式要求,请参见支持的数据类型。
通用写配置¶
下列配置项也可以作为全局设置在配置文件的writeCommon一节指定:batchSize、enableRealTimeQPSLog、mode和ignoreHangingEdge。请注意,针对特定边类型的配置会覆盖全局设置。
关于这些配置项的详细信息,请参见通用写配置。
支持的数据类型¶
悦数数据迁移支持将源数据映射至以下类型的悦数图数据库开发版属性中:
| 数据类型 | 说明 |
|---|---|
| 数值 | 类型包括:INT、DOUBLE、FLOAT、DECIMAL。 |
| 字符串 | 类型包括:STRING。 |
| 布尔 | 类型包括:BOOL。 |
| 日期和时间 | 类型包括:DATE、DURATION、LOCAL DATETIME、LOCAL TIME、ZONED DATETIME、ZONED TIME。 |
| 列表 | LIST<E>,其中E可以是INT、DOUBLE、FLOAT、STRING或BOOL。导入格式:以 [开始、]结束,勿加LIST前缀。用逗号分隔元素。例如:[1, 2, 3]、["1", "2", "3"]。 |
| 集合 | SET<E>,其中E可以是任意预定义数据类型,或除记录和路径外的复合数据类型。导入格式:以 {开始、}结束,勿加SET前缀。用逗号分隔元素。例如:{1, 2, 3}。 |
| 映射 | MAP<key_type, value_type>,键和值可以是任意预定义数据类型,或除记录和路径外的复合数据类型。导入格式:以 {开始、}结束,勿加MAP前缀。使用key:value形式,用逗号分隔键值对。例如{'a':123,'b':true}。 |
| 向量 | VECTOR<n, FLOAT>,其中n为维度数,取值范围 1 到 2,147,483,647。导入格式:以 [开始、]结束,勿加VECTOR前缀。元素必须为数值类型,不加引号,行间元素数量需一致。例如:[1.0, 2.0, 3.0]。 |
| 地理空间 | 包括POINT、LINESTRING、POLYGON,必须采用 WKT 格式。例如: POINT(37.7749 -12.4194)、LINESTRING(1 2, 2 4, 4 8)、POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))。 |