oracle数据同步到Greenplum的shell脚本

oracle数据同步到Greenplum的shell脚本

此脚本在运行时会先把oracle数据按照指定的分隔符下载到磁盘的目录下,再用替换脚本替换需要的分隔符和ascii字符,具体的替换方法请查看fileAsciiReplaceScriptAll.sh脚本

sqluldr2linux64 工具下载

sqluldr2linux64 下载地址:链接:https://pan.baidu.com/s/1pF_HMx5VUdwu16-cSn2ZBg 提取码:ddrn 
oracle 客户端下载地址:链接:https://pan.baidu.com/s/1Llt1hRJ0BL-NQQT8V90T8Q 提取码:rwjb

ASCII特殊字符介绍

ASCII特殊字符请查看:https://blog.csdn.net/xfg0218/article/details/80901752

测试数据介绍

1、oracle表信息updateinfo_xiaoxu

   ANCHEID	VARCHAR2(100 BYTE)
   ALITEM	VARCHAR2(1000 BYTE)
   ALTBE	VARCHAR2(4000 BYTE)
   ALTAF	VARCHAR2(4000 BYTE)
   ALTDATE	DATE
   S_EXT_NODENUM	VARCHAR2(10 BYTE)

2、oracle 表的个数

  select count(*) from updateinfo_xiaoxu;
   -- 6475930

oracle-to-greenplum 目录介绍

    data-dir
    存放oracle数据落地的目录

    select-sql
    sql文件存放的路径,oracle的sql文件以及greenplum的sql文件

    util
    常用工具的存放路径

    export-oracle.sh
    从oracle落地到磁盘的sh脚本

    import-greenplum.sh
    把磁盘的文件导入到greenplum的脚本

    sqluldr2linux64.bin
    抽取oracle的工具

oracle-to-greenplum 使用说明

 su - oracle
 time sh export-oracle.sh 
       0 rows exported at 2019-05-13 12:42:14, size 0 MB.
 1000000 rows exported at 2019-05-13 12:42:20, size 172 MB.
 2000000 rows exported at 2019-05-13 12:42:26, size 296 MB.
 3000000 rows exported at 2019-05-13 12:42:32, size 468 MB.
 4000000 rows exported at 2019-05-13 12:42:38, size 603 MB.
 5000000 rows exported at 2019-05-13 12:42:44, size 743 MB.
 6000000 rows exported at 2019-05-13 12:42:50, size 887 MB.
 6475930 rows exported at 2019-05-13 12:42:52, size 952 MB.
     output file /home/xiaoxu/oracle-to-greenplum/data-dir/updateinfo_xiaoxu.csv closed at 6475930 rows, size 952 MB.

 替换特殊字符与分隔符......
 
 参数说明
 把此脚本复制到带有特殊字符的文件夹下运行此脚本即可把全部文件进行替换,例如:sh fileAsciiReplaceScriptAll.sh

 转换开始...... 

 文件 /home/xiaoxu/oracle-to-greenplum/data-dir/updateinfo_xiaoxu.csv 特殊符号替换开始....
 文件 /home/xiaoxu/oracle-to-greenplum/data-dir/updateinfo_xiaoxu.csv 特殊符号替换结束,耗时:0 h 1 m 5s

 文件 /home/xiaoxu/oracle-to-greenplum/data-dir/updateinfo_xiaoxu.csv 替换分隔符开始....
 文件 /home/xiaoxu/oracle-to-greenplum/data-dir/updateinfo_xiaoxu.csv 替换分隔符结束,耗时: 0 h 0 m 26 s


 全部文件转换结束,耗时: 0 h 1 m 32 s
 
 创建 updateinfo_xiaoxu.csv 表结构开始...... 
     DROP TABLE
 CREATE TABLE

 real	0m0.200s
 user	0m0.003s
 sys	0m0.004s

 导入 updateinfo_xiaoxu.csv  数据开始......
 COPY 6475930

 real	0m19.699s
 user	0m2.845s
 sys	0m0.834s

 real	2m32.290s
 user	1m30.223s
 sys	0m21.867s

oracle-to-greenplum 总结说明

1、在以上可以看出使用sqluldr2linux64导数据,大概6s就能抽取100W行数据,大概有172M
2、替换分隔符与ASCII码耗时1m32s
3、创建表结构与导入表数据耗时:19.699s
4、总耗时2m32.29s

本文分享自微信公众号 - 小徐的技术之路(xiaoxuBigdata)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏微卡智享

Oracle的临时表的使用

我们的软件设计数据库里的表一般都会挺多的,特别是用户想要到新的报表格式时,相关的查询可能会关联多个数据表,如果全部用select的表进行关联查询除了写语句会非常...

59120
来自专栏微卡智享

c# 调用Oracle带有游标的存储过程

我们在写Oracle存储过程时经常会需要返回数据,像这种方式一般都输出游标的方式。我们今天就来做个用C#程序调用Oracle带有游标输出的存储过程并展示出数据。

13110
来自专栏微卡智享

Oracle分页查询方法

前面我们介绍Oracle的并行查询,本来是想用并行查询来解决获取所有数据的方法,结果自己测试后发现并没有达到自己想要的效果,所以还是要准备利用分页进行查询了。

22440
来自专栏微卡智享

Oracle Package的使用

我们在Oracle的数据库里面在逻辑处理的时候可能会写大量的存储过程,由于数据多了以后,找起来比较麻烦,用package不仅能把存储过程分门别类,而且在pack...

9420
来自专栏微卡智享

Oracle中根据中文获取拼音首字母

在软件中方便用户查找信息时,都会用到输拼音首字母的简写快速过滤,所以一般我们在Oracle的表中会加上一列助记符列,今天我们就看看将中文怎么转换为拼音首字母。

33950
来自专栏微卡智享

Oracle的静态游标与动态游标

我们在写Oracle的存储过程里面,经常会用到游标,Oracle里面的游标分为静态游标和动态游标。今天我们在说一下分别有什么不同。

34930
来自专栏卯金刀GG

【IIS7.5服务器问题】未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项.试图加载格式不正确的程序

NET:Microsoft Visual Studio 2010 + .NET Framework 3.5

52030
来自专栏微卡智享

Oracle中merge into语句的使用方法

上一章我们介绍了Oracle的临时表的使用方法《Oracle的临时表的使用》,就像我前面说的,多表关联查询的时候会用到临时表插入数据,然后再用select查行查...

17510
来自专栏微卡智享

【干货】Oracel存储过程写报表实战

前面我们学习了《Oracle的静态游标与动态游标》游标的使用方法,这篇我们就来看看怎么用存储过程写出客户想要实现的报表。

7530
来自专栏python-爬虫

数据库的基础概念

​ 本质就是一套基于CS结构的 客户端和服务器程序,最终的数据存储在服务器端的磁盘中

9320

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励