欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

kettle优化抽取数据速度_数据异构工具介绍

发布时间:2025/3/20 编程问答 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 kettle优化抽取数据速度_数据异构工具介绍 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一:Data Migration(DM)

1、Data Migration 简介:

Data Migration (DM) 是一体化的数据同步任务管理平台,支持从 MySQL 到 TiDB或者MySQL 的全量数据迁移和增量数据同步。使用 DM 工具有利于简化错误处理流程,降低运维成本。

2、DM 架构:

DM 主要包括三个组件:DM-master,DM-worker 和 dmctl。

    • DM-master 负责管理和调度数据同步任务的各项操作。
    • DM-worker 负责执行具体的数据同步任务。
    • dmctl 是用来控制 DM 集群的命令行工具。

3、核心功能:

  • 路由表(Table routing) :是指将上游 MySQL 或 MariaDB 实例的某些表同步到下游指定表的路由功能,可以用于分库分表的合并同步。
  • 黑白名单(Black & white table lists) :是指上游数据库实例表的黑白名单过滤规则。其过滤规则类似于 MySQL ​replication-rules-db​/​replication-rules-table​,可以用来过滤或只同步某些数据库或某些表的所有操作。
  • 事件过滤器(Binlog event filter)是比库表同步黑白名单更加细粒度的过滤规则,可以指定只同步或者过滤掉某些 ​schema​/​table​ 的指定类型的 binlog events,比如 INSERT,TRUNCATE TABLE,DELETE等。
  • 列映射(Column mapping): 提供对表的列值进行修改的功能。可以根据不同的表达式对表的指定列做不同的修改操作,目前只支持 DM 提供的内置表达式。partition id 表达式用于解决分库分表合并同步的自增主键的冲突。
  • 分库分表合并:此功能用于将上游 MySQL/MariaDB 实例中结构相同的表同步到下游 TiDB 的同一个表中。DM 不仅支持同步上游的 DML 数据,也支持协调同步多个上游分表的 DDL表结构变更。

二:DataX

1、DataX3.0简介:

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。

  • Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
  • Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
  • Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
{ "job": { "setting": { "speed": { "channel": 1 } }, "content": [ { "reader": { "name": "mysqlreader", "parameter": { "username": "rd_fms_user", "password": "xxxx..Com", "connection": [ { "querySql": [ "select 'testtest' as main_warehouse_no,createtime as create_time from tprj_dc_diaobodan where createtime BETWEEN '$starttime' and '$endtime';" ], "jdbcUrl": [ "jdbc:mysql://xxxx:3306/ddddd2_tjw_02" ] } ] } }, "writer": { "name": "mysqlwriter", "parameter": { "writeMode": "insert", "username": "qa_fms_user", "password": "xxxx..Com", "column": [ "main_warehouse_no", "create_time" ], "session": [ "set session sql_mode='ANSI'" ], "preSql": [ "select * from fms_settlement_order_detail t where t.main_warehouse_no = 'jjjj'" ], "connection": [ { "jdbcUrl": "jdbc:mysql://xxxxxxx:3306/fms?useUnicode=true&characterEncoding=utf8", "table": [ "fms_settlement_order_detail" ] } ] } } } ] }}

三:kettle

1、Kettle简介:

Kettle 是一款使用 Java 编写的功能强大的 ETL ( Extract Transform and Load )工具,支持关系型数据库( MySQL 、 Oracle 等)、非关系型数据库( MongoDB 、 ElasticSearch 等)以及文件之间的大规模数据迁移。功能相对完善,任务执行可以监控报警。

  • Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化界面来操作数据的转换和输出等。
  • Kettle中有两种脚本文件,transformation(.ktr)和job(.kjb),transformation完成针对数据的基础转换,job则完成整个工作流的控制。

2、DataX和kettle对比:

  • Kettle拥有自己的管理控制台,可以直接在客户端进行etl任务制定,不过是CS架构,而不支持BS浏览器模式。DataX并没有界面,界面完全需要自己开发,增加了很大工作量。
  • Kettle可以与我们自己的工程进行集成,通过JAVA代码集成即可,可以在java中调用kettle的转换、执行、结束等动作,这个还是有意义的,而DataX是不支持的,DataX是以执行脚本的方式运行任务的,当然完全吃透源码的情况下,应该也是可以调用的。
  • 支持的数据库,都支持的比较齐全,kettle支持的应该更多,DataX是阿里开发,可以更好地支持阿里自身的数据库系列,如ODPS、ADS等
  • Kettle已经加入BI组织,加入后kettle的开发力度和被关注度更进一步提升,DataX开源的支持粒度不高,关注度远没有kettle高,代码提交次数也很少。
  • 根据网上参考信息,测试kettle全量抽取较大数据量时,抽取时间长,对比测试 datax比kettle快。Datax的工作流需要依托于调度工具的流,本身并不具备工作流特性。
  • 总结

    以上是生活随笔为你收集整理的kettle优化抽取数据速度_数据异构工具介绍的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。