Datax的使用说明及入门操作案例演示

news2024/11/25 4:47:50

1.DataX

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

2.DataX下载地址

下载地址:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202303/datax.tar.gz
如果以上连接不可用, 可以访问以下地址DataX下载页找到如下图所示连接进行下载
在这里插入图片描述

3.DataX数据源支持

DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入,目前支持数据如下图

类型数据源Reader(读)Writer(写)文档
RDBMS 关系型数据库MySQL读 、写
Oracle读 、写
OceanBase读 、写
SQLServer读 、写
PostgreSQL读 、写
DRDS读 、写
Kingbase读、写
通用RDBMS(支持所有关系型数据库)读 、写
阿里云数仓数据存储ODPS读 、写
ADB
ADS
OSS读 、写
OCS
Hologres
AnalyticDB For PostgreSQL
阿里云中间件datahub读 、写
SLS读 、写
阿里云图数据库GDB读 、写
NoSQL数据存储OTS读 、写
Hbase0.94读 、写
Hbase1.1读 、写
Phoenix4.x读 、写
Phoenix5.x读 、写
MongoDB读 、写
Cassandra读 、写
数仓数据存储StarRocks读 、写
ApacheDoris
ClickHouse
Databend
Hive读 、写
kudu
selectdb
无结构化数据存储TxtFile读 、写
FTP读 、写
HDFS读 、写
Elasticsearch
时间序列数据库OpenTSDB
TSDB读 、写
TDengine读 、写

4.DataX安装

4.1 环境准备

  • Linux系统
  • JDK(1.8以上,推荐1.8)
  • Python(2或3都可以)
  • Apache Maven 3.x (如果是源码编译DataX需要使用)

4.2 安装方式

  • 方式一: 直接下载DataX工具包:DataX下载地址
    如果上述链接失效, 请访问官方地址找到如下图所示链接进行下载
    在这里插入图片描述
    下载后解压至本地某个目录,进入bin目录,即可运行同步作业:
$ cd  {YOUR_DATAX_HOME}/bin

$ python datax.py {YOUR_JOB.json}

自检脚本:

python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json

  • 方法二、下载DataX源码,自己编译:DataX源码
    (1)、下载DataX源码:

git clone git@github.com:alibaba/DataX.git

(2)、通过maven打包:

$ cd {DataX_source_code_home}
$ mvn -U clean package assembly:assembly -Dmaven.test.skip=true

打包成功,日志显示如下:

[INFO] BUILD SUCCESS
[INFO] -----------------------------------------------------------------
[INFO] Total time: 08:12 min
[INFO] Finished at: 2015-12-13T16:26:48+08:00
[INFO] Final Memory: 133M/960M
[INFO] -----------------------------------------------------------------

打包成功后的DataX包位于 {DataX_source_code_home}/target/datax/datax/ ,结构如下:

$ cd {DataX_source_code_home}
$ ls ./target/datax/datax/
bin conf job lib log log_perf plugin script tmp

5.实际案例演示

首先需要有两个数据源,一个是原始数据源, 一个是目标数据源, 我智力为了演示方便, 使用的都是MySQL数据库,演示的案列就是把mysql1中saturn-test数据库中的st_student表中的数据迁移到mysql2中saturn-test数据库中的st_student表中
主要就在于job.json文件的编写,这个官方给我们提供好了示例, 我们只要赋值过来改成我们自己的数据库连接配置其实就可以了,
首先我们是从MySQL中读取数据, 所以我们找到关于MYSQL读、写的job的配置应该怎么写,在这里插入图片描述
点击MySQL的读、写链接
在这里插入图片描述
在这里插入图片描述

更多关于MysqlReader插件文档请自行阅读查看

更多关于MysqlWriter插件文档请自行阅读查看

示例myjob.json

