(进阶篇_01)Oracle数据同步3种场景

文章目录

          • 一、场景分析
          • 二、实战
            • 2.1. 创建原表表结构+初始化数据
            • 2.2. 创建目标表表结构
            • 2.3. 同步前效果图
            • 2.4. 连接串
            • 2.5. 执行同步
            • 2.6.执行后效果图
            • 2.7.操作记录
          • 三、实战场景2(第1种)
            • 3.1. 原表表结构+初始化数据
            • 3.2. 目标表表结构
            • 3.3. 连接字符串
            • 3.4. 数据同步前效果图
            • 3.5. 数据同步命令
            • 3.6. 数据同步后效果图
            • 3.7. 操作记录
          • 四、实战场景2(第2种)
            • 4.1. 原表表结构+初始化数据
            • 4.2. 目标表表结构
            • 4.3. 连接字符串
            • 4.4. 数据同步前效果图
            • 4.5. 数据同步命令
            • 4.6. 数据同步后截图
            • 4.7. 数据同步操作记录

一、场景分析

单表单表同数据同步

字段数量和字段类型一致有2种情况:

第1种:oracle 原表和目标表 表名称一样,原表和目标表的字段数量以及字段类型一致。
第2种:oracle 原表和目标表 表名称不一样,原表和目标表的字段数量以及字段类型必须一致。

字段不一致有2种情况:

第一种:oracle 原表和目标表 名称一样,也可以不一样,但是,原表和目标表字段数量可以不一致,原表字段比目标表的字段数少。
第二种:oracle 原表和目标表 名称一样,也可以不一样,但是,原表和目标表字段数量可以不一致,原表字段比目标表的字段数多。

二、实战

字段数量和字段类型一致有2种情况:

第1种:oracle 原表和目标表 表名称一样,原表和目标表的字段数量以及字段类型一致。
第2种:oracle 原表和目标表 表名称不一样,原表和目标表的字段数量以及字段类型必须一致。

2.1. 创建原表表结构+初始化数据

ORACLE使用批量插入100万测试数据
https://gblfy.blog.csdn.net/article/details/113556382

2.2. 创建目标表表结构
CREATE TABLE test_data
(ID varchar2(32),NAME1 varchar2(9),NAME2 varchar2(100),NAME3 varchar2(100)
);
COMMENT ON TABLE test_data IS '测试表';
2.3. 同步前效果图

原表1000000条数据

SELECT count(*) FROM test_data;

在这里插入图片描述

2.4. 连接串
#格式:cd {YOUR_DATAX_HOME}/job
cd /app/datax/dca/job
vim oracle-base.json

内容如下:

{"job": {"content": [{"reader": {"name": "oraclereader","parameter": {"column": ["*"],"connection": [{"jdbcUrl": ["jdbc:oracle:thin:@ip地址:1521:数据库名称"],"table": ["用户(大写).${originTableName}"]}],"password": "用户名","username": "密码"}},"writer": {"name": "oraclewriter","parameter": {"column": ["*"],"connection": [{"jdbcUrl": "jdbc:oracle:thin:@ip地址:1521:数据库名称","table": ["用户(大写).${targetTableName}"]}],"password": "用户名","username": "密码"}}}],"setting": {"speed": {"channel": "2"}}}
}
2.5. 执行同步
#格式:python {YOUR_DATAX_HOME}/bin/datax.py -p"-DoriginTableName='目标表名' -DtargetTableName='原表名'" {YOUR_DATAX_HOME}/job/oracle2oracle-oldCS.json;
python /app/datax/bin/datax.py -p"-DoriginTableName='TEST_DATA' -DtargetTableName='TEST_DATA'" /app/datax/job/dca/oracle-base.json
2.6.执行后效果图

原表
在这里插入图片描述

目标表
在这里插入图片描述

2.7.操作记录
[root@localhost job]# python /app/datax/bin/datax.py -p"-DoriginTableName='TEST_DATA' -DtargetTableName='TEST_DATA'" /app/datax/job/dca/oracle-base.json2021-02-02 17:30:19.114 [job-0] INFO  JobContainer - PerfTrace not enable!
2021-02-02 17:30:19.114 [job-0] INFO  StandAloneJobContainerCommunicator - Total 1000000 records, 37555584 bytes | Speed 3.58MB/s, 100000 records/s | Error 0 records, 0 bytes |  All Task WaitWriterTime 6.049s |  All Task WaitReaderTime 1.829s | Percentage 100.00%
2021-02-02 17:30:19.115 [job-0] INFO  JobContainer - 
任务启动时刻                    : 2021-02-02 17:30:08
任务结束时刻                    : 2021-02-02 17:30:19
任务总计耗时                    :                 10s
任务平均流量                    :            3.58MB/s
记录写入速度                    :         100000rec/s
读出记录总数                    :             1000000
读写失败总数                    :                   0[root@localhost job]#
三、实战场景2(第1种)

字段不一致有2种情况:

第一种:oracle 原表和目标表 名称一样,也可以不一样,但是,原表和目标表字段数量可以不一致,原表字段比目标表的字段数少。

3.1. 原表表结构+初始化数据
DROP table HERO;-- Create table
create table HERO
(SNO       VARCHAR2(20) not null,USER_NAME VARCHAR2(20),AGE       NUMBER(3),PRIMARY KEY (SNO)
);
-- Add comments to the table 
comment on table HERO  is '英雄信息表';-- Add comments to the columns 
comment on column HERO.SNO  is '英雄编码';
comment on column HERO.USER_NAME  is '英雄名称';
comment on column HERO.AGE  is '英雄年龄';insert into HERO (SNO, USER_NAME, AGE) values ('1', '盖伦', '1');
insert into HERO (SNO, USER_NAME, AGE) values ('2', '小丑', '2');
insert into HERO (SNO, USER_NAME, AGE) values ('3', '莫甘娜', '3');
insert into HERO (SNO, USER_NAME, AGE) values ('4', '寒冰', '4');
insert into HERO (SNO, USER_NAME, AGE) values ('5', '剑圣', '5');
insert into HERO (SNO, USER_NAME, AGE) values ('6', '剑圣', '6');
3.2. 目标表表结构
DROP table HERO;-- Create table
create table HERO
(SNO       VARCHAR2(20) not null,USER_NAME VARCHAR2(20),AGE       NUMBER(3),LLMEDSERIALNO VARCHAR2(20),MAKEDATE  DATE,MAKETIME  VARCHAR2(8),PRIMARY KEY (SNO)
);-- Add comments to the table 
comment on table HERO  is '英雄信息表';-- Add comments to the columns 
comment on column HERO.SNO  is '英雄编码';
comment on column HERO.USER_NAME  is '英雄名称';
comment on column HERO.AGE  is '英雄年龄';
3.3. 连接字符串
vim oracle-more.json
{"job": {"content": [{"reader": {"name": "oraclereader","parameter": {"where": "","connection": [{"querySql": ["select a.*,  (ROWNUM+72500072689218919812) LLMEDSERIALNO, to_date('2021-1-4','yyyy-mm-dd') MAKEDATE, to_char(SYSDATE,'hh24:mi:ss') MAKETIME  from 用户大写.${originTableName} a where 1=1"],"jdbcUrl": ["jdbc:oracle:thin:@ip地址:1521:数据库名称"],}],"password": "用户名","username": "密码"}},"writer": {"name": "oraclewriter","parameter": {"column": ["*"],"connection": [{"jdbcUrl": "jdbc:oracle:thin:@ip地址:1521:数据库名称","table": ["用户大写.${targetTableName}"]}],"password": "用户名","username": "密码"}}}],"setting": {"speed": {"channel": "1"}}}
}
3.4. 数据同步前效果图

在这里插入图片描述
在这里插入图片描述

3.5. 数据同步命令
python /app/datax/bin/datax.py -p"-DtableName='HERO' -DoracletableName='HERO'" -j"-Xms2g -Xmx2g" /app/datax/job/dca/oracle-more.json
3.6. 数据同步后效果图

原表
在这里插入图片描述

目标表
在这里插入图片描述

3.7. 操作记录
[root@localhost job]#python /app/datax/bin/datax.py -p"-DtableName='HERO' -DoracletableName='HERO'" -j"-Xms2g -Xmx2g" /app/datax/job/dca/oracle-more.json2021-02-02 18:07:06.575 [job-0] INFO  JobContainer - PerfTrace not enable!
2021-02-02 18:07:06.575 [job-0] INFO  StandAloneJobContainerCommunicator - Total 6 records, 241 bytes | Speed 24B/s, 0 records/s | Error 0 records, 0 bytes |  All Task WaitWriterTime 0.000s |  All Task WaitReaderTime 0.000s | Percentage 100.00%
2021-02-02 18:07:06.576 [job-0] INFO  JobContainer - 
任务启动时刻                    : 2021-02-02 18:06:56
任务结束时刻                    : 2021-02-02 18:07:06
任务总计耗时                    :                 10s
任务平均流量                    :               24B/s
记录写入速度                    :              0rec/s
读出记录总数                    :                   6
读写失败总数                    :                   0
四、实战场景2(第2种)

字段不一致有2种情况:

第二种:oracle 原表和目标表 名称一样,也可以不一样,但是,原表和目标表字段数量可以不一致,原表字段比目标表的字段数多。

4.1. 原表表结构+初始化数据
DROP table HERO;-- Create table
create table HERO
(SNO       VARCHAR2(20) not null,USER_NAME VARCHAR2(20),AGE       NUMBER(3),LLMEDSERIALNO VARCHAR2(20),MAKEDATE  DATE,MAKETIME  VARCHAR2(8),PRIMARY KEY (SNO)
);-- Add comments to the table 
comment on table HERO  is '英雄信息表';-- Add comments to the columns 
comment on column HERO.SNO  is '英雄编码';
comment on column HERO.USER_NAME  is '英雄名称';
comment on column HERO.AGE  is '英雄年龄';insert into HERO (SNO, USER_NAME, AGE, LLMEDSERIALNO, MAKEDATE, MAKETIME) values ('1', '盖伦', '1', '72500072689218919813', '2021-01-04', '18:18:25');
insert into HERO (SNO, USER_NAME, AGE, LLMEDSERIALNO, MAKEDATE, MAKETIME) values ('2', '小丑', '2', '72500072689218919814', '2021-01-04', '18:18:25');
insert into HERO (SNO, USER_NAME, AGE, LLMEDSERIALNO, MAKEDATE, MAKETIME) values ('3', '莫甘娜', '3', '72500072689218919815', '2021-01-04', '18:18:25');
insert into HERO (SNO, USER_NAME, AGE, LLMEDSERIALNO, MAKEDATE, MAKETIME) values ('4', '寒冰', '4', '72500072689218919816', '2021-01-04', '18:18:25');
insert into HERO (SNO, USER_NAME, AGE, LLMEDSERIALNO, MAKEDATE, MAKETIME) values ('5', '剑圣', '5', '72500072689218919817', '2021-01-04', '18:18:25');
insert into HERO (SNO, USER_NAME, AGE, LLMEDSERIALNO, MAKEDATE, MAKETIME) values ('6', '剑圣', '6', '72500072689218919818', '2021-01-04', '18:18:25');
4.2. 目标表表结构
DROP table HERO;-- Create table
create table HERO
(SNO       VARCHAR2(20) not null,USER_NAME VARCHAR2(20),AGE       NUMBER(3),PRIMARY KEY (SNO)
);-- Add comments to the table 
comment on table HERO  is '英雄信息表';-- Add comments to the columns 
comment on column HERO.SNO  is '英雄编码';
comment on column HERO.USER_NAME  is '英雄名称';
comment on column HERO.AGE  is '英雄年龄';
4.3. 连接字符串
vim oracle-short.json
{"job": {"content": [{"reader": {"name": "oraclereader","parameter": {"where": "","connection": [{"querySql": ["select a.SNO,a.USER_NAME,a.AGE  from 用户大写.${originTableName} a where 1=1"],"jdbcUrl": ["jdbc:oracle:thin:@ip地址:1521:数据库名称"],}],"password": "用户名","username": "密码"}},"writer": {"name": "oraclewriter","parameter": {"column": ["*"],"connection": [{"jdbcUrl": "jdbc:oracle:thin:@ip地址:1521:数据库名称","table": ["用户大写.${targetTableName}"]}],"password": "用户名","username": "密码"}}}],"setting": {"speed": {"channel": "1"}}}
}
4.4. 数据同步前效果图

在这里插入图片描述
在这里插入图片描述

4.5. 数据同步命令
python /app/datax/bin/datax.py -p"-DtableName='HERO' -DoracletableName='HERO'" -j"-Xms2g -Xmx2g" /app/datax/job/dca/oracle-short.json
4.6. 数据同步后截图

