什么是Nebula ExchangeGraph
Graph(简称Exchange)是一款Apache Spark™应用,用于在分布式环境中将集群中的数据批量迁移到NebulaGraph中,能支持多种不同格式的批式数据和流式数据的迁移。
Exchange由Reader、Processor和Writer三部分组成。Reader读取不同来源的数据返回DataFrame后,Processor遍历DataFrame的每一行,根据配置文件中fields
的映射关系,按列名获取对应的值。在遍历指定批处理的行数后,Writer会将获取的数据一次性写入到NebulaGraph中。下图描述了Exchange完成数据转换和迁移的过程。
适用场景Graph
Exchange适用于以下场景:
- 需要将来自Kafka、Pulsar平台的流式数据,如日志文件、网购数据、游戏内玩家活动、社交网站信息、金融交易大厅或地理空间服务,以及来自数据中心内所连接设备或仪器的遥测数据等转化为属性图的点或边数据,并导入NebulaGraph数据库。
- 需要从关系型数据库(如MySQL)或者分布式文件系统(如HDFS)中读取批式数据,如某个时间段内的数据,将它们转化为属性图的点或边数据,并导入 NebulaGraph数据库。
- 需要将大批量数据生成NebulaGraph能识别的SST文件,再导入NebulaGraph数据库。
产品优点Graph
Exchange具有以下优点:
- 适应性强:支持将多种不同格式或不同来源的数据导入NebulaGraph数据库,便于迁移数据。
- 支持导入SST:支持将不同来源的数据转换为SST文件,用于数据导入。
-
支持断点续传:导入数据时支持断点续传,有助于节省时间,提高数据导入效率。
Note
目前仅迁移Neo4j数据时支持断点续传。
- 异步操作:会在源数据中生成一条插入语句,发送给Graph服务,最后再执行插入操作。
- 灵活性强:支持同时导入多个Tag和Edge type,不同Tag和Edge type可以是不同的数据来源或格式。
- 统计功能:使用Apache Spark™中的累加器统计插入操作的成功和失败次数。
- 易于使用:采用HOCON(Human-Optimized Config Object Notation)配置文件格式,具有面向对象风格,便于理解和操作。
数据源Graph
Exchange 2.5.0 支持将以下格式或来源的数据转换为NebulaGraph能识别的点和边数据,然后通过nGQL语句的形式导入NebulaGraph:
- 存储在HDFS或本地的数据:
- Graph
- Graph
- Graph
- Graph
- Graph
-
数据仓库:
- Graph
- Graph
- 图数据库:Graph(Client版本2.4.5-M1)
- 关系型数据库:Graph
- 列式数据库:Graph
- 流处理软件平台:Graph
- 发布/订阅消息平台:Graph
除了用nGQL语句的形式导入数据,Exchange还支持将数据源的数据生成SST文件,然后通过ConsoleGraph。
视频Graph
- Graph(3分08秒)
最后更新: August 11, 2021