DataX-数据迁移Oracle到Mysql-ETL工具

一、安装

https://github.com/WeiYe-Jing/datax-web/blob/master/doc/datax-web/datax-web-deploy.md

  • 1、直接下载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

  • 2、Python (2.x) (支持Python3需要修改替换datax/bin下面的三个python文件,替换文件在doc/datax-web/datax-python3下) 必选,主要用于调度执行底层DataX的启动脚本,默认的方式是以Java子进程方式执行DataX,用户可以选择以Python方式来做自定义的改造

二、测试脚本

C:\DATAX\datax\bin>CHCP 65001
Active code page: 65001C:\DATAX\datax\bin>python datax.py C:\DATAX\datax\job\test.jsonDataX (DATAX-OPENSOURCE-3.0), From Alibaba !
Copyright (C) 2010-2017, Alibaba Group. All Rights Reserved.2024-03-14 15:02:01.361 [main] INFO  MessageSource - JVM TimeZone: GMT+08:00, Locale: zh_CN
2024-03-14 15:02:01.363 [main] INFO  MessageSource - use Locale: zh_CN timeZone: sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
2024-03-14 15:02:01.375 [main] INFO  VMInfo - VMInfo# operatingSystem class => sun.management.OperatingSystemImpl
2024-03-14 15:02:01.381 [main] INFO  Engine - the machine info  =>osInfo: Windows 10 amd64 10.0jvmInfo:        Oracle Corporation 1.8 25.341-b10cpu num:        6totalPhysicalMemory:    -0.00GfreePhysicalMemory:     -0.00GmaxFileDescriptorCount: -1currentOpenFileDescriptorCount: -1GC Names        [PS MarkSweep, PS Scavenge]MEMORY_NAME                    | allocation_size                | init_sizePS Eden Space                  | 256.00MB                       | 256.00MBCode Cache                     | 240.00MB                       | 2.44MBCompressed Class Space         | 1,024.00MB                     | 0.00MBPS Survivor Space              | 42.50MB                        | 42.50MBPS Old Gen                     | 683.00MB                       | 683.00MBMetaspace                      | -0.00MB                        | 0.00MB2024-03-14 15:02:01.392 [main] INFO  Engine -
{"setting":{"speed":{"channel":4}},"content":[{"reader":{"name":"oraclereader","parameter":{"username":"test","password":"******","column":["*"],"connection":[{"table":["CAR.S_U"],"jdbcUrl":["jdbc:oracle:thin:@//10.33.51.231:1521/helowin"]}]}},"writer":{"name":"mysqlwriter","parameter":{"username":"car","password":"******","writeMode":"replace","column":["*"],"connection":[{"jdbcUrl":"jdbc:mysql://10.33.51.231:3306/car","table":["S_U"]}]}}}]
}2024-03-14 15:02:01.417 [main] INFO  PerfTrace - PerfTrace traceId=job_-1, isEnable=false
2024-03-14 15:02:01.418 [main] INFO  JobContainer - DataX jobContainer starts job.
2024-03-14 15:02:01.420 [main] INFO  JobContainer - Set jobId = 0
2024-03-14 15:02:01.623 [job-0] INFO  OriginalConfPretreatmentUtil - Available jdbcUrl:jdbc:oracle:thin:@//10.33.51.231:1521/helowin.
2024-03-14 15:02:01.624 [job-0] WARN  OriginalConfPretreatmentUtil - 您的配置文件中的列配置存在一定的风险. 因为您未配置 读取数据库表的列,当您的表字段个数、类型有变动时,可能影响任务正确性甚至会运行出错。请检查您的配置并作出修改.
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
2024-03-14 15:02:07.748 [job-0] INFO  OriginalConfPretreatmentUtil - table:[S_BU] all columns:[
M_ROW$$,ANNLRVW_ENDT_OFFST,ANNLRVW_STDT_OFFST,BU_FLG,CONFLICT_ID,CREATED,CREATED_BY,CURR_PRD_OBJ_NAME,CURR_PRD_RVW_NAME,DYN_HRCHY_ID,LAST_UPD,LAST_UPD_BY,MODIFICATION_NUM,NAME,PAR_ROW_ID,ROW_ID,X_LANG_ID
].
2024-03-14 15:02:07.748 [job-0] WARN  OriginalConfPretreatmentUtil - 您的配置文件中的列配置信息存在风险. 因为您配置的写 入数据库表的列为*,当您的表字段个数、类型有变动时,可能影响任务正确性甚至会运行出错。请检查您的配置并作出修改.
2024-03-14 15:02:07.752 [job-0] INFO  OriginalConfPretreatmentUtil - Write data [
replace INTO %s (M_ROW$$,ANNLRVW_ENDT_OFFST,ANNLRVW_STDT_OFFST,BU_FLG,CONFLICT_ID,CREATED,CREATED_BY,CURR_PRD_OBJ_NAME,CURR_PRD_RVW_NAME,DYN_HRCHY_ID,LAST_UPD,LAST_UPD_BY,MODIFICATION_NUM,NAME,PAR_ROW_ID,ROW_ID,X_LANG_ID) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
], which jdbcUrl like:[jdbc:mysql://10.33.51.231:3306/carmen?yearIsDateType=false&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true&tinyInt1isBit=false]
2024-03-14 15:02:07.753 [job-0] INFO  JobContainer - jobContainer starts to do prepare ...
2024-03-14 15:02:07.753 [job-0] INFO  JobContainer - DataX Reader.Job [oraclereader] do prepare work .
2024-03-14 15:02:07.754 [job-0] INFO  JobContainer - DataX Writer.Job [mysqlwriter] do prepare work .
2024-03-14 15:02:07.755 [job-0] INFO  JobContainer - jobContainer starts to do split ...
2024-03-14 15:02:07.755 [job-0] INFO  JobContainer - Job set Channel-Number to 4 channels.
2024-03-14 15:02:07.757 [job-0] INFO  JobContainer - DataX Reader.Job [oraclereader] splits to [1] tasks.
2024-03-14 15:02:07.758 [job-0] INFO  JobContainer - DataX Writer.Job [mysqlwriter] splits to [1] tasks.
2024-03-14 15:02:07.778 [job-0] INFO  JobContainer - jobContainer starts to do schedule ...
2024-03-14 15:02:07.779 [job-0] INFO  JobContainer - Scheduler starts [1] taskGroups.
2024-03-14 15:02:07.781 [job-0] INFO  JobContainer - Running by standalone Mode.
2024-03-14 15:02:07.786 [taskGroup-0] INFO  TaskGroupContainer - taskGroupId=[0] start [1] channels for [1] tasks.
2024-03-14 15:02:07.790 [taskGroup-0] INFO  Channel - Channel set byte_speed_limit to -1, No bps activated.
2024-03-14 15:02:07.790 [taskGroup-0] INFO  Channel - Channel set record_speed_limit to -1, No tps activated.
2024-03-14 15:02:07.796 [taskGroup-0] INFO  TaskGroupContainer - taskGroup[0] taskId[0] attemptCount[1] is started
2024-03-14 15:02:07.798 [0-0-0-reader] INFO  CommonRdbmsReader$Task - Begin to read record by Sql: [select * from CARMEN.S_BU
] jdbcUrl:[jdbc:oracle:thin:@//10.33.51.231:1521/helowin].
2024-03-14 15:02:16.306 [0-0-0-reader] INFO  CommonRdbmsReader$Task - Finished read record by Sql: [select * from CARMEN.S_BU
] jdbcUrl:[jdbc:oracle:thin:@//10.33.51.231:1521/helowin].
2024-03-14 15:02:16.845 [taskGroup-0] INFO  TaskGroupContainer - taskGroup[0] taskId[0] is successed, used[9050]ms
2024-03-14 15:02:16.847 [taskGroup-0] INFO  TaskGroupContainer - taskGroup[0] completed it's tasks.
2024-03-14 15:02:17.798 [job-0] INFO  StandAloneJobContainerCommunicator - Total 100000 records, 14644530 bytes | Speed 1.40MB/s, 10000 records/s | Error 0 records, 0 bytes |  All Task WaitWriterTime 6.239s |  All Task WaitReaderTime 1.988s | Percentage 100.00%
2024-03-14 15:02:17.800 [job-0] INFO  AbstractScheduler - Scheduler accomplished all tasks.
2024-03-14 15:02:17.805 [job-0] INFO  JobContainer - DataX Writer.Job [mysqlwriter] do post work.
2024-03-14 15:02:17.805 [job-0] INFO  JobContainer - DataX Reader.Job [oraclereader] do post work.
2024-03-14 15:02:17.806 [job-0] INFO  JobContainer - DataX jobId [0] completed successfully.
2024-03-14 15:02:17.807 [job-0] INFO  HookInvoker - No hook invoked, because base dir not exists or is a file: C:\DATAX\datax\hook
2024-03-14 15:02:17.808 [job-0] INFO  JobContainer -[total cpu info] =>averageCpu                     | maxDeltaCpu                    | minDeltaCpu-1.00%                         | -1.00%                         | -1.00%[total gc info] =>NAME                 | totalGCCount       | maxDeltaGCCount    | minDeltaGCCount    | totalGCTime        | maxDeltaGCTime     | minDeltaGCTimePS MarkSweep         | 1                  | 1                  | 1                  | 0.018s             | 0.018s             | 0.018sPS Scavenge          | 5                  | 5                  | 5                  | 0.028s             | 0.028s             | 0.028s2024-03-14 15:02:17.808 [job-0] INFO  JobContainer - PerfTrace not enable!
2024-03-14 15:02:17.808 [job-0] INFO  StandAloneJobContainerCommunicator - Total 100000 records, 14644530 bytes | Speed 1.40MB/s, 10000 records/s | Error 0 records, 0 bytes |  All Task WaitWriterTime 6.239s |  All Task WaitReaderTime 1.988s | Percentage 100.00%
2024-03-14 15:02:17.810 [job-0] INFO  JobContainer -
任务启动时刻                    : 2024-03-14 15:02:01
任务结束时刻                    : 2024-03-14 15:02:17
任务总计耗时                    :                 16s
任务平均流量                    :            1.40MB/s
记录写入速度                    :          10000rec/s
读出记录总数                    :              100000
读写失败总数                    :                   0C:\DATAX\datax\bin>

三、datax-web: DataX管理调度GitHub - WeiYe-Jing/datax-web: DataX集成可视化页面,选择数据源即可一键生成数据同步任务,支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源,批量创建RDBMS数据同步任务,集成开源调度系统,支持分布式、增量同步数据、实时查看运行日志、监控执行器资源、KILL运行进程、数据源信息加密等。

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

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

相关文章

Redis数据结构对象之字符串对象

字符串对象 字符串对象的编码可以是int、raw或者embstr 如果一个字符串对象保存的是整数值,并且这个整数值可以用long类型来表示,那么字符串对象会将整数值保存在字符串对象结构的ptr属性里面(将void *转换成long),并且将字符串对象的编码设…

为啥这么做实现不了优雅关闭服务,gin 项目

所谓的优雅关闭服务就是 在关闭服务时,服务不再监听新的请求,并且可以将之前的请求处理完毕。 细节请看 专栏博客Gin项目实战09-优雅关闭服务

【Cute】MMA抽象代码理解 c2d9bff3d88846eb8c523fb722166bc9

【Cute】MMA抽象代码理解 导读: cute 之 Layoutcute Layout 的代数和几何解释cute 之 Tensorcute 之 MMA抽象cute 之 简单GEMM实现 阅读本文前建议先读上面reed大神的数篇文章,文本逻辑主要是针对具体的代码,记录一下自己学习过程中的理解…

Atlas200板卡部署车道线

本博客包含推理的准备和部署代码,一步步实现部署。 这个运行时生成的一个batch的数据,NCHW,就是输入的N,单图片推理就是1,把里面的数量改成1,但是你可以多生成一些bin图片放到校准文件夹中,更改输出文件名…

“城市绿肺诊断:集成GIS、RS、VORS模型、CCDM模型、geodetecto、GWR模型技术深入解析生态系统与城镇化协调发展“

基于GIS、RS、VORS模型、CCDM模型、geodetecto、GWR模型集成的生态系统健康的耦合协调分析 城市群是一国经济发展水平的象征,也是一国经济发展到一定阶段的标志,我国城市群建设体量不断增加,将成为全球经济的核心,中国城市群的建…

MyFileServer

靶场下载地址 https://download.vulnhub.com/myfileserver/My_file_server_1.ova 信息收集 # nmap -sn 192.168.56.0/24 -oN live.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-02-24 22:07 CST Nmap scan report for 192.168.56.2 (192.168.56.2) Host is up (0.…

QML与C++通信

一、QML中如何使用C的类和对象 前提条件: 1.从 QObject 或 QObject 的派生类继承 2.使用 Q_OBJECT 宏 这两个条件是为了让一个类能够进入 Qt 强大的元对象系统(meta-object system)中,只有使用元对象系统,一个类的某些…

Vue2前端权限控制实战

在Vue2项目中,前端权限控制是保障应用安全性的重要环节。本文将介绍如何使用Vue2实现前端权限控制,包括页面路由权限控制和按钮级别的权限控制。 一、页面路由权限控制 页面路由权限控制主要是根据用户的角色或权限来决定其可以访问哪些页面。在Vue2中…

- 概述 - 《设计模式(极简c++版)》

本文章属于专栏《设计模式(极简c版)》 “如果我看得更远,那是因为我站在巨人的肩膀上。” -牛顿 本系列,主要结合个人经验,对《设计模式:可复用面向对象软件的基础》书中经典设计模式,用极简的语…

HarmonyOS NEXT应用开发—状态栏显隐变化

介绍 本示例介绍使用Scroll组件的滚动事件 onScroll 实现状态栏显隐变化。该场景多用于各种软件的首页、我的等页面中。 效果预览图 使用说明 加载完成后显示状态栏显隐变化页面,上下拖动屏幕,顶端状态栏出现显隐变化。 实现思路 在置顶位置使用sta…

文件夹秒变应用程序?别慌,数据恢复有妙招!

在日常使用电脑的过程中,我们有时会遇到一个令人头疼的问题:原本好好的文件夹突然变成了应用程序的图标,点击也无法正常打开。这种“文件夹变应用程序”的现象不仅让人感到困惑,还可能导致重要文件的丢失或损坏。那么,…

vite ts vue 项目提示 . Projects must list all files or use an include pattern.

vite ts vue 项目提示 . Projects must list all files or use an include pattern. 在引用一个 ts 的时候,提示如下: 需要在 tsconfig.node.json 文件中添加: {"compilerOptions": {"composite": true,"skipLibC…

变量命名之函数命名

变量命名: 变量命名和函数名命名 方式一:camel命名 因相骆驼脊背形象命名 大骆驼法:当变量名或函数名由一个或多个单词连接在一起的,从第一个单词首字母也大写了,后面每个单词都大写. 例子: HI_S32 HI_MPI_VI_SetDevAttr(VI_DEV ViDev,const VI_DEV_ATTR_S* pstDevAttr);HI_S…

Vue2(四):Vue监测数据的原理

一、先来看一个问题 添加一个按钮点击更新马冬梅的信息&#xff1a; <button click"gengxin">点击更新马冬梅的信息</button> methods:{gengxin(){this.person[1].name马老师,this.person[1].age50,this.person[1].sex男}} 下面这种方式就不能奏效&a…

【前端】-css的详解

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

信号(Linux)

信号 前言1. 引入2. 概念3. 初步认识ctrlc信号4. 硬件中断 一、信号的产生1. 键盘组合键2. kill命令3. 系统调用①kill②raise③ abort 4. 异常①异常产生信号②原理 5. 软件条件6. 小结 二、信号的保存1. 引入2. 原理3. 接口①信号集——sigset_t②sigprocmask③sigpending④使…

spring注解驱动系列--AOP探究一

一、AOP--动态代理 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式 二、使用栗子 一、导入aop模块 <dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>4…

虚拟机开机字体变大,进入系统后字体模糊

问题 虚拟机开机字体变大&#xff0c;进入系统后字体模糊。 原因 虚拟机配置问题。 解决办法 修改配置为如下:

算法2贪心

1&#xff0c;贪心 1&#xff09;排队打水 #include<bits/stdc.h> using namespace std; const int N1002; int a[N]; int m,n,x0;//n表示人数&#xff0c;m表示水龙头的个数&#xff0c;x表示总时间数 int main(){ cin>>n>>m; for(int i1;i<n;i) {cin…

资深老鸟经验,性能测试-性能指标分析总结,一篇策底概全...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试指标 1、…