原表
在这里插入图片描述
目标表
在这里插入图片描述

4.7. 数据同步操作记录
[root@localhost dca]# python /app/datax/bin/datax.py -p"-DtableName='HERO' -DoracletableName='HERO'" -j"-Xms2g -Xmx2g" /app/datax/job/dca/oracle-short.json
2021-02-02 18:27:18.498 [job-0] INFO  JobContainer - PerfTrace not enable!
2021-02-02 18:27:18.499 [job-0] INFO  StandAloneJobContainerCommunicator - Total 6 records, 25 bytes | Speed 2B/s, 0 records/s | Error 0 records, 0 bytes |  All Task WaitWriterTime 0.000s |  All Task WaitReaderTime 0.000s | Percentage 100.00%
2021-02-02 18:27:18.499 [job-0] INFO  JobContainer - 
任务启动时刻                    : 2021-02-02 18:27:07
任务结束时刻                    : 2021-02-02 18:27:18
任务总计耗时                    :                 10s
任务平均流量                    :                2B/s
记录写入速度                    :              0rec/s
读出记录总数                    :                   6
读写失败总数                    :                   0

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

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

相关文章

html背景图片横屏,CSS背景颜色 背景图片 居中 重复 固定样式background经验篇

我们使用CSS Background样式属性,可以设置网页背景单一颜色、网页背景为图片、网页背景图片居中于网页、网页背景图片网页固定位置、网页背景图片中网页中重复平铺等css背景样式介绍与案例讲解。扩展阅读:CSS背景Background基础:http://www.d…

借助混沌工程工具 ChaosBlade 构建高可用的分布式系统

在分布式架构环境下,服务间的依赖日益复杂,可能没有人能说清单个故障对整个系统的影响,构建一个高可用的分布式系统面临着很大挑战。在可控范围或环境下,使用 ChaosBlade 工具,对系统注入各种故障,持续提升…

etcd 在超大规模数据场景下的性能优化

概述 etcd是一个开源的分布式的kv存储系统, 最近刚被cncf列为沙箱孵化项目。etcd的应用场景很广,很多地方都用到了它,例如kubernetes就用它作为集群内部存储元信息的账本。本篇文章首先介绍我们优化的背景,为什么我们要进行优化, 之后介绍et…

时间复杂度的表示、分析、计算方法……一文带你看懂时间复杂度!

作者 | OverRedMaple责编 | Carol来源 | CSDN 博客封图 | CSDN付费下载于东方 IC如果你还在发愁究竟怎么计算时间复杂度和空间复杂度,那你是来对地方了!名词解释:在计算机科学中,时间复杂性,又称时间复杂度&#xff0c…

ThreadPoolExecutor中的keepAliveTime详解

文章目录一、keepAliveTime的概念二、keepAliveTime的设置方法2.1. 通过构造函数设置2.2. 通过setKeepAliveTime方法动态设置三、线程是如何根据keepAliveTime进行销毁的阅读这篇文章,你将会知道: keepAliveTime的概念。 keepAliveTime是如何设置的。 线…

OPPO数据中台之基石:基于Flink SQL构建实数据仓库

本文整理自 2019 年 4 月 13 日在深圳举行的 Flink Meetup 会议,分享嘉宾张俊,目前担任 OPPO 大数据平台研发负责人,也是 Apache Flink contributor。本文主要内容如下: OPPO 实时数仓的演进思路;基于 Flink SQL 的扩…

如何实现7*24小时灵活发布?阿里技术团队这么做

研发效能分为两块,一是用技术的更新来提升效率;二是提高整个技术生态中的协同效率,激发技术活力。阿里巴巴技术团队在此基础上要实现的终极目标是打造7*24小时灵活发布的通道,以及提供更快的业务代码迭代能力。今天,阿…

不看就亏系列!这里有完整的 Hadoop 集群搭建教程,和最易懂的 Hadoop 概念!| 附代码...

作者 | chen_01_c责编 | Carol来源 | CSDN 博客封图 | CSDN付费下载于视觉中国hadoop介绍Hadoop 是 Lucene 创始人 Doug Cutting,根据 Google 的相关内容山寨出来的分布式文件系统和对海量数据进行分析计算的基础框架系统,其中包含 MapReduce 程序&#…

数据科学家是个性感的工作?我信你个鬼!

