项目中存在部分数据,来源于其他系统。
这种情况下单独做一个同步数据的系统来同步数据源,这样的系统该如何搭建呢?
请有经验的大佬指教一二!
要求:
1、实时性要强
离线数据同步平台?考虑下datax
看到你在讨论跨系统数据同步的方案,这个问题确实挺有代表性的。上面提到的 datax 是个不错的工具,不过如果你想找实时性更强的方案,可以考虑一下 Apache SeaTunnel。
SeaTunnel 是一个开源的数据集成工具,在跨系统数据同步场景下有几个优势:
1. 支持多种数据源
基本上你能想到的数据源都支持:关系型数据库(MySQL、Oracle、SQL Server、PostgreSQL 等)、大数据组件(HDFS、Hive、HBase、Spark、Flink 等)、消息队列(Kafka、Pulsar 等)、搜索引擎(Elasticsearch 等)、云数据库等。
2. 实时同步能力强
3. 配置简单
通过配置文件就能定义数据同步任务,不需要写复杂的代码。比如从 MySQL 同步到 Elasticsearch,配置一下 source 和 sink 就能运行。
4. 分布式架构
基于自带 Zeta 或 Spark 或 Flink 引擎,可以水平扩展,处理海量数据时性能表现十分优秀。
5. 数据转换灵活
如果同步过程中需要做数据转换、过滤、聚合等操作,SeaTunnel 提供了丰富的 transform 功能。
使用场景举例:
对于你提到的"实时性要强"这个需求,SeaTunnel 的 CDC 模式应该能满足,SeaTunnel 支持批流一体。对 CDC 它通过解析数据库的事务日志来捕获数据变更,不需要在业务表上加触发器,对业务系统的影响比较小。
官网地址:https://seatunnel.apache.org 上面有详细的文档和配置示例,可以参考一下。