当前位置: 首页 > news >正文

Linux中DataX使用第一期

简介

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

特色

  DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。

环境准备

  • Linux服务器
  • JDK(1.8以上,推荐1.8)
  • Python(2或3都可以)
  • Apache Maven (推荐3.x版本,用来编译项目,本文用不到,后续更高级的使用才会用)

资源下载

  • 源码用来查看文档和个性化开发(下期重点说明)

 源码下载地址

  • DataX工具包,快速上手,配置相关参数就可使用(本期重点说明

 DataX工具包下载  

DataX工具包使用

  博主使用的版本

d26f5bfbd0324a5aa10d6f75913a7e69.png

  把下载好DataX工具包放到linux服务器上的文件夹内(u03)

d4021b5d7bfb41c6b7408f07150711fb.png

 

// 进入工具包文件位置
cd /u03/
// 解压
tar -vxf datax.tar.gz

  1.检查服务是否正常

// 进入执行python脚本位置
cd /u03/datax/bin
// 执行脚本授权
chmod 777 datax.py
// 检查服务是否正常
./datax.py /u03/datax/job/job.json

  出现下图信息表示服务正常 

b6e0b2c627e14bb5bfe094c03e73ce0d.png

 2.数据库数据同步

 从pg数据库数据同步到oralce数据库,表名test,字段:id,name。其中id为主键。

 准备工作:在pg和oralce库中把test表建好,并且在pg库中插入几条数据。

 pg库脚本

-- 建表
CREATE TABLE test ("name" varchar NULL,id varchar NOT NULL,CONSTRAINT test_pk PRIMARY KEY (id)
);
-- 插入数据
INSERT INTO test ("name", id) VALUES('小赵', '1');
INSERT INTO test ("name", id) VALUES('小钱', '2');
INSERT INTO test ("name", id) VALUES('小孙', '3');

 oracle库脚本

--  建表
CREATE TABLE "TEST" ("NAME" VARCHAR2(100), "ID" VARCHAR2(100) PRIMARY KEY
)

 数据同步任务参数配置:进入下图位置,创建文件test_base.json。(job.json是上面检查服务是否正常的时候使用的)

0482cc13648c49b0b5570af555c58ad8.png

 test_base.json

{"job": {"setting": {"speed": {"byte": 1048576},"errorLimit": {"record": 0,"percentage": 0}},"content": [{"reader": {"parameter": {"password": "数据库密码","column": [  "id",         "name"],"sliceRecordCount": 2,"splitPk": "id","connection": [{"jdbcUrl": ["jdbc:postgresql://数据库ip+端口/库名"],"table": [  "test"]}],"username": "用户名"},"name": "postgresqlreader"},"writer": {"parameter": {"password": "数据库密码","column": ["ID","NAME"],"connection": [{"jdbcUrl": "jdbc:oracle:thin:@数据库ip+端口/服务名","table": ["TEST"]}],"username": "用户名"},"name": "oraclewriter"}}]}
}

 执行脚本

// 进入执行脚本位置
cd /u03/datax/bin
// 执行
./datax.py /u03/datax/job/test_base.json

 执行结果:pg库中3条数据已经同步到oracle库中了

e6bda26b7adb413b912ecacb5bd2fe15.png

3. 数据同步任务参数配置说明

pg库的数据读取器——postgresqlreader(下图是源码文件的说明文档)

数据库类型+reader

35f26b3a0a454f46a011930ac64f366a.png

参数

76c11e99285046d5b8994cecf7546d2b.png

oracle库的数据写入器——oraclewriter

数据库类型+writer

fce16dbec1214fdfa0359e4dee38068f.png

  源码文件的说明文档详情说明的参数的使用,因为内容太多,这里就不多介绍了,推荐下载源码查看。

结语

  DataX工具已经能处理一般的业务需求,但了解原理才能看的更宽广,下期内容更精彩。

 

 

 

http://www.lryc.cn/news/523685.html

相关文章:

  • [Qt]事件-鼠标事件、键盘事件、定时器事件、窗口改变事件、事件分发器与事件过滤器
  • 关于机器学习的一份总结
  • 推荐一个开源的轻量级任务调度器!TaskScheduler!
  • 【18】Word:明华中学-儿童医保❗
  • 如何用selenium来链接并打开比特浏览器进行自动化操作(1)
  • 基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
  • 读spring官方文档的一些关键知识点介绍
  • 2024年AI与大数据技术趋势洞察:跨领域创新与社会变革
  • ThinkPhp项目解决静态资源请求的跨域问题的解决思路
  • mybatis的多对一、一对多的用法
  • 消息队列实战指南:三大MQ 与 Kafka 适用场景全解析
  • 前端发送Ajax请求的技术Axios
  • 第17章:Python TDD回顾与总结货币类开发
  • opencv_KDTree_搜索介绍及示例
  • Windows 上安装 MongoDB 的 zip 包
  • 先进制造aps专题二十七 西门子opcenter aps架构分析
  • 【数据分享】1929-2024年全球站点的逐年平均气温数据(Shp\Excel\无需转发)
  • 机器学习——什么是代价函数?
  • docker 部署 MantisBT
  • 02内存结构篇(D1_自动内存管理)
  • Centos 8 交换空间管理
  • “深入浅出”系列之数通篇:(5)TCP的三次握手和四次挥手
  • 接口测试及接口测试常用的工具
  • 使用rpc绕过咸鱼sign校验
  • NPC与AI深度融合结合雷鸟X3Pro AR智能眼镜:引领游戏行业沉浸式与增强现实新纪元的畅想
  • 【物联网】ARM核介绍
  • Android系统定制APP开发_如何对应用进行系统签名
  • Tesla Free-Fall Attack:特斯拉汽车网络安全事件纪要
  • 网络安全工程师学习路线
  • 分区和分表有什么区别?