从Oracle、SQLServer、Mysql等异构数据库高速抽取数据到GP(greenPlum)

时间:2020-09-09 15:30:00 来源:互联网 作者: 神秘的大神 字体:

greenplum数据连接配置,注意连接类型要选择PostgreSQL

<img width="622" height="468" title="clipboard" style="display: inline; background-image: none" alt="clipboard" src="https://img2020.cnblogs.com/blog/1492996/202009/1492996-20200909153007147-1951229077.png" border="0" class="img-responsive">

新建数据连接,源选择异构的示例数据库SampleSource(H2数据库)

<img width="632" height="260" title="clipboard" style="display: inline; background-image: none" alt="clipboard" src="https://img2020.cnblogs.com/blog/1492996/202009/1492996-20200909153007839-1232859534.png" border="0" class="img-responsive">

目标页签选择GP的数据连接和表

目标表更新方式:新增并更新数据到目标表

关键字段:不为空即可

插入前执行语句:系统会自动生成Merge语句,将merge语句替换成Copy语句

COPY 表名 FROM STDIN DELIMITER '|' NULL 'None'

(DELIMITER 表示列分隔符;NULL 'None'的意思是值为null的数据会被填充为“None”)

具体可以参考postgresql(greenplum)的COPY ... FROM STDIN 的语法。

<img width="634" height="422" title="clipboard" style="display: inline; background-image: none" alt="clipboard" src="https://img2020.cnblogs.com/blog/1492996/202009/1492996-20200909153008530-168103406.png" border="0" class="img-responsive">

注意:老的pg版本语法上略有不同,需根据当前版本的语句来写COPY语句。


执行任务,10万行数据导入。实测4G数据导入GP用时100秒左右。

<img width="631" height="516" title="clipboard" style="display: inline; background-image: none" alt="clipboard" src="https://img2020.cnblogs.com/blog/1492996/202009/1492996-20200909153009430-348285535.png" border="0" class="img-responsive">