DataX数据同步

背景:

业务需求中,经常会有同步各种系统或者数仓的数据到自己的库进行使用。比如从oracle同步到自己的mysql,自己写代码如果数据量大需要考虑多线程并发等。最近使用了阿里的Datax项目,操作简单并高效。

Datax

  1. Datax概述&支持的库
    DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。

2.DataX运行流程

3、部署使用

官网:https://github.com/alibaba/DataX

bash 复制代码
3.1解压
tar -zxvf datax.tar.gz -C /opt/module/
3.2自检,执行如下命令。成功会输出整个任务的结果
python /opt/module/datax/bin/datax.py /opt/module/datax/job/job.json

3.3 json文件描述讲解,以mysql为例

java 复制代码
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",  #reader名称,固定,不可修改
                    "parameter": {
                        "column": [ #同步的字段
                            "id",
                            "name"
                        ],
                        "where": "id>=3",# 查询条件,也可以不带
                        "connection": [
                            {
                                "jdbcUrl": [
                                    "jdbc:mysql://127.0.0.1:3306/test" #读的库
                                ],
                                "table": [
                                    "test" #表
                                ]
                            }
                        ],
                        "password": "123456", #密码
                        "splitPk": "",
                        "username": "root" #用户
                    }
                },
                #写的库
                "writer": {
                    "name": "mysqlwriter", #reader名称,固定,不可修改
                    "parameter": {
                       "username": "root", #数据库用户
                        "password": "123456",#数据库密码
                        "connection": [
                            {
                                "table": [
                                    "test1" #目标表
                                ],
                                "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/test2?useUnicode=true&characterEncoding=utf-8"
                            }
                        ],
                        "column": [ #对应字段,也可以*代表全部字段
                            "id",
                            "name"
                        ],
                        "writeMode": "replace"  #insert into(insert) replace into 
                        #replace 或者 update               
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": 1 #并发数
            }
        }
    }
}

3.4 运行

java 复制代码
python bin/datax.py job/test.json
相关推荐
2301_780789663 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
Ruiery3 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
第九序言T3 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
Java后端的Ai之路3 小时前
CAS并发控制-从CPU指令到企业级乐观锁
vue.js·人工智能·python·cas·乐观锁
qq_426003963 小时前
UI自动化高频次登录login限流解决方案
python·ui·自动化
欧米欧3 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery3 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
Sakura_j_h_3 小时前
EasyEDA PCB 快速设计Skills
c++·python·github
学长毕设4 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
qetfw4 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos