数据集成工具
数据采集工具分类
离线采集(批量采集)
- Sqoop
- DataX
- Flink
实时采集(增量采集)
- Flume
- Canal
Flume
flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。
- 分布式:flume分布式集群部署,扩展性好。
- 可靠性好: 当节点出现故障时,日志能够被传送到其他节点上而不会丢失。
- 易用性:flume配置使用较繁琐,对使用人员专业技术要求非常高。
- 实时采集:flume采集流模式进行数据实时采集。
- 适用场景:适用于日志文件实时采集。
Sqoop
Apache开源软件,主要用于在HADOOP(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递。
- 数据吞吐量大:依赖hadoop集群可进行大批量数据集成。
- 操作有技术要求:sqoop操作没有可视化设计器,对使用人员有较专业的技术要求。
- 多种交互方式:命令行,web UI,rest API。
- 部署不方便:sqoop依赖大数据集群,使用sqoop要求数据传输的的源要与大数据集群的所有节点能进行通信。
- 适用场景:适用于能与大数据集群直接通信的关系数据库间的大批量数据传输。
DataX
是阿里开源软件异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。
- 易用性:以执行脚本方式运行,对使用人员技术要求较高。
- 性能:数据抽取性能高。
- 部署:可独立部署
- 适用场景:在异构数据库/文件系统之间高速交换数据。
Canal
canal,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。
-
canal的数据同步不是全量的,而是增量。基于binary log增量订阅和消费,canal可以做:
- 数据库镜像
- 数据库实时备份
- 索引构建和实时维护
- 业务cache(缓存)刷新
- 带业务逻辑的增量数据处理
到底啦!