在系统日常生产过程中。怎样从Oracle数据库同步一些配置表到GP库个问题。

先来说说之前使用的方式:

0. 使用第3方工具从Oracle导出纯文本格式,存放在本地;

1. 使用GP外部表载入入库

这样的方式长处是对于须要同步大数据量的表的时候性能很高。缺点是稍显麻烦,最基本的是非实时的,存在着任务调度周期和导出导入时间周期。





对此我的解决的方法是简化整个过程并实时查询:

0. 使用GP WEB外部表技术直接查询Oracle数据表





因为是配置表,数据量一般都很小,几k到几w条的记录採用这样的方式差点儿是瞬间的消耗。

首先是Oracle的源表:

[oracle@gtlions181 ~]$ sqlplus gtlions/gtlions





SQL*Plus: Release 10.2.0.5.0 - Production on Thu May 8 15:41:06 2014





Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.









Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options





SQL> select * from test;





        ID NAME

---------- -----

         1 a

         2 b

然后在GP中直接查询Oracle的表:

[gpadmin@gtlions181 ~]$ psql gtlions

psql (8.2.15)

Type "help" for help.





gtlions=# drop external table if exists sqlplus_test;

DROP EXTERNAL TABLE

gtlions=# create external web table sqlplus_test(id int,name varchar(5)) execute 'sqlplus -S gtlions/gtlions@gt10g <<EOF

gtlions'# set echo OFF;

gtlions'# set heading OFF;

gtlions'# set feedback off;

gtlions'# set linesize 32767;

gtlions'# set pagesize 0;

gtlions'# select id||'',''||name from test ;

gtlions'# exit;

gtlions'# EOF' on master  format 'csv' (header);

NOTICE:  HEADER means that each one of the data files has a header row.

CREATE EXTERNAL TABLE

gtlions=# select * from sqlplus_test;

 id | name 

----+------

  1 | a

  2 | b

(2 rows)





so easy,Bingo!

-EOF

Greenplum query Oracle via DLINK的更多相关文章

  1. Some Useful Property Settings Explained Of Oracle Forms

    In Oracle forms when we have two or more blocks and there is a requirement to join them or make a re ...

  2. ORACLE当中自定义函数性优化浅析

    为什么函数影响性能 在SQL语句中,如果不合理的使用函数(Function)就会严重影响性能,其实这里想说的是PL/SQL中的自定义函数,反而对于一些内置函数而言,影响性能的可能性较小.那么为什么SQ ...

  3. 12 Things Developers Will Love About Oracle Database 12c Release 2

    by Chris Saxon-Oracle It's Here: Oracle Database 12c Release 2 (12.2) Is available on Oracle Cloud. ...

  4. Oracle 复制表创建的sql语句

    http://cache.baiducontent.com/c?m=9d78d513d99e01fc09b3c3690d67c0161343f0652ba1d4020ed08449e3732b4250 ...

  5. Oracle Flashback Technology【闪回技术】

    -------------------------与其他数据库相比,Oracle的闪回让开发者多了一条选择的路. Flashback的目的 先看下Oracle官方文档中的解释: Oracle Flas ...

  6. oracle expdp/impdp/可传输表空间

    oracle expdp/impdp/可传输表空间/及一些参数 Oracle data pump 导出操作能够将表.索引.约束.权限.PLSQL包.同义词等对象从数据库导出,并将它们保存在一种非文本格 ...

  7. Greenplum 性能优化之路 --(三)ANALYZE

    一.为什么需要 ANALYZE 首先介绍下 RBO 和 CBO,这是数据库引擎在执行 SQL 语句时的2种不同的优化策略. RBO(Rule-Based Optimizer) 基于规则的优化器,就是优 ...

  8. Spring3 整合Hibernate3.5 动态切换SessionFactory (切换数据库方言)

    一.缘由 上一篇文章Spring3.3 整合 Hibernate3.MyBatis3.2 配置多数据源/动态切换数据源 方法介绍到了怎么样在Sping.MyBatis.Hibernate整合的应用中动 ...

  9. On Caching and Evangelizing SQL

    http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51asktom-453438.html   Our technologist ...

随机推荐

  1. hdu 5316 Magician(2015多校第三场第1题)线段树单点更新+区间合并

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5316 题意:给你n个点,m个操作,每次操作有3个整数t,a,b,t表示操作类型,当t=1时讲a点的值改 ...

  2. hdu 2819 记录路径的二分匹配

    题目大意就是给出一个矩阵,每个格子里面要么是0, 要么是1:是否能够经过交换(交换行或者列)使得主对角线上都是1. 其实就行和列的匹配,左边是行,右边是列,然后如果行列交点是1,那么就可以匹配,看是否 ...

  3. Java Maven:spring boot + Mybatis连接MySQL,通用mapper的增删改查,映射实现多表查询

    1. MySQL自带库test添加表user.role 角色表role 用户表user 2. 添加依赖,配置属性 相关依赖:百度即可,此处略 application.properties spring ...

  4. python 加密方式(MD5&sha&hashlib)

    1.MD5加密 import md5 m = md5.new() #或者m = md5.md5() m.update('123456') m.hexdigest() #或者md5.md5('12345 ...

  5. 通过 ssh 登录到手机 Termux

    通过ssh登录到手机 Termux 测试环境 电脑: macOS Mojave 手机: Huawei Mate10Pro Termux是Android上的一个非常强大的终端模拟器. 强大之处在于支持使 ...

  6. VHDL语言实现的任意整数分频器

    fpga中,一般外接的晶振是50Mhz,如果电路中一个模块需要25mhz时钟,那么进行一个2分频,这个是相当容易的,下面是一种方法,还有可以用一个二进制计数器实现.这里就不写代码了.easy.同样的原 ...

  7. 别忽视UIImage中的方向属性, imageOrientation-转

    转 : 别忽视UIImage中的方向属性, imageOrientation

  8. Appium+python自动化7-输入中文

    前言 在做app自动化过程中会踩很多坑,咱们都是用的中文的app,所以首先要解决中文输入的问题! 本篇通过屏蔽软键盘,绕过手机的软键盘方法,解决中文输入问题. 一.定位搜索 1.打开淘宝点搜索按钮,进 ...

  9. 采用Operator-sdk轻松将helm chart转为Operator

    去年就接触Operator,从Oracle发布的WebLogic Operator到mySQL Operator,构建的源码一大堆,但感觉一直缺少合适的开发框架能够避免复杂性快速生成, 随着技术的日益 ...

  10. Javascript时间以及格式化秒

    var now = new Date(); timer = $.timer(timeout, function () {     var sec_num = Math.ceil((now.getTim ...