{
    "job": {
        "setting": {
            "speed": {
                 "channel": 3
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "数据库用户",
                        "password": "数据库密码",
                        "column": [
                            "stu_id",
                            "stu_name"
                        ],
                        "splitPk": "stu_id",
                        "connection": [
                            {
                                "table": [
                                    "st_student"
                                ],
                                "jdbcUrl": [
                                    "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF8"
                                ]
                            }
                        ]
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "writeMode": "insert",
                        "username": "数据库用户",
                        "password": "数据库密码",
                        "column": [
                            "stu_id",
                            "stu_name"
                        ],
                        "session": [
                            "set session sql_mode='ANSI'"
                        ],
                        "preSql": [
                            "delete from st_student"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF8",
                                "table": [
                                    "st_student"
                                ]
                            }
                        ]
                    }
                }
            }
        ]
    }
}

调用datax.py,执行我们刚才定义的myjob.json即可

python /datax安装路径/bin/datax.py /myjob.json所在目录的绝对路径/myjob.json

示例:

python /opt/soft/datax/bin/myjob.json /opt/scripts/datax/myjob.json

在这里插入图片描述
执行成功之后控制台打印如上信息, 如果出现错误,根据错误日志进行错误排查解决重新跑执行就行了。

在这里插入图片描述
查询两个数据库,发现数据已经迁移同步成功了。datax的使用是不是还挺简单的呢~,多动手,掌握的就会越来越多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/519880.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

power shell 入门

常用命令 powershell版本 不区分大小写: $psversiontable $psv + tab 自动补齐 // ps version get-command 或者 gcm //获取所有命令 get-help 命令名 // 获取命令帮助信息 路径相关 get-location 或者 gl 或者 pwd // 获取当前路径 pwd: print work directory 的缩写.

Linux命令易混淆(看到新知识点就更新)

DNS相关 在Linux操作系统中,TCP/IP网络是通过若干个文本文件进行配置的。系统在启动时通过读取一组有关网络配置的文件和脚本参数内容,来实现网络接口的初始化和控制过程,这些文件和脚本大多数位于/etc目录下。 Linux下配置dns的三种方法 1…

深入了解梯度消失与梯度爆炸

本文探讨深度学习中经常会提到的概念–梯度消失与梯度爆炸。他们是影响模型收敛,学习好坏的一个重要因素,对此现象也提出了对应的解决方案。在此记录其概念,原因和相关的解决方案,仅供参考。 目录 概念原因解决方案1. 参数初始化2…

Vim学习笔记【Ch00,Ch01】

Vim学习笔记 GitHub的Learn-Vim仓库学习笔记Ch00 前言Ch01 Starting VimVim的官方链接Windows10下载和安装VimVim初级使用打开Vim退出Vim保存文件打开文件帮助文档helpargument参数打开多个窗口暂停 GitHub的Learn-Vim仓库学习笔记 仓库地址:https://github.com/ig…

Qt--数据库--增删改查操作

目录 1. Qt数据库简介 2. 连接与关闭 3. 建表 dialog.h dialog.cpp dialog.ui 4. 增删改 1.添加数据 dialog.h dialog.cpp 2.删除数据 dialog.h dialog.cpp 3.修改数据 dialog.h dialog.cpp 5. 查询 dialog.h dialog.cpp 判断数据是否存在 dialog.h dialog.cpp 1. Qt数据库简介…

如何在IVD行业运用IPD?

IVD(体外诊断,In Vitro Diagnostic)是指对人体样本(血液、体液、组织)进行定性或定量的检测,进而判断疾病或机体功能的诊断方法。IVD目前已经成为疾病预防、诊断治疗必不可少的医学手段,约80%左…

ChatGPT国内使用办法,无需魔法上网,免费使用ChatGPT,长期更新!!

新建了一个网站 每天给大家更新可用的免翻国内可用chatGPT https://ai.weoknow.com/ 2023.5.7新增一个 软件名称ChatGPT✦ ▌ 软件摘要 软件名称:ChatGPT 适用设备:浏览器 文件大小:0MB ▌ 软件简介 ChatGPT非常强大,但国内合…

