计算机毕设网站建设怎么改,为什么想做网站运营,网站admin后台界面模板,深圳网站备案点在遇到跨库或者异库数据同步时#xff0c;我们一般都会借助ETL工具来实现数据同步功能。比如目前大家较为熟知的Kettle和Datax。但是#xff0c;这两个需要定时去查询数据库的数据#xff0c;会存在一定的延迟#xff0c;而且#xff0c;默认采用全量同步的方式#xff0…在遇到跨库或者异库数据同步时我们一般都会借助ETL工具来实现数据同步功能。比如目前大家较为熟知的Kettle和Datax。但是这两个需要定时去查询数据库的数据会存在一定的延迟而且默认采用全量同步的方式想要增量需要自己做特殊的处理。那么有没有开源的工具既能满足全量和增量又能达到相对比较实时的呢接下来我们继续往下看。
Kettle
在ETL行列中kettle算是人气比较旺的一款工具功能多且强大开源可视化。使用方便、简洁但是体量越来越大性能一般。 可以自己下载源码编译要求Maven 3、Java JDK 11。 GitHub - pentaho/pentaho-kettle: Pentaho Data Integration ( ETL ) a.k.a Kettle
DataX
DataX 是阿里云 DataWorks数据集成 的开源版本在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。
类型数据源Reader(读)Writer(写)文档RDBMS 关系型数据库MySQL√√读 、写Oracle√√读 、写OceanBase√√读 、写SQLServer√√读 、写PostgreSQL√√读 、写DRDS√√读 、写Kingbase√√读 、写通用RDBMS(支持所有关系型数据库)√√读 、写阿里云数仓数据存储ODPS√√读 、写ADB√写ADS√写OSS√√读 、写OCS√写Hologres√写AnalyticDB For PostgreSQL√写阿里云中间件datahub√√读 、写SLS√√读 、写阿里云图数据库GDB√√读 、写NoSQL数据存储OTS√√读 、写Hbase0.94√√读 、写Hbase1.1√√读 、写Phoenix4.x√√读 、写Phoenix5.x√√读 、写MongoDB√√读 、写Cassandra√√读 、写数仓数据存储StarRocks√√读 、写ApacheDoris√写ClickHouse√写Databend√写Hive√√读 、写kudu√写无结构化数据存储TxtFile√√读 、写FTP√√读 、写HDFS√√读 、写Elasticsearch√写时间序列数据库OpenTSDB√读TSDB√√读 、写TDengine√√读 、写 GitHub - alibaba/DataX: DataX是阿里云DataWorks数据集成的开源版本。
DataX-Web
前面提到DataX,那么就不得不提一下DataX-Web,DataX没有可视化界面不过目前已经有热心开基于DataX开发了对应的Web界面。DataX Web是在DataX之上开发的分布式数据同步工具提供简单易用的 操作界面降低用户使用DataX的学习成本缩短任务配置时间避免配置过程中出错。用户可通过页面选择数据源即可创建数据同步任务支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源RDBMS数据源可批量创建数据同步任务支持实时查看数据同步进度及日志并提供终止同步功能集成并二次开发xxl-job可根据时间、自增主键增量同步数据。
任务”执行器”支持集群部署支持执行器多节点路由策略选择支持超时控制、失败重试、失败告警、任务依赖执行器CPU.内存.负载的监控等等。后续还将提供更多的数据源支持、数据转换UDF、表结构同步、数据同步血缘等更为复杂的业务场景。 GitHub - WeiYe-Jing/datax-web: DataX集成可视化页面选择数据源即可一键生成数据同步任务支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源批量创建RDBMS数据同步任务集成开源调度系统支持分布式、增量同步数据、实时查看运行日志、监控执行器资源、KILL运行进程、数据源信息加密等。
Airbyte
一款开源的可视化ETL功能支持很多数据源并且支持全量及增量同步。 GitHub - airbytehq/airbyte: Data integration platform for ELT pipelines from APIs, databases files to warehouses lakes.
benthos
Benthos 是一个开源的、高性能和弹性的数据流处理器支持多种方式的数据接入、加工、转换。 GitHub - benthosdev/benthos: Fancy stream processing made operationally mundane
canal
阿里巴巴开源的MySQL binlog 增量订阅消费组件基于日志只能做增量同步,很多工作需要自己处理。 https://github.com/alibaba/canal.git
Maxwell
也是监听MySQL binlog并将数据更解析为JSON写入到Kafka等其他流媒体平台。 GitHub - zendesk/maxwell: Maxwells daemon, a mysql-to-json kafka producer
debezium
Debezium是一个捕获数据更改(CDC)平台并且利用Kafka和Kafka Connect实现了自己的持久性、可靠性和容错性。每一个部署在Kafka Connect分布式的、可扩展的、容错性的服务中的connector监控一个上游数据库服务器捕获所有的数据库更改然后记录到一个或者多个Kafka topic(通常一个数据库表对应一个kafka topic)。Kafka确保所有这些数据更改事件都能够多副本并且总体上有序(Kafka只能保证一个topic的单个分区内有序)这样更多的客户端可以独立消费同样的数据更改事件而对上游数据库系统造成的影响降到很小(如果N个应用都直接去监控数据库更改对数据库的压力为N而用debezium汇报数据库更改事件到kafka所有的应用都去消费kafka中的消息可以把对数据库的压力降到1)。另外客户端可以随时停止消费然后重启从上次停止消费的地方接着消费。每个客户端可以自行决定他们是否需要exactly-once或者at-least-once消息交付语义保证并且所有的数据库或者表的更改事件是按照上游数据库发生的顺序被交付的。 GitHub - debezium/debezium: Change data capture for a variety of databases. Please log issues at https://issues.redhat.com/browse/DBZ.
Flink CDC
Apache Flink®的CDC连接器集成了Debezium作为捕获数据更改的引擎。虽然功能强大但是比较重。 GitHub - ververica/flink-cdc-connectors: CDC Connectors for Apache Flink®
目前异构数据ETL同步一般基于两种方式查询和日志基于查询做全量同步基于日志做增量同步日志方式延迟会比较小查询来做增量延迟会比较大查询频率越高对数据库性能也会有影响。随着各种热门技术的兴起在Github中也有越来越多的解决方案我们可以根据自己的实际情况选择合适自己的工具。