原文链接:风一带你一起用这个牛逼的大数据工具
人只是一根芦苇,是自然界最脆弱的东西,但他是一根会思想的芦苇
大家好, 我是风一,前几天有同事找我这边同步数据、大致需求就是将不同服务器上的不同数据库进行定时的相互同步;这让我一下子就想到老早之前使用过的阿里离线同步工具 DataX;由于有很长一段时间没使用过了、在具体使用的过程中还碰到了一些小麻烦、因此这里做一下资料复习和总结、主要分为以下几个内容:
- 一、DataX 的简介
- 二、DataX 的配置
- 三、DataX 的使用
欢迎关注微信公众号、一起交流,学习。
DataX的简介:
DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。
Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
经过几年积累,DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入、这里只放入我们常用的关系型数据库数据:
DataX的配置:
DataX下载使用非常方面、大家可直接在网上搜索自行下载、然后直接解包就可以使用了、下图为解包后的文件:
-
配置 1、Python版本的问题:DataX下载默认是支持 Python2的版本、但我们目前大部分都是使用 Python3版本的、因此,就需要我们修改 bin/datax.py 文件:修改地方有两个:print打印的不同、except异常处理不同;这里风一是直接将datax.py文件在pycharm中打开、这样直接就知道哪里异常了、修改就可以正常使用了。 默认的Python2版本语法,Python3版本会提示异常: 2、数据库的一些配置:操作SQLSERVER数据库需要启开TCP/IP、否则可能会报错、开启的路径:在桌面的计算机上右键打开“管理”,然后选择“服务和应用程序”-“SQL Server配置器管理”-“SQL Server 网络配置”-“SQLEXPRESS的协议”看一下TCP/IP是否启用,如果没有的话鼠标右键启动;另外MySQL也是需要下载MySQL的jar包、放置datax/lib 中、否则MySQL可能是无法正常访问的或者DataX提示插件异常。 3、执行文件.json的配置 最终我们配置的数据库的相应操作都是在.json中配置的、我们需要分别配置读取和写入的数据库相关信息以及所需的语句;各数据库的详细配置直接可以在 https://github.com/alibaba/DataX 网址进行查看,这里贴出 MySQL读取、Oracle数据库写入的json配置:
DataX的使用:
DataX是通过 Python运行 datax.py 调取 .json的配置文件进行运行的、并且安装包中提供了一个 job.json文件用于我们测试 DataX 是否可正常运行;首先我们需要找到 bin/datax.py文件、然后cmd进入、代码和结果如下:
# 解决中文乱码
chcp 65001
# 调用 datax.py文件运行job文件夹中的job.json文件
python datax.py ../job/job.json
|