12-CSS-语法和选择器

一、语法格式: 选择器指向需要设置样式的 HTML 元素。声明块包含一条或多条用分号分隔的声明。每条声明都包含一个 CSS 属性名称和一个值,以冒号分隔。多条 CSS 声明用分号分隔,声明块用花括号括起来。 二、选择器: CSS 选择器…

第一章 计算机系统概述

1.1 计算机发展历程 1.1.1 计算机硬件的发展 计算机系统硬件软件 计算机硬件的发展: 第一代计算机:(使用电子管),第二代计算机:(使用晶体管),第三代计算机:(使用较小规模的集成),第四代计算…

Strategy 模式

文章目录 💡问题引入💡概念💡例子💡总结 💡问题引入 软件为什么总是隔一段时间就要更新迭代?当然是因为不同的需求而发生了改变。 在软件构建过程中,某些对象使用的算法可能多种多样&#xff…

MySQL——通过C语言连接

文章目录 1、前置安装2、正式连接增加删除修改select 1、前置安装 前提: 如果你的mysql是通过yum安装的,那么那些库文件依赖,都是有的,不用你安装了。 但是如果是用 rpm包安装的,就需要去官网下载对应的包。 这些是…

操作系统与进程调度

文章目录 一、计算机操作系统1.操作系统(Operating System)2.计算机系统示意图 二、进程1.进程/任务(Process/Task)2.进程控制块抽象(PCB Process Control Block)3.进程调度(Process Scheduling)4.内存管理&#xff08…

知识点回顾(一)

1.final,finally ,finalize final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final&…

ChatGPT潜能无限:多个震撼应用场景一一揭晓

ChatGPT 具有对个人、公司和各个行业非常有用的各种应用程序。在本文中,我们继续解释ChatGPT 应用(基础应用场景,请点击这里查看)。 看完此篇文章中,你会非常惊讶于起潜能无限的应用场景及其强大的功能,那…

Nginx之rewrite实现URL重写

1.开篇 rewrite是nginx服务器提供的一个重要功能,用于实现URL的重写。例如我们访问https://aa.qq.com,打开的是https://age.qq.com/,这就是使用URL重写的特性来实现的。 ngx_http_rewrite_module为实现URL重写提供了指令支持。 官方文档地…

ChatGPT教程(终极版)

新建了一个网站 https://ai.weoknow.com/ 每天给大家更新可用的国内可用chatGPT 这是一篇姗姗来迟的ChatGPT教程。 小白对ChatGPT的介绍足以让你阅读我的文章。 如果你已经使用过ChatGPT,那么祝贺你发现了宝藏。未来的先进技术一定会帮助你有所收获。 前提是你可…

我的『1024』创作纪念日

记得,2020年07月22日我撰写了第1篇技术博客:《遗传算法实例解析》在这平凡的一天,我赋予了它不平凡的意义也许是立志成为一名专业T作者、也许是记录一段刚实践的经验但在那一刻,我已在创作这趟旅程中出发今天,是我成为…

百度蜘蛛简介

百度蜘蛛简介 工作机制百度蜘蛛的工作要素百度蜘蛛原理的应用Baiduspider对一个网站服务器造成的访问压力如何?Baiduspider多长时间之后会重新抓取我的网页? 工作机制 百度蜘蛛的构建的原理。搜索引擎构建一个调度程序,来调度百度蜘蛛的工作…

2023.5.13>>Eclipse+exe4j打包Java项目及获取exe所在文件的路径

Eclipseexe4j打包Java项目及获取exe所在文件的路径 1、打包exe文件1.1 打jar包1.2 打包exe2、在程序中获取exe所在路径3、遇到问题4、JDK version和class file version(Class编译版本号)对应关系5、参考文章 1、打包exe文件 1.1 打jar包 右单击项目选择“Export…” 1.2…

软考A计划-真题-分类精讲汇总-第三章(数据库)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…