Source: https://dev-docs.yueshu.com.cn/v5.3.2/utilities/exchange/config/sources/mapping/ Documentation version: v5.3.2 # 映射配置 本文介绍将数据导入悦数图数据库开发版时的映射配置,包括点映射配置和边映射配置。 ## 点映射配置 点映射配置写在配置文件的`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`字段的格式要求,请参见[支持的数据类型](https://dev-docs.yueshu.com.cn/v5.3.2/utilities/exchange/config/sources/mapping/#_10)。 #### 通用写配置 下列配置项也可以作为全局设置在配置文件的`writeCommon`一节指定:`batchSize`、`enableRealTimeQPSLog`和`mode`。请注意,针对特定点类型的配置会覆盖全局设置。 关于这些配置项的详细信息,请参见[通用写配置](https://dev-docs.yueshu.com.cn/v5.3.2/utilities/exchange/config/#_12)。 ## 边映射配置 边映射配置写在配置文件的`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`字段的格式要求,请参见[支持的数据类型](https://dev-docs.yueshu.com.cn/v5.3.2/utilities/exchange/config/sources/mapping/#_10)。 #### 通用写配置 下列配置项也可以作为全局设置在配置文件的`writeCommon`一节指定:`batchSize`、`enableRealTimeQPSLog`、`mode`和`ignoreHangingEdge`。请注意,针对特定边类型的配置会覆盖全局设置。 关于这些配置项的详细信息,请参见[通用写配置](https://dev-docs.yueshu.com.cn/v5.3.2/utilities/exchange/config/#_12)。 ## 支持的数据类型 悦数数据迁移支持将源数据映射至以下类型的悦数图数据库开发版属性中: | 数据类型 | 说明 | [数值](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/data-types/numeric-type/) | 类型包括:`INT`、`DOUBLE`、`FLOAT`、`DECIMAL`。 | [字符串](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/data-types/c-string-type/) | 类型包括:`STRING`。 | [布尔](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/data-types/boolean-type/) | 类型包括:`BOOL`。 | [日期和时间](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/data-types/temporal-type/) | 类型包括:`DATE`、`DURATION`、`LOCAL DATETIME`、`LOCAL TIME`、`ZONED DATETIME`、`ZONED TIME`。 | [列表](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/data-types/list-type/) | `LIST`,其中`E`可以是`INT`、`DOUBLE`、`FLOAT`、`STRING`或`BOOL`。 导入格式:以`[`开始、`]`结束,勿加`LIST`前缀。用逗号分隔元素。例如:`[1, 2, 3]`、`["1", "2", "3"]`。 | [集合](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/data-types/set-type/) | `SET`,其中`E`可以是任意预定义数据类型,或除记录和路径外的复合数据类型。 导入格式:以`{`开始、`}`结束,勿加`SET`前缀。用逗号分隔元素。例如:`{1, 2, 3}`。 | [映射](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/data-types/map-type/) | `MAP`,键和值可以是任意预定义数据类型,或除记录和路径外的复合数据类型。 导入格式:以`{`开始、`}`结束,勿加`MAP`前缀。使用`key:value`形式,用逗号分隔键值对。例如`{'a':123,'b':true}`。 | [向量](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/data-types/vector-type/) | `VECTOR`,其中`n`为维度数,取值范围 1 到 2,147,483,647。 导入格式:以`[`开始、`]`结束,勿加`VECTOR`前缀。元素必须为数值类型,不加引号,行间元素数量需一致。例如:`[1.0, 2.0, 3.0]`。 | [地理空间](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/data-types/geo-type/) | 包括`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))`。