什么是 Nebula Spark Connector WriterGraph
Nebula Spark Connector Writer 是 Nebula Spark Connector 的组成部分,为您提供了 Spark SQL 接口,您可以使用 Spark SQL 接口编程将 DataFrame 数据逐条或批量写入 NebulaGraph。
Nebula Spark Connector Writer 实现原理Graph
Nebula Spark Connector Writer 分别提供了两个接口,用于逐条或批量地将数据写入 NebulaGraph。
逐条写入数据Graph
Nebula Spark Connector Writer 基于 Spark 的 DataSourceV2 接口实现单条数据写入,实现步骤如下:
- 继承
WriteSupport接口并重写createWriter方法,并使用这个方法创建自定义的DataSourceWriter接口。 - 继承
DataSourceWriter接口,创建NebulaDataSourceVertexWriter类和NebulaDataSourceEdgeWriter类。重写createWriterFactory方法并返回自定义的DataWriterFactory。重写commit方法,用于提交整个事务。重写abort方法,用于做事务回滚。说明:NebulaGraph v1.1.0 不支持事务操作,所以,在这个实现中,
commit和abort无实质性操作。 - 继承
DataWriterFactory,创建NebulaVertexWriterFactory类和NebulaEdgeWriterFactory类,重写createWriter方法返回自定义的DataWriter。 - 继承
DataWriter,创建NebulaVertexWriter类和NebulaEdgeWriter类。重写write方法,用于写出数据。重写commit方法,用于提交事务。重写abort方法,用于做事务回滚。说明:NebulaGraph v1.1.0 不支持事务操作,所以在
DataWriter中,commit和abort无实质性操作。
Nebula Spark Connector Writer 的实现类图如下:

NebulaVertexWriter 和 NebulaEdgeWriter的write 方法中定义了具体写入逻辑。逐条写入数据的逻辑概括如下:
- 创建客户端,连接 NebulaGraph 的 Graph 服务。
- 指定即将写入数据的 NebulaGraph 图空间。
- 构造 NebulaGraph 插入数据的 nGQL 语句。
- 提交 nGQL 语句,执行写入操作。
- 定义回调函数接收写入操作执行结果。
批量数据写入Graph
Nebula Spark Connector Writer 批量写入数据的实现与 Graph 类似,即通过对 DataFrame 进行 map 操作批量数据的累计提交。
应用示例Graph
参考 Graph。
最后更新: April 7, 2021