在系统日常生产过程中。怎样从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. bzoj 3672 利用点分治将CDQ分治推广到树型结构上

    最大的收获就是题目所说. deal(s) : 处理节点s所在块的问题,并保证: 1.s是该块中最靠近根节点的点,没有之一. 2.s所在块到根节点的路径上的点全都用来更新过了s所在块的所有节点. 然后步 ...

  2. Codeforces Round #356 (Div. 2) E. Bear and Square Grid 滑块

    E. Bear and Square Grid 题目连接: http://www.codeforces.com/contest/680/problem/E Description You have a ...

  3. BTSync 2.0 Vs. 1.4 Folders

    Sync 2.0 supports boths new 2.0 folders and classic 1.4 folders, s o when you upgrade your Sync it w ...

  4. THE CUSTOMISER

    http://www.wanga.com/cu.php The Customiser incorporates all of the features of Magic Mouse. It also ...

  5. Eclipse upper case/lower case

    How do I make a lower case string in Eclipse to be upper case?Using Eclipse, I want to select a stri ...

  6. Codeforces Round #309 (Div. 2) C. Kyoya and Colored Balls

    Kyoya Ootori has a bag with n colored balls that are colored with k different colors. The colors are ...

  7. jQuery碎语(1) 基础、选择要操作的元素、处理DOM元素

    1.基础 jquery对象集: $():jquery对象集合 获取jquery对象集中的元素: 使用索引获取包装器中的javascript元素:var temp = $('img[alt]')[0] ...

  8. linux shell if语句使用方法

    原文地址:http://blog.chinaunix.net/uid-24607609-id-2118151.html 最精简的 if 命令的语法是: if TEST-COMMANDS; then C ...

  9. 转 如何在IOS设备中去掉屏幕上的status bar

    引入如何在IOS设备中去掉屏幕上的status bar,即:不显示设备上方的[网络.时间.电池??]条?操作方法一:在-info.list项目文件中,加上“Status bar is initiall ...

  10. TR069协议小结

        也称为CWMP,是在Internet网上通过wan口控制通信终端设备的协议.其协议流程如下图所示: 具体网上有很多资料.其主要的两个内容是:HTTP Client模型.DATA模型.      ...