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

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.mfbz.cn/a/19160.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第四十九章 Unity UI适配器组件

首先,我们介绍内容大小适配器 (Content Size Fitter)组件。 我们新建一个“SampleScene6.unity”场景,然后添加一个Text UI元素,让其居中显示,并且尺寸设置为50*30。 由于我们设置Text的尺寸在水平方向上面太小,也就是…

计算机毕业论文内容参考|基于神经网络的网络安全态势感知技术研究

文章目录 导文文章重点摘要前言绪论课题背景国内外现状与趋势课题内容相关技术与方法介绍技术分析技术设计技术实现总结与展望导文 基于神经网络的网络安全态势感知技术研究 文章重点 摘要 随着互联网的快速发展,网络攻击的频率和复杂度也在逐年增加。为了更好地保护信息系统…

【Python】【进阶篇】27、Django url标签详解

目录 27、Django url标签详解1. url标签基本使用2. 给定参数的动态url 27、Django url标签详解 在 Django 的模板语言中除了我们前面章节介绍过的 if 标签和 for 标签之外,还有许多我们时常用到标签,比如 url 标签。 1. url标签基本使用 Django 的模板…

4.6k Star,SpringBoot+Vue+App+硬件实现的智能家居系统,一套带走

今天,推荐一个智能家居系统项目。这是我目前见过的最好的智能家居系统项目,功能完整,代码结构清晰。值得推荐。 4.6k Star,SpringBootVueApp硬件实现的智能家居系统,一套带走 简介 FastBee是一个简单易用的物联网平…

【设计模式】责任链模式的介绍及其应用

责任链的介绍 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求&a…

谷歌浏览器 | Chrome DevTools系统学习篇-Device Mode

大家好,文接上回谷歌浏览器 | Chrome DevTools系统学习篇-概述。所谓“工欲善其事,必先利其器”,我们进一步来熟悉谷歌开发者工具。今天分享的是Device Mode,使用设备模式来估算您的页面在移动设备上的外观和性能。 设备模式是 Ch…

QT多线程基础

文章目录 前言一、多线程概念介绍二、创建一个线程三、start和terminate函数四、如何不使用terminate函数终止线程总结 前言 本篇文章来讲解一下QT中的多线程使用方法。 其实线程这个概念对于我们来说并不陌生,main函数在多线程中一般就被称为主线程。 在QT中&am…

如何在IVD行业运用IPD?

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

这才是 玩转Github 的正确姿势

这才是 玩转Github 的正确姿势 GitHub各位应该都很熟悉了,全球最大的开源社区,也是全球最大的同性交友网站~~,但是大部分同学使用GitHub应该就是通过别人的开源链接,点进去下载对应的项目,而真正使用Github来查找开源…

camunda的Java委托如何使用

一、camunda的Java委托有什么用途 在Camunda中,Java委托是一种用于在流程执行期间执行自定义逻辑的Java类。使用Java委托,您可以在流程执行期间通过Java代码实现各种复杂的业务逻辑。 以下是一些使用Java委托的常见用途: 1、计算值&#x…

有什么好用的云渲染?

在CG制作流程中,离线渲染一直是必要且耗时的环节。你的场景越复杂,渲染出现问题的可能性就越大,尤其是当你独自工作,没有人给你建议的时候,灯光、模型、场景任何一个环节渲染时出现问题都可能让你焦头烂额,…

基于Kubernetes集群构建大中型企业CICD应用平台(2)--code阶段工具gitlab安装

这里我们为gitlab服务器准备一台虚拟机:192.168.19.6-gitlab服务器 在code阶段,我们需要将不同版本的代码存储到一个仓库中,常见的版本控制工具就是SVN或者Git,这里我们采用Git作为版本控制工具,GitLab作为远程仓库。…

5 创建映射

5 映射 上边章节安装了ik分词器,如果在索引和搜索时去使用ik分词器呢?如何指定其它类型的field,比如日期类型、数 值类型等。 本章节学习各种映射类型及映射维护方法。 5.1 映射维护方法 1、查询所有索引的映射: GET&#xf…

Linux性能监控与调优工具

Linux性能监控与调优工具 文章目录 Linux性能监控与调优工具1.使用top、 vmstat、 iostat、 sysctl等常用工具2.使用高级分析手段, 如OProfile、 gprof4.使用LTP进行压力测试5.使用Benchmark评估系统 除了保证程序的正确性以外, 在项目开发中往往还关心性…

jenkins配置springcloudalibaba流水线加服务器自动构建

参数化构建过程 Extended Choice Parameter Name:project_name Description:请选择需要构建的项目名称 Basic Parameter Types Parameter Type: Hidden Number of Visible Items: 20 Delimiter: , Choose Source for Value value: deerchain-gateway-95…

并发编程06:volatile与JMM

文章目录 6.1 被volatile修饰的变量有两大特点6.2 内存屏障(面试重点)6.2.1 生活case6.2.2 是什么6.2.3 内存屏障分类6.2.4 困难内容 6.3 volatile特性6.3.1 保证可见性6.3.2 没有原子性6.3.3 指令禁重排 6.4 如何正确使用volatile6.5 本章最后的小总结6…

我怎样一步一步引导ChatGPT写完一篇本科毕业论文

先了解毕业论文相关专家 给ChatGPT指定一个角色 我给ChatGPT指定一个学术导师角色,好家伙,给我谦虚起来了 好,换个方式,他开始听话了 了解论文格式 计算机科学与技术专业论文一般有哪些部分组成 选题 了解方向 请先告诉我计算…

提升自我数据分析能力的根本,是方法论!

很多人问,我是财务,能转行业做BI吗?我该学些什么?该掌握哪些技能?该如何学习?我是学生,在校期间专业不扎实,该怎么办?我是小白,还能学会数据分析吗&#xff1…

初识HTML的基础知识点!!!

初识HTML!!! 一、系统构架 1.B/S构架 (1)B/S构架(Browser / Server) 就是(浏览器/服务器的交互形式) Browser支持HTML、CSS、JavaScript (2)优缺点 优点…

webhub123整理 中文语音识别数据集​

我们收集和整理了常用的中文语音识别数据集,合计超过12000小时的数据集。已经按照不同来源整理收录到 webhub123整理 中文语音识别数据集​https://www.webhub123.com/#/home/detail?projectHashid64335220&ownerUserid22053727 整理后的效果如下 ​ 每个卡片…