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工具包使用
博主使用的版本

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

// 进入工具包文件位置
cd /u03/
// 解压
tar -vxf datax.tar.gz
1.检查服务是否正常
// 进入执行python脚本位置
cd /u03/datax/bin
// 执行脚本授权
chmod 777 datax.py
// 检查服务是否正常
./datax.py /u03/datax/job/job.json
出现下图信息表示服务正常

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是上面检查服务是否正常的时候使用的)

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库中了

3. 数据同步任务参数配置说明
pg库的数据读取器——postgresqlreader(下图是源码文件的说明文档)
数据库类型+reader

参数

oracle库的数据写入器——oraclewriter
数据库类型+writer

源码文件的说明文档详情说明的参数的使用,因为内容太多,这里就不多介绍了,推荐下载源码查看。
结语
DataX工具已经能处理一般的业务需求,但了解原理才能看的更宽广,下期内容更精彩。
相关文章:
Linux中DataX使用第一期
简介 DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databen…...
[Qt]事件-鼠标事件、键盘事件、定时器事件、窗口改变事件、事件分发器与事件过滤器
目录 前言:Qt与操作系统的关系 一、Qt事件 1.事件介绍 2.事件的表现形式 常见的Qt事件: 常见的事件描述: 3.事件的处理方式 处理鼠标进入和离开事件案例 控件添加到对象树底层原理 二、鼠标事件 1.鼠标按下和释放事件(单击&#x…...
关于机器学习的一份总结
在之前的文章中分别有详细的关于机器学习中某一学习算法的介绍,但缺少一个总体关于机器学习的总结,所以在这篇文中就是关于机器学习的一份总结。 在最近的日子中,人工智能日益火热起来,而机器学习是其中举足轻重的一部分…...
推荐一个开源的轻量级任务调度器!TaskScheduler!
大家好,我是麦鸽。 这次推荐一款轻量级的嵌入式任务调度器,目前已经有1.4K的star,这个项目比较轻量化,只有5个源文件,可以作为学习的一个开源项目。 核心文件 项目概述: 这是一个轻量级的协作式多任务处理&…...
【18】Word:明华中学-儿童医保❗
目录 题目 NO2 NO3 NO4 NO5 NO6 NO7 NO8 NO9 题目 NO2 布局→页面设置对话框→纸张方向:横向→纸张大小:A3 ;页面设置对话框:直接输入纸张大小的宽度和高度即可→页面设置对话框:上下左右边距→版式&…...
如何用selenium来链接并打开比特浏览器进行自动化操作(1)
前言 本文是该专栏的第76篇,后面会持续分享python爬虫干货知识,记得关注。 本文,笔者将基于“比特浏览器”,通过selenium来实现链接并打开比特浏览器,进行相关的“自动化”操作。 值得一提的是,在本专栏之前,笔者有详细介绍过“使用selenium或者pyppeteer(puppeteer)…...
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
项目介绍 基于springbootthymeleafRedis仿知乎网站问答项目源码,可以作为毕业设计项目参考学习 按照需要一定动手能力 发文章,发视频,发想法,提问回答,注册登录 开发环境 使用技术:springbootthymeleafRe…...
读spring官方文档的一些关键知识点介绍
目录 bean definitionBeanPostProcessorBeanFactoryPostProcessorComponent and Further Stereotype AnnotationsAOP Concepts bean definition https://docs.spring.io/spring-framework/docs/5.1.3.RELEASE/spring-framework-reference/core.html#beans-child-bean-definiti…...
2024年AI与大数据技术趋势洞察:跨领域创新与社会变革
目录 引言 技术洞察 1. 大模型技术的创新与开源推动 2. AI Agent 智能体平台技术 3. 多模态技术的兴起:跨领域应用的新风口 4. 强化学习与推荐系统:智能化决策的底层驱动 5. 开源工具与平台的快速发展:赋能技术创新 6. 技术安全与伦理:AI技术的双刃剑 7. 跨领域技…...
ThinkPhp项目解决静态资源请求的跨域问题的解决思路
背景:我在前端使用vue语言开发的,请求的后端是用ThinkPhp项目开发的。我vue项目里的请求php接口,自带header参数的跨域问题通过网上查询到的server端配置方法已经解决了。我使用的 是中间件的配置方法: <?php//admin 项目 配…...
mybatis的多对一、一对多的用法
目录 1、使用VO聚合对象(可以解决这两种情况) 多对一: 一对多: 2、非聚合的多对一做法: 3、非聚合的一对多做法: 1、使用VO聚合对象(可以解决这两种情况) 当我需要多对一、一对…...
消息队列实战指南:三大MQ 与 Kafka 适用场景全解析
前言:在当今数字化时代,分布式系统和大数据处理变得愈发普遍,消息队列作为其中的关键组件,承担着系统解耦、异步通信、流量削峰等重要职责。ActiveMQ、RabbitMQ、RocketMQ 和 Kafka 作为市场上极具代表性的消息队列产品࿰…...
前端发送Ajax请求的技术Axios
目录 1.引入Axios文件 2.使用Axios发送请求 2.1请求方法的别名 请求的URL地址怎么来的? 后端实现 前后端交互 1.引入Axios文件 <script src"https://unpkg.com/axios/dist/axios.min.js"></script> 2.使用Axios发送请求 2.1请求方法的…...
第17章:Python TDD回顾与总结货币类开发
写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…...
opencv_KDTree_搜索介绍及示例
cv::flann::KDTreeIndexParams 说明,使用? cv::flann::KDTreeIndexParams 是 OpenCV 中用于配置 KD 树(K-Dimensional Tree)索引参数的类。KD 树是一种用于多维空间中的点搜索的数据结构,常用于最近邻搜索等问题。在…...
Windows 上安装 MongoDB 的 zip 包
博主介绍: 大家好,我是想成为Super的Yuperman,互联网宇宙厂经验,17年医疗健康行业的码拉松奔跑者,曾担任技术专家、架构师、研发总监负责和主导多个应用架构。 近期专注: RPA应用研究,主流厂商产…...
先进制造aps专题二十七 西门子opcenter aps架构分析
欧美的商业aps,主要就是sap apo,西门子opcenter aps,达索quintiq 从技术的层面,西门子aps是不如sap apo的,但是西门子aps是西门子数字化工厂产品的核心,有很多特色,所以分析 西门子aps主要分计划器和排产器两个部分 计…...
【数据分享】1929-2024年全球站点的逐年平均气温数据(Shp\Excel\无需转发)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,其中又以气温指标最为常用!说到气温数据,最详细的气温数据是具体到气象监测站点的气温数据!本次我们为大家带来的就是具体到气象监…...
机器学习——什么是代价函数?
1.代价函数的定义 首先,提到代价函数是估计值和实际值的差,这应该是指预测值和真实值之间的差异,用来衡量模型的好坏。 在一元线性模型中,模型是直线,有两个参数,可能是斜率和截距。 通过调整这两个参数,让代价函数最小,这应该是说我们要找到最佳的斜率和截距,使得预测…...
docker 部署 MantisBT
1. docker 安装MantisBT docker pull vimagick/mantisbt:latest 2.先运行实例,复制配置文件 docker run -p 8084:80 --name mantisbt -d vimagick/mantisbt:latest 3. 复制所需要配置文件到本地路径 docker cp mantisbt:/var/www/html/config/config_inc.php.…...
湍流涡旋的数值模拟方法与应用场景解析
1. 湍流涡旋的数值模拟方法解析 我第一次接触湍流数值模拟是在研究生阶段,当时用OpenFOAM模拟飞机翼型周围的流动,结果发现计算资源根本不够用——这就是典型的DNS方法带来的困扰。湍流模拟的核心挑战在于如何平衡精度与计算成本,目前主流方法…...
ComfyUI Impact Pack实战手册:从检测器配置到人脸精修的完整工作流
1. ComfyUI Impact Pack核心功能解析 第一次接触ComfyUI Impact Pack时,我被它强大的视觉处理能力震撼到了。这个插件包就像是给AI装上了"视觉增强镜",让普通的图像处理任务变得异常简单高效。Impact Pack最核心的价值在于它集成了三大检测器&…...
K8S集群节点NotReady?别急着重启,先检查swap分区这个隐藏开关(附永久关闭swap方法)
K8S集群节点NotReady?别急着重启,先检查swap分区这个隐藏开关 凌晨三点,手机突然响起刺耳的告警声——K8S集群中三个工作节点同时显示NotReady状态。作为运维工程师,你的第一反应可能是立即重启节点或服务。但请先停下即将敲下reb…...
Delphi中TDictionary的高效应用与实战技巧
1. 为什么TDictionary是Delphi开发者的秘密武器 第一次接触Delphi的TDictionary时,我还在用TStringList处理键值对数据。当时项目里有个需求要缓存5万条用户配置,用TStringList加载要等整整12秒,界面直接卡死。换成TDictionary后,…...
手把手教你用Qwen-Image:小白也能轻松制作带文字的创意海报
手把手教你用Qwen-Image:小白也能轻松制作带文字的创意海报 你是不是也遇到过这样的烦恼?想为活动做个海报,脑子里有画面,但打开设计软件就傻眼——字体怎么选?排版怎么弄?背景图去哪找?折腾半…...
【信息科学与工程学】计算机科学与自动化——第三十九篇 ITSS运维体系 第二系列
ICT运维领域 编号 类型 函数类型 函数的数学方程式建模 / 子函数的数学方程式列表 参数类型 参数名称 数学表达式/物理模型/计算机模型/通信模型/关联描述 典型值/范围 (管控目标) 单位 核心关联参数 依赖关系 设计/软件开发/硬件制造/应用要求 测试/验证方法 关联…...
JLink 添加国产芯片手把手教程(雅特力 + 华大)
大家好,我是嵌入式学习菌,一名在上海嘉定打拼的嵌入式开发工程师。2023 年 7 月硕士毕业,现深耕嵌入式软件开发,日常和 MCU、调试器打交道。现在项目都在做国产 MCU 替代,雅特力 AT32、华大 HC32 用得越来越多,但 JLink 默认不自带这两家芯片支持,每次都要手动添加。 今…...
如何快速获取百度网盘提取码:开源工具的终极实战指南
如何快速获取百度网盘提取码:开源工具的终极实战指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘分享链接的提取码而烦恼吗?每次遇到需要密码的资源,你都要在多个网页间来…...
手把手教你用Multisim和Matlab复现《开关电源控制环路设计》第一章的所有仿真案例
从零开始复现《开关电源控制环路设计》第一章仿真案例:Multisim与Matlab实战指南 1. 仿真环境搭建与基础准备 工欲善其事,必先利其器。在开始复现书中的仿真案例前,我们需要确保工具链配置正确。这里推荐使用**Multisim 14.0和Matlab R2020b*…...
DVWA文件上传漏洞通关实录:从Low到High,手把手教你三种绕过姿势(附Burp Suite实战)
DVWA文件上传漏洞实战指南:从基础绕过到高级技巧 在Web安全领域,文件上传漏洞一直是最常见也最具破坏力的漏洞类型之一。DVWA(Damn Vulnerable Web Application)作为经典的漏洞练习平台,其文件上传模块设置了从低到高三…...
