跳到主要内容
版本:Next

NebulaGraph

NebulaGraph 数据写入连接器

引擎支持

Spark
Flink
SeaTunnel Zeta

描述

NebulaGraph sink 将 SeaTunnel 数据行作为顶点写入一个已经存在的 Tag。首个版本使用参数化 DML,因此支持 NebulaGraph 3.5 及以上版本。

作业启动前必须创建目标 Space 和 Tag。当前版本不包含 Source、边写入、Schema 创建和删除处理。

主要特性

选项

名称类型必填默认值说明
hostslist-host:port 格式的 graphd 地址列表,也支持带方括号的 IPv6 地址。
usernamestring-NebulaGraph 用户名。
passwordstring-NebulaGraph 密码。
spacestring-已存在的 Space。
tagstring-已存在的顶点 Tag。
vid_fieldstring-用作顶点 ID 的输入字段。
write_fieldslistvid_field 外的全部字段写入 Tag 属性的输入字段。
write_modeenumINSERT可选值为 INSERTUPDATE
batch_sizeint500每个 nGQL 请求包含的顶点数。
timeout_millisint30000连接、socket 和 session 等待超时时间,单位为毫秒。
max_retriesint0首次写入失败后的重试次数。
retry_interval_millisint1000重试间隔,单位为毫秒。
common-options-Sink 通用选项。

write_mode [enum]

  • INSERT 只接收 INSERT 行,并执行 INSERT VERTEX IF NOT EXISTS。重放数据不会覆盖已经存在的顶点。
  • UPDATE 接收 INSERTUPDATE_AFTER 行,忽略 UPDATE_BEFORE,并执行 UPDATE VERTEX。目标顶点必须已经存在。

两种模式都会拒绝 DELETE 行。

通用选项

Sink 插件通用参数请参考 Sink 通用选项

支持的数据类型

顶点 ID 支持 STRINGTINYINTSMALLINTINTBIGINT,并且不能为 null。

SeaTunnel 属性类型NebulaGraph 参数值
STRING字符串
BOOLEAN布尔值
BYTES二进制
TINYINT / SMALLINT / INT / BIGINT整数
FLOAT / DOUBLE浮点数
DATEdate
TIMEtime
TIMESTAMPdatetime

其他属性类型会在 Sink 初始化时被拒绝。

写入语义和限制

  • Sink 提供 at-least-once 语义,在达到 batch_size、准备 checkpoint 和关闭 writer 时刷新数据。
  • max_retries 默认为 0,因为网络结果不明确时重试可能会重复写入。只有在当前写入模式对作业安全时才应启用重试。
  • 每个 Sink 配置块只向一个 Tag 写入顶点。不同 Tag 请使用不同的 Sink 配置块。
  • Space、Tag 和属性名称只能包含字母、数字或下划线,并且不能以数字开头。
  • 当前版本使用 NebulaGraph 默认的 Thrift socket,不提供 TLS 和 HTTP/2 配置。

任务示例

运行作业前先创建 Space 和 Tag,例如:

CREATE SPACE IF NOT EXISTS examples(vid_type = FIXED_STRING(64));
USE examples;
CREATE TAG IF NOT EXISTS person(name string, age int);

Schema 在 graphd 上生效后,可以运行以下作业:

env {
parallelism = 1
job.mode = "BATCH"
}

source {
FakeSource {
row.num = 2
schema = {
fields {
id = string
name = string
age = int
}
}
}
}

sink {
NebulaGraph {
hosts = ["localhost:9669"]
username = "root"
password = "nebula"
space = "examples"
tag = "person"
vid_field = "id"
write_fields = ["name", "age"]
write_mode = "INSERT"
}
}

变更日志

Change Log
变更提交版本
[Feature][Connector-V2] 添加 NebulaGraph 顶点 Sink-Next