datax同步数据简介;datax_web管理使用

75 篇文章 5 订阅
本文介绍了在业务中如何使用DataX进行数据同步,包括全量和增量同步方法,以及如何配置DataX的环境(如JDK、Python版本等)。同时,作者提到了使用DataXWeb界面进行便捷操作的优势,并详细步骤说明了如何部署和使用datax-web工具,以及注意事项,如MySQL驱动版本升级和Python版本兼容问题。
摘要由CSDN通过智能技术生成

概述

业务中经常会用到数据全量同步和增量同步,用sqlDump只能全量同步,而且数据量大的时候很慢。

阿里的datax目前是一款不错的同步工具

环境要求:
jdk:1.8+
python:2.7
maven:3.0+

3.0python跑不起来
ps:开源版的dataxmysql驱动还是用的5.1.x的,如果用的mysql已经是高版本了,需要换下驱动.换驱动的时候记得readwriter都要换一下。

在这里插入图片描述

demo

直接跟着dataxquick start开始敲就完事
https://github.com/alibaba/DataX/blob/master/userGuid.md
我是直接下载的工具包,然后直接查看readwrite模板,直接按照模板copy一个.json的文件

python datax.py -r {YOUR_READER} -w {YOUR_WRITER}

文件deom如下

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader", 
                    "parameter": {
                        "username": "xxx",
                        "password": "xxx",
                        "where": "",
                        "connection": [
                            {
				"querySql": [
				    "select * from sys_oper_log;"
				],
                                "jdbcUrl": [
                                    "jdbc:mysql://127.0.0.1:33306/ruoyi_5?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true"
                                ]
                            }
                        ]
                    }
                }, 
                "writer": {
                    "name": "mysqlwriter", 
                    "parameter": {
                        "column": ["*"], 
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://127.0.0.1:33306/datax_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true",
                                "table": ["sys_oper_log"]
                            }
                        ], 
                        "password": "xxx",
                        "preSql": [
                            
                        ], 
                        "session": [
                           "set session sql_mode='ANSI'" 
                        ], 
                        "username": "xxx", 
                        "writeMode": "insert"
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": "5"
            }
        }
    }
}

直接运行

python2.7 datax.py test.json

在这里插入图片描述

datax_web下载启动

上面的datax一个麻烦的地方就是一个同步操作就需要命令新建一个json文件,操作一多就有点麻烦;
所以一个web管理界面统一入口,就显得必要了,当然也是直接拿现成了;

https://github.com/WeiYe-Jing/datax-web

这是需要的环境和中间件,可以提前部署一下
在这里插入图片描述

#下载
git clone https://github.com/WeiYe-Jing/datax-web.git
#编译--编译后在build目录下生成文件
mvn clean install
#解压
tar -zxvf datax-web-2.1.2.tar.gz

#到自己的db里初始化一下sql
/bin/db/datax-web.sql
#指定自己的db---修改datax-admin/conf/bootstrap.properties的文件中的数据库配置
vi ./modules/datax-admin/conf/bootstrap.properties

#如果有多个jdk版本,需要到这2个module下的环境变量文件中指定下java_home
vi modules/datax-admin/bin/env.properties
vi modules/datax-executor/bin/env.properties

#启动
./bin/start-all.sh

一波成功
在这里插入图片描述

datax_web使用

先说明一下我的环境
ubuntu20.04
默认的python版本是python3
mysql8.0
java有多个版本,给datax_web使用的是java8(我这里部署的时候官方文档指定用的就是8

这里先介绍几个注意点;
1-mysql我这边用的是8,默认的mysql驱动用的是5,高版本的需要自己另外下个驱动,然后丢到modules下的datax-admin依赖中去,
/home/ubuntu/datax_web/datax-web-2.1.2/modules/datax-admin/lib

2-python版本,我这里ubuntu默认是python3,但是脚本默认datax默认使用的是python2.7,所以这里可以在下载的datax_web文件的doc目录下找到datax/bin/下对应的三个py文件,替换下就行

流程大概是这样的:

  1. 创建项目
  2. 添加数据源(源db和目标db)
  3. 任务构建

新建项目
在这里插入图片描述

添加数据源
在这里插入图片描述
新建定时任务
和xxljob差不多,直接新建即可
在这里插入图片描述

任务构建
直接点点点再下一步就ok了,最后按照提示关联下定时任务,即可
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值