数据科学家40%是个吸尘器,40%是个清洁工,剩下20%是个算命的。作者 | Jingles译者 | 香槟超新星,责编 | 夕颜出品 | CSDN(ID:CSDNnews)根据《哈佛商业评论》的说法,数据科学家是21世纪最性感的工作。在现在这…

深入搜索引擎原理

之前几段工作经历都与搜索有关,现在也有业务在用搜索,对搜索引擎做一个原理性的分享,包括搜索的一系列核心数据结构和算法,尽量覆盖搜索引擎的核心原理,但不涉及数据挖掘、NLP等。文章有点长,多多指点~~ 一…

印度版的“大众点评”如何将 Food Feed 业务从 Redis 迁移到 Cassandra

Zomato 是一家食品订购、外卖及餐馆发现平台,被称为印度版的“大众点评”。目前,该公司的业务覆盖全球24个国家(主要是印度,东南亚和中东市场)。本文将介绍该公司的 Food Feed 业务是如何从 Redis 迁移到 Cassandra 的…

利用Packer自定义镜像创建容器集群

阿里云容器服务Kubernetes集群支持CentOS操作系统,在绝大多数情况下可以满足客户的要求。但是有些客户由于业务系统对操作系统依赖比较高,希望定制化一些操作系统参数,则可以用自定义镜像来创建Kubernetes集群。 创建自定义操作系统镜像有两…

“远程”、“协作”风靡之际,你对TA知晓多少?

作者|晶少 转载|CSDN博客 2.4亿人在线使用文档协作无延宕…… 6万名武汉中小学生实力打造“远程课堂”活学高效…… 疫情以来,“远程”、“协作”持续大热,此局毋庸置疑。 根据QuestMobile最新发布的《2020中国移动互联网“战役”专题报告》显示&am…

蚂蚁金服OceanBase性价比是传统数据库的十倍

200名数据库领域从业三年以上的会员投票和专业的评委评选,在如此严苛的条件之下,蚂蚁金服金融级分布式关系数据库OceanBase 2.0依然获得了专家评审团的一致青睐,荣获2019中国数据库技术大会的“年度最佳创新产品”奖。 蚂蚁金服资深总监韩鸿源…

战疫内外,京东智联云如此“一鸣惊人”!

作者|晶少 转载|CSDN博客 鼠年春节,一场疫情突如其来地打破了人们平静的生活;但在滨州,一款名为“疫情助手”的上线软件却为滨州市民的疫情生活带来“雪中送炭”的丝丝温情,细微知著中人们深深感受到了京东诠释而来的“ABCDE”技…

亿级消息系统的核心存储:Tablestore发布Timeline 2.0模型

背景 互联网快速发展的今天,社交类应用、消息类功能大行其道,占据了大量网络流量。大至钉钉、微信、微博、知乎,小至各类App的推送通知,消息类功能几乎成为所有应用的标配。根据场景特点,我们可以将消息类场景归纳成三…

SLS机器学习最佳实战:日志聚类+异常告警

0.文章系列链接 SLS机器学习介绍(01):时序统计建模SLS机器学习介绍(02):时序聚类建模SLS机器学习介绍(03):时序异常检测建模SLS机器学习介绍(04)…

大数据成长之路:谈谈那些必须学习的Linux基础知识

作者| Roy瑞士责编| Carol封图| CSDN│下载于视觉中国这里主要介绍学习大数据过程中用到的Linux基础知识,现在主攻的方向是大数据开发,欢迎大家共同交流。环境推荐安装VMware虚拟机并安装CentOS操作系统,具体资源的下载和安装可以查到&#x…

数据可用不可见!揭秘蚂蚁区块链摩斯安全计算平台

“数据安全”与“隐私泄漏”制约数字经济长期发展 在新的商业智能时代,已形成广泛的共识:数据是最基础的生产资料,各个行业与企业对于数据的利用也步入成熟期。可见的未来,数据利用的深度和广度将进一步升级,进入跨机…

如何与亦敌亦友的 null 说拜拜?大神原来是这么做的!

作者| 沉默王二责编| Carol封图| CSDN│下载于视觉中国从 10 年前我开始写第一行 Java 代码至今,一直觉得 null 在 Java 中是一个最特殊的存在,它既是好朋友,可以把不需要的变量置为 null 从而释放内存,提高性能;它又是…