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工具已经能处理一般的业务需求,但了解原理才能看的更宽广,下期内容更精彩。

 

 

 

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

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

相关文章

Windows配置frp内网穿透实现远程连接

仅个人记录 本文仅介绍客户端的配置 1. 开始 frp分为服务端和客户端,为实现内网穿透需要同时配置服务端和客户端,并且版本保持一致,可以前往 frp github下载 本文使用 0.51.2 版本,从GitHub下载并解压,得到如下文件…

PHP同城配送小程序

🚀 同城极速达——您生活中的极速配送大师 📱 一款专为现代都市快节奏生活量身打造的同城配送小程序,同城极速达,集高效、便捷、智能于一身,依托ThinkPHPGatewayWorkerUniapp的强大架构,巧妙融合用户端、骑…

ESP32云开发二( http + led + lcd)

文章目录 前言先上效果图platformio.iniwokwi.tomldiagram.json源代码编译编译成功上传云端完结撒花⭐⭐⭐⭐⭐ 前言 阅读此篇前建议先看 此片熟悉下wokwi https://blog.csdn.net/qq_20330595/article/details/144289986 先上效果图 Column 1Column 2 platformio.ini wokwi…

分布式搜索引擎02

1. DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1. DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据&#xff0c…

reactor框架使用时,数据流请求流程

1. 我们在Flux打开时&#xff0c;可以看到 public abstract class Flux<T> implements CorePublisher<T> { 2. public interface CorePublisher<T> extends Publisher<T> {void subscribe(CoreSubscriber<? super T> subscriber); } Publish…

E-Prime2实现List嵌套

用E-Prime实现一个简单的List嵌套&#xff0c;实验流程基于斯特鲁程序&#xff08;色词一致/不一致实验&#xff09;。 首先File-New&#xff0c;新建一个空白项目 此时生成流程如下 Experiment Object是实验中被用到的流程或者控件对象&#xff0c;SessionProc是总流程&#x…

web-view环境下,H5页面打开其他小程序

在Web-view环境下&#xff0c;H5页面无法直接打开其他小程序。正确的实现方式是先从H5页面跳转回当前小程序&#xff0c;再由当前小程序跳转到目标小程序。具体实现方法如下&#xff1a; H5页面跳转回小程序时&#xff0c;调用wx.miniProgram.navigateTo()方法。 小程序跳转到…

ChatGPT 摘要,以 ESS 作为你的私有数据存储

作者&#xff1a;来自 Elastic Ryan_Earle 本教程介绍如何设置 Elasticsearch 网络爬虫&#xff0c;将网站索引到 Elasticsearch 中&#xff0c;然后利用 ChatGPT 使用我们的私人数据来总结对其提出的问题。 Python 脚本的 Github Repo&#xff1a;https://github.com/Gunner…

Linux系统的第一个进程是什么?

Linux进程的生命周期从创建开始&#xff0c;直至终止&#xff0c;贯穿了一个进程的整个存在过程。我们可以通过系统调用fork()或vfork()来创建一个新的子进程&#xff0c;这标志着一个新进程的诞生。 实际上&#xff0c;Linux系统中的所有进程都是由其父进程创建的。 既然所有…

《冲动》V1.6官方学习版

《冲动》官方版 https://pan.xunlei.com/s/VODiYvUAE1lECHcq66BR1np_A1?pwdfxc6# 具有侦探小说、戏剧和恐怖元素的惊悚片。 主角结束了漫长的商务旅行回到家&#xff0c;他的妻子和年幼的儿子热切地等待着他。然而&#xff0c;当他到达时&#xff0c;他发现有些不对劲&#x…

【Java计算机毕业设计】基于SSM圣宠宠物领养网站【源代码+数据库+LW文档+开题报告+答辩稿+部署教程+代码讲解】

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统&#xff1a;Window操作系统 2、开发工具&#xff1a;IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

【微机原理与接口技术】定时控制接口

文章目录 8253的引脚和工作方式内部结构和引脚工作方式方式0&#xff1a;计数结束中断方式1&#xff1a;可编程单稳脉冲方式2&#xff1a;周期性负脉冲输出方式3&#xff1a;方波发生器方式4&#xff1a;软件触发的单次负脉冲输出方式5&#xff1a;硬件触发的单次负脉冲输出各种…

场馆预定平台高并发时间段预定实现V2

&#x1f3af; 本文档介绍了场馆预订系统接口V2的设计与实现&#xff0c;旨在解决V1版本中库存数据不一致及性能瓶颈的问题。通过引入令牌机制确保缓存和数据库库存的最终一致性&#xff0c;避免因服务器故障导致的库存错误占用问题。同时&#xff0c;采用消息队列异步处理库存…

从零到上线:Node.js 项目的完整部署流程(包含 Docker 和 CICD)

从零到上线&#xff1a;Node.js 项目的完整部署流程&#xff08;包含 Docker 和 CI/CD&#xff09; 目录 项目初始化&#xff1a;构建一个简单的 Node.js 应用设置 Docker 环境&#xff1a;容器化你的应用配置 CI/CD&#xff1a;自动化构建与部署上线前的最后检查&#xff1a;…

stm32 L051 adc配置及代码实例解析

一 cude的设置&#xff1a; 1. 接口的基本设置&#xff1a; 2. 参数的设置&#xff1a; 二 代码的逻辑&#xff1a; 1. 上面的直接生成代码&#xff0c;然后使用下面源码即可读到adc的数据&#xff1a; void adc_battery_start(void) {uint32_t ADC_value 0;HAL_ADC_Start(&…

【2024 博客之星评选】请继续保持Passion

我尝试复盘自己2024年走的路&#xff0c;希望能给诸君一些借鉴。 文章目录 回头望感想与收获成长与教训今年计划感恩一些体己话 回头望 回望我的2024年&#xff0c;年初拿高绩效&#xff0c;但感觉逐渐被公司一点点剥离出中心&#xff1b;年中一直在学习防患于未然&#xff1b…

【第二十周】U-Net:用于生物图像分割的卷积神经网络

文章目录 摘要Abstract文章信息研究动机U-Net网络结构U-Net网络搭建数据增强损失函数转置卷积创新性与不足创新性&#xff1a;不足&#xff1a; 总结 摘要 U-Net&#xff08;Convolutional Networks for Biomedical Image Segmentation&#xff09;是一种用于图像分割的深度学…

GD32F303 GCC 环境搭建

一、引言 在嵌入式开发领域&#xff0c;GD32F303 微控制器以其出色的性能和丰富的功能被广泛应用。为了充分发挥其潜力&#xff0c;搭建一个高效的开发环境并深入理解项目构建过程至关重要。本文将详细介绍如何基于 GCC 工具链搭建 GD32F303 的开发环境&#xff0c;重点聚焦于…

【语言处理和机器学习】概述篇(基础小白入门篇)

前言 自学笔记&#xff0c;分享给语言学/语言教育学方向的&#xff0c;但对语言数据处理感兴趣但是尚未入门&#xff0c;却需要在论文中用到的小伙伴&#xff0c;欢迎大佬们补充或绕道。ps&#xff1a;本文不涉及公式讲解&#xff08;文科生小白友好体质&#xff09;&#xff…

智能系统的感知和决策

智能系统在感知和决策过程中具备的关键能力表现在智能感知/自主判定上&#xff0c;下面可以从感知的本质、自主判断的含义及其在智能系统中的作用进行深入分析。 1、智能感知&#xff1a;信息获取与理解 智能感知是指智能系统通过传感器或其他数据采集手段获取环境中的信息&…