什么是 Nebula Exchange
Exchange 由 Reader、Processor 和 Writer 三部分组成。Reader 读取不同来源的数据返回 DataFrame 后,Processor 遍历 DataFrame 的每一行,根据配置文件中 的映射关系,按列名获取对应的值。在遍历指定批处理的行数后,Writer 会将获取的数据一次性写入到 Nebula Graph 中。下图描述了 Exchange 完成数据转换和迁移的过程。
Exchange 可被用于以下场景:
您想将来自 Kafka、Pulsar 平台的流式数据,如日志文件、网购数据、游戏内玩家活动、社交网站信息、金融交易大厅或地理空间服务,以及来自数据中心内所连接设备或仪器的遥测数据等转化为属性图的点或边数据,并导入 Nebula Graph 数据库。
您想从关系型数据库(如 MySQL)或者分布式文件系统(如 HDFS)中读取批式数据,如某个时间段内的数据,将它们转化为属性图的点或边数据,并导入 Nebula Graph 数据库。
您想将大批量数据生成 Nebula Graph 能识别的 SST 文件,再导入 Nebula Graph 数据库。
Exchange 具有以下优点:
支持断点续传:导入数据时支持断点续传,有助于您节省时间,提高数据导入效率。
异步操作:会在源数据中生成一条插入语句,发送给查询服务,最后再执行 Nebula Graph 的插入操作。
灵活性强:支持同时导入多个标签和边类型,不同标签和边类型可以是不同的数据来源或格式。
统计功能:使用 Apache Spark™ 中的累加器统计插入操作的成功和失败次数。
Exchange v1.x 支持将以下格式或来源的数据转换为 Nebula Graph v1.x 能识别的点和边数据:
存储在 HDFS 的数据,包括:
- Apache Parquet
- JSON
- CSV
Apache HBase™
数据仓库:HIVE
图数据库:Neo4j 2.4.5-M1。仅 Neo4j 支持断点续传
关系型数据库:MySQL
流处理软件平台:Apache Kafka®