SymmetricDS 太麻煩,而且是每張表都要配置觸發器,性能影響太大了。
其他類型數據庫到GP:
轉自:https://blog.csdn.net/inrgihc/article/details/103739629
一、背景
開源MPP數據庫Greenplum是一種基於PostgreSQL的分布式數據庫,其采用shared-nothing架構,其架構專門用於管理大規模分析數據倉庫,Greenplum主要定位在OLAP領域,利用Greenplum MPP數據庫做大數據計算或分析平台非常適合,典型的就是數據倉庫系統。
雖然Greenplum支持JDBC 、libpg、copy、gpfdist等多種方式加載數據。但是通常的業務系統中的數據存儲往往是MySQL、Oracle、SQLServer、PostegreSQL等數據庫。要想把這些數據庫中的數據導入至Greenplum數據庫中,需要借助一定的(離線同步)工具,典型的工具包括:
(1)利用kettle+gpload工具
優點:工具開源且現成,導入速度快,kettle支持表結構同步和表數據同步;
缺點:gpload配置過於復雜,kettle功能多,學習成本高,每張表都需要單獨配置,不適用於大批量表的操作;
(2)使用Greenplum工具gpfdist或外部表方式
優點:導入速度快
缺點:需要先將MySQL、Oracle、SQLServer、PostegreSQL等數據庫內的數據導出為文本文件,同樣不適用於大批量表的操作;
(3)datax工具
優點:工具現成,支持插件擴展;
缺點:不支持表結構同步,需要人工參與目的端表的創建;
地址:https://github.com/alibaba/DataX
(4)dbsync 工具
優點:支持表結構與數據的同步;
缺點:同步千萬級數據量時會OOM、對於含有大小寫的表名或字段名進行DDL轉換存在問題、只支持MySQL/PostgreSQL到Greenplum/PostgreSQL的表結構與數據同步同步等等,其他問題請參考issue:https://github.com/aliyun/rds_dbsync/issues
地址:https://github.com/aliyun/rds_dbsync
二、dbswitch工具
結合kettle的表結構同步功能及網上高僧基於copy方式改良的datax,dbswitch提供常見的oracle/SqlServer/mysql/PostgreSQL向Greenplum數據庫的表結構及數據同步功能。功能點如下:
表(視圖)結構向GP轉換及在GP中自動建表;
表數據抽取至GP數據庫中;
支持同一schema下的多張表同步;
提供RESTfull的表結構轉換服務接口;
項目地址:https://gitee.com/inrgihc/dbswitch
工具缺點:
不支持二進制字段數據的數據抽取同步;
當前為單線程處理,並發同步有待提高;
對於GP建表時未考慮分布式鍵問題
另外一個:
https://www.cnblogs.com/lolo-garden/p/12061055.html
需求:
異構數據庫oracle到PG同步,后續可能到hadoop等大數據平台。
工具以及對比:
工具 |
支持異構 |
數據方向 |
開源 |
GUI |
kettle |
√ |
多種(大數據和RDBMS)->多種 |
√ |
√ |
DataX |
√ |
多種->多種 |
√ |
× |
Sqoop |
√ |
大數據->RDBMS, RDBMS->大數據 |
√ |
× |
Streamsets |
√ |
多種->多種 |
√ |
√ |
Informatica |
√ |
多種->多種 |
× |
√ |
Talend |
√ |
多種->多種 |
√ |
√ |
DataPipeline |
√ |
多種->多種 |
× |
√ |
datastage |
√ |
多種->多種 |
× |
√ |
ODI |
√ |
多種->多種 |
× |
√ |
Apatar |
√ |
多種->多種 |
√ |
√ |
DataX:
1.使用在hadoop時,如果文件過大,作為源端數據導入目標數據庫時會有數據缺失;
2.datax往gp中寫數最好使用gp的writer方式,否則會很慢。
Kettle:
性能較DataX等較差。
Datastage和Informatica商業,功能完備,市場占有率高。
ODI:oracle耦合度高。
Sqoop和Streamsets更適用於大數據相關的數據源。
Talend:開源版沒有調度程序,且后續的維護運維成本高,建議商業版。按照用戶數收費,開發用戶多不合算。
結論:
開源采用DataX,或者(大數據場景時)Sqoop和Streamsets,
商用Talend,Datastage,Informatica。
再來一個總結的:
https://www.cnblogs.com/laoqing/p/11359224.html