目录
- 前言
- 步骤操作大纲
- 步骤明细
- 其他问题
前言
- Datax是什么?
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。 - 准备工作
- JDK(1.8以上,推荐1.8)
- Python(2或3都可以)
- Apache Maven 3.x (Compile DataX)
- Datax插件下载
步骤操作大纲
步骤1. 将下载的Datax插件移动至指定磁盘位置,并解压
步骤2. datax\bin目录配置环境变量中
步骤3. 进入datax\job目录,打开终端
步骤4. 执行命令datax.py job.json
步骤5.解决同步过程终端乱码
步骤6.自定义json同步文件(核心步骤)
步骤7.执行自定义json同步文件,判断结果是否正确
步骤明细
步骤1. 将下载的Datax插件移动至指定磁盘位置,并解压
如上图所示,我将datax.tar.gz移动至E盘下的指定文件,并解压
步骤2. datax/bin目录配置环境变量中
如上图所示,我将datax\bin配置到环境变量中,让datax.py文件可以在任意的位置被调用
步骤3. 进入datax\job目录,打开终端
如上图所示,我进入data\job目录下,准备测试datax.json的同步功能
步骤4. 执行命令datax.py job.json
如上图我通过datax.py命令执行同步文件job.json,其中job.json是datax提供的测试文件,如果运行结果的读出记录总数为100000条,则表示同步成功
步骤5.解决同步过程终端乱码
乱码原因:window操作系统默认编码格式是gbk(963)编码,而在程序开发中我们统一的编码是 UTF-8。这样导致编码不一致,从而中文乱码!
终端属性需要配置为当前代码页为UTF-8才可以
快速解决方式(临时生效):终端输入命令 chcp 65001
然后执行datax.py job.json检查是否乱码
步骤6.自定义json同步文件(核心步骤)
- 准备两个数据库
库1如上图所示,数据库名为lvyy_test,表为t_user_info,插入了三条数据
库2如上图所示,数据库名为lvyy_test01,表为t_user_info,没有插入数据 - 撰写自定义同步json文件,实现lvyy_test数据库中t_user_info表数据同步至lvyy_test01数据库中的t_user_info
步骤7.执行自定义json同步文件,判断结果是否正确
成功同步三条数据
数据库插入正常
其他问题
- 低版本json需要去掉注解
- 高版本的mysql需要加入
mysql://127.0.0.1:3306/lvyy0101?useSSL=false&useUnicode=true&characterEncoding=utf-8
useSSL=false
的校验通过规则为用户名和密码匹配通过
后面可以帮助解决中文乱码问题