数据导入配置¶
本文介绍悦数数据迁移导入功能的配置文件。
配置文件结构¶
悦数数据迁移配置文件的结构如下:
{
taskType: <task_type>
nebula: {}
error: {}
checkPoint: {}
sourcesCommon: {}
writeCommon: {}
sources: []
}
对于不同的数据源,悦数数据迁移配置文件的结构都是相同的,区别主要在sourcesCommon和sources部分。在悦数数据迁移包的目录yueshu-graph-exchange/template/中,提供了针对各个数据源的配置文件模板。
如上所示,配置文件包含以下部分:
taskType:指定任务类型。更多信息,请参见任务类型配置。nebula:指定悦数图数据库开发版的连接配置。更多信息,请参见悦数图数据库开发版配置。error:指定导入过程中如何处理脏记录和失败记录。更多信息,请参见错误配置。checkPoint:指定断点续传相关的配置。更多信息,请参见 Checkpoint 文件配置。sourcesCommon:指定数据源的通用配置。更多信息,请参见通用源配置。writeCommon:指定写操作的通用配置。更多信息,请参见通用写配置。sources:指定数据源的连接信息和特定配置、如何预处理源数据以及如何将源数据映射到悦数图数据库开发版的图元素。更多信息,请参见源配置。
任务类型配置¶
| 选项 | 描述 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
taskType |
任务类型。有效值:
-check、-dry或-reload且与此处指定的任务类型冲突,以导入命令中指定的选项为准。例如,导入命令中指定了选项-dry,但是设置本配置项为check,则系统执行预演操作。 |
String | 是 | import |
悦数图数据库开发版配置¶
本章节介绍如何在悦数数据迁移中配置悦数图数据库开发版。
配置示例¶
将<current-password>替换为登录账号的当前密码。若已修改密码,请使用修改后的密码。
nebula: {
graphAddr: "127.0.0.1:9669"
graphName: "movie"
user: "root"
enableEncryptPasswd: false
passwd: "<current-password>"
schema: "/default_schema"
timezone: "Asia/Shanghai"
dateFormat: "%Y-%m-%d"
localDatetimeFormat: "%Y-%m-%dT%H:%M:%S"
zonedDatetimeFormat: "%Y-%m-%dT%H:%M:%S %z"
localTimeFormat: "%H:%M:%S"
zonedTimeFormat: "%H:%M:%S %z"
connectTimeoutMs: 6000
requestTimeoutMs: 6000
enableDataCheck: false
retryTimes: 3
retryIntervalMs: 0
tls: {
enableTls: false
disableVerifyServerCert: false
ca: "/tmp/ca.pem"
cert: "/tmp/cert.crt"
key: "/tmp/key"
}
preHooks:[
""" CREATE GRAPH TYPE IF NOT EXISTS movie_type AS {
NODE Actor (LABEL Person {id INT64, name STRING, birthDate DATE, PRIMARY KEY (id)}),
NODE Director (LABEL Person {id INT64, name STRING, birthDate DATE, PRIMARY KEY (id)}),
NODE `User` (LABEL Person {id INT64 PRIMARY KEY}),
NODE Movie (LABEL Movie {id INT64 PRIMARY KEY, name STRING}),
NODE Genre (LABEL Genre {id INT64 PRIMARY KEY, name STRING}),
EDGE Act (Actor)-[:Act]->(Movie),
EDGE Direct (Director)-[:Direct]->(Movie),
EDGE Watch (`User`)-[:Watch {rate FLOAT}]->(Movie),
EDGE WithGenre (Movie)-[:WithGenre]->(Genre)
}""",
"CREATE GRAPH IF NOT EXISTS movie TYPED movie_type"
]
}
配置项¶
| 选项 | 描述 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
graphAddr |
Graph 服务的 IP 和端口。多个地址之间用英文逗号分隔。 | String | 是 | 无 |
graphName |
待写入数据的图的名称。 | String | 是 | 无 |
user |
Graph 服务的用户名。 | String | 否 | "root" |
enableEncryptPasswd |
是否使用加密密码。更多信息,请参见加密密码。 | Boolean | 否 | 无 |
passwd |
登录账号的当前密码。若enableEncryptPasswd为true,使用该密码的加密值,见加密密码。 |
String | 是 | 无 |
schema |
待写入数据的 Schema。 | String | 否 | null,代表逻辑路径/default_schema中的默认 Schema。 |
timezone |
在 Graph 服务的会话中设置的时区。 | String | 否 | null,代表运行 Graph 服务的服务器上的时区。 |
dateFormat |
在 Graph 服务的会话中设置的日期格式。 | String | 否 | null,代表默认格式%Y-%m-%d。 |
localDatetimeFormat |
在 Graph 服务的会话中设置的本地日期时间格式。 | String | 否 | null,代表默认格式%Y-%m-%dT%H:%M:%S。 |
zonedDatetimeFormat |
在 Graph 服务的会话中设置的带时区的日期时间格式。 | String | 否 | null,代表默认格式%Y-%m-%dT%H:%M:%S %z。 |
localTimeFormat |
在 Graph 服务的会话中设置的本地时间格式。 | String | 否 | null,代表默认格式%H:%M:%S。 |
zonedTimeFormat |
在 Graph 服务的会话中设置的带时区的时间格式。 | String | 否 | null,代表默认格式%H:%M:%S %z。 |
connectTimeoutMs |
与 Graph 服务建立连接的超时时间(毫秒)。 | Long | 否 | 3600000 |
requestTimeoutMs |
向 Graph 服务发送写请求的超时时间(毫秒)。 | Long | 否 | 3600000 |
enableDataCheck |
是否检查悦数数据迁移中数据的有效性。当源数据中含有脏数据时启用此功能。 | Boolean | 否 | false |
retryTimes |
写入操作失败时,重试的次数。 | Integer | 否 | 3 |
retryIntervalMs |
写入操作失败时,两次重试操作之间的时间间隔。单位:毫秒。 | Integer | 否 | 0 |
enableTls |
是否启用 TLS。 | Boolean | 否 | false |
disableVerifyServerCert |
是否跳过服务端证书验证。 | Boolean | 否 | false |
ca |
用于校验服务器证书的 CA 证书文件的路径。如果enableTls设置为true且disableVerifyServerCert设置为false,则此项必填。 |
String | 否 | 无 |
cert |
客户端证书文件的路径。如果悦数图数据库开发版的 Graph 服务的配置文件里将tls_client_verify设置为true,则此项必填。 |
String | 否 | 无 |
key |
客户端私钥文件的路径。如果悦数图数据库开发版的 Graph 服务的配置文件里将tls_client_verify设置为true,则此项必填。 |
String | 否 | 无 |
preHooks |
导入数据前需要按顺序执行的 GQL 语句。如果语句中包含换行符、括号、双引号等符号,使用"""包围该语句;如果没有,使用"包围该语句。 |
List | 否 | 无 |
错误配置¶
本章节介绍悦数数据迁移中的错误配置。
配置示例¶
error: {
path: "file:///tmp/errors"
maxRecords: 10000
}
配置项¶
| 选项 | 描述 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
path |
存储脏记录和失败记录的相对或绝对路径,这些记录以 GQL 语句的形式存储。可以指定以下来源中的路径:
|
String | 否 | "file:///tmp/errors/" |
maxRecords |
允许的脏记录和失败记录的最大总数。若设为负数,无论产生多少脏记录和失败记录,导入任务都会继续进行直到完成。 | Int | 否 | Int.MAX_VALUE,即2,147,483,647。 |
Checkpoint 文件配置¶
本章节介绍如何在悦数数据迁移中配置 Checkpoint 文件以实现断点续传。
Note
除 Kafka 之外的所有数据源类型都可以通过配置 Checkpoint 文件实现断点续传。要为 Kafka 开启断点续传,可将配置项startingOffsets设置为latest,从最新偏移量读取数据。更多信息,请参见 Kafka 配置。
配置示例¶
checkPoint: {
path: "file:///tmp/checkpoint"
resume: true
}
配置项¶
| 选项 | 描述 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
path |
记录数据传输进度的 Checkpoint 文件的相对或绝对路径。在导入不同数据批次时,需为每个批次指定唯一路径。可以指定以下来源中的路径:
|
String | 否 | "file:///tmp/checkpoint" |
resume |
是否启用断点续传。 | Bool | 否 | false |
通用源配置¶
通用源配置指定了数据源的全局设置,具体配置根据数据源的不同而有所不同。
这些配置是可选的,也可以在源配置中针对每个数据源指定。针对特定数据源的配置将覆盖全局设置。
关于每个数据源所适用的通用配置项的详细信息,请参见各数据源的配置文档:
- 本地文件系统配置
- HDFS 配置
- Hive 配置
- JDBC 配置
- Kafka 配置
- MaxCompute 配置
- Neo4j 配置
- NebulaGraph 3.x 配置
- Amazon S3 配置
- 腾讯云配置
通用写配置¶
通用写配置指定了将数据写入悦数图数据库开发版 5.x 时的全局设置。
这些配置是可选的,也可以在源配置中针对每个点类型或边类型指定。针对特定点类型或边类型的配置将覆盖全局设置。
配置示例¶
writeCommon:{
enableRealTimeQPSLog: true
batchSize:20
mode: "INSERT IGNORE"
ignoreHangingEdge: false
}
配置项¶
| 选项 | 描述 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
enableRealTimeQPSLog |
是否启用写请求的实时日志。 |
Bool | 否 | false |
batchSize |
每个写请求处理的记录数(即点和边的总和)。 | Int | 否 | 1000 |
mode |
写入到悦数图数据库开发版时的数据操作模式。 有效值为 "INSERT"、"INSERT IGNORE"、"INSERT REPLACE"、"INSERT UPDATE"、"UPDATE"、"DELETE"和"DETACH DELETE"。更多信息,请参见数据操作。 |
String | 否 | "INSERT IGNORE" |
ignoreHangingEdge |
是否忽略悬挂边,即两端或一端未连接点的边。可选值:true:不报错,忽略悬挂边,但计为成功写入操作。false:报错,悬挂边写入失败。 |
Bool | 否 | false |
Note
以上通用写配置仅适用于标准导入方式(taskType: import)。如需自定义写入逻辑,请参见基于 GQL 模板导入。