DataX 是 DataWorks数据集成的开源版本,在广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。
DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。
首先,必要的配置
使用分两种方式
下载后解压至本地某个目录,进入bin目录,即可运行同步作业:
$ cd {YOUR_DATAX_HOME}/bin
$ python datax.py {YOUR_JOB.json}
自检脚本:python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json
第二种方式,源码编译方式
下载源码,可以到github上进行下载
通过`maven`打包构建
cd {DataX\_source\_code\_home}
mvn -U clean package assembly:assembly -Dmaven.test.skip=true
打包成功后,进入`{DataX_source_code_home}/target/datax/datax/`,目录结构如下
bin conf job lib log log\_perf plugin script tmp
执行脚本`./stream2stream.json`
python datax.py ./stream2stream.json
在上面的使用来看,有点繁琐了,json
怎么写还不知道呢
有没有一个后台web
界面,我们直接进行管理即可,就是这个开源工具
DataX Web是在DataX之上开发的分布式数据同步工具,提供简单易用的 操作界面,降低用户使用DataX的学习成本,缩短任务配置时间,避免配置过程中出错。用户可通过页面选择数据源即可创建数据同步任务,支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源,RDBMS数据源可批量创建数据同步任务,支持实时查看数据同步进度及日志并提供终止同步功能,集成并二次开发xxl-job可根据时间、自增主键增量同步数据。
任务"执行器"支持集群部署,支持执行器多节点路由策略选择,支持超时控制、失败重试、失败告警、任务依赖,执行器CPU.内存.负载的监控等等。后续还将提供更多的数据源支持、数据转换UDF、表结构同步、数据同步血缘等更为复杂的业务场景。
下载安装
/modules/datax-admin/bin/env.properties
配置邮件服务(可跳过) MAIL_USERNAME="" MAIL_PASSWORD="" ## 执行datax的python脚本地址 PYTHON_PATH= ## 保持和datax-admin服务的端口一致;默认是9527,如果没改datax-admin的端口,可以忽略 DATAX_ADMIN_PORT=创建项目
创建数据源
cron
表达式大家都会的,不细讲;这里主要是创建一个模板,后面会进行使用
选择source
表和target
表的字段,我们这边表结构是一样的,全选即可
下一步就能创建出所需的json
了
先构建,后选择上一节创建的任务模板
json
有点长,拉到最下面,点击下一步,完成任务创建
点击操作,执行一次
当然也可以等待下次触发时间
查看target
数据库,发现数据已同步;完成
上面展示的是全量同步,可以做到增量,这个可以后面再研究研究
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。