1.Datax数据同步之Windows下,mysql数据同步至另一个mysql数据库

前言

  1. Datax是什么?
    DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。
  2. 准备工作

步骤操作大纲

步骤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. 准备两个数据库
    在这里插入图片描述
    库1如上图所示,数据库名为lvyy_test,表为t_user_info,插入了三条数据
    在这里插入图片描述
    库2如上图所示,数据库名为lvyy_test01,表为t_user_info,没有插入数据
  2. 撰写自定义同步json文件,实现lvyy_test数据库中t_user_info表数据同步至lvyy_test01数据库中的t_user_info

在这里插入图片描述

在这里插入图片描述
步骤7.执行自定义json同步文件,判断结果是否正确
在这里插入图片描述
在这里插入图片描述

成功同步三条数据
在这里插入图片描述

数据库插入正常

其他问题

  1. 低版本json需要去掉注解
  2. 高版本的mysql需要加入mysql://127.0.0.1:3306/lvyy0101?useSSL=false&useUnicode=true&characterEncoding=utf-8
    useSSL=false的校验通过规则为用户名和密码匹配通过
    后面可以帮助解决中文乱码问题
  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
DataX 是阿里巴巴集团开源的一款数据同步工具,它支持多种数据源之间的同步,包括 Hive、MySQL、Oracle 等常见关系型数据库以及 HDFS、FTP 等非关系型数据源。下面介绍如何使用 DataX 将 Hive 和 MySQL 中的表互导。 首先需要在本地和远程服务器上安装好 DataX。然后创建一个名为 job.json 的配置文件,内容如下: ``` { "job": { "content": [ { "reader": { "name": "hdfswriter", "parameter": { "path": "/user/hive/warehouse/myhive.db/myhive_table", "defaultFS": "hdfs://localhost:9000", "fileType": "orc", "column": [ "col1", "col2", "col3" ] } }, "writer": { "name": "mysqlwriter", "parameter": { "url": "jdbc:mysql://localhost:3306/test", "username": "root", "password": "123456", "table": "mysql_table", "column": [ "col1", "col2", "col3" ] } } } ], "setting": { "speed": { "channel": "3" } } } } ``` 该配置文件定义了一个数据同步任务,将 Hive 中的 myhive_table 表导入到 MySQL 中的 mysql_table 表中。其中,hdfswriter 和 mysqlwriter 分别表示数据源和目标源的类型,parameter 参数中定义了数据源和目标源的详细信息。column 参数定义了需要同步的列。 执行以下命令启动 DataX 任务: ``` python datax.py job.json ``` 该命令会按照配置文件中的定义开始数据同步任务。在数据量较大的情况下,可以通过修改 job.json 中的 speed 参数来调整数据同步的速度,以避免对源和目标服务器的负载过大。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自律最差的编程狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值