Kettle(現也稱爲Pentaho Data Integration,簡稱PDI)是一款很是受歡迎的開源ETL工具軟件,主要用於數據整合、轉換和遷移。Kettle除了支持各類關係型數據庫,HBase MongoDB這樣的NoSQL數據源外,它還支持Excel、Access這類小型的數據源。而且經過這些插件擴展,kettle能夠支持各種數據源。數據庫
下圖顯示了Kettle和ADB for PostgreSQL之間的關係,數據源經過Kettle進行ETL或數據集成操做之後能夠和ADB for PostgreSQL進行交互:
工具
Kettle支持的數據來源很是豐富,主要包括如下分類:性能
更詳細的輸入能夠從界面中的「核心對象」的「輸入」分類中查看。測試
Kettle支持的表輸入來源自數據庫鏈接中使用SQL語句獲取,其中數據庫鏈接支持很是豐富的鏈接方式,包括:spa
經過這些鏈接方式,能夠支持鏈接大多數主流數據庫,如Oracle, SQL Server, MySQL, DB2, PostgreSQL, Sybase, Teradata等等,更詳細的鏈接信息能夠參考官方文檔:https://help.pentaho.com/Documentation/8.2/Setup/Configuration/Define_Data_Connections插件
目前,Kettle支持的數據導入到ADB for PostgreSQL的方式有:3d
導入方式 | 說明 |
---|---|
表輸出 (INSERT方式) |
採用JDBC做爲導入方式 支持批量插入,批量插入使用JDBC的batch insert方法 |
批量加載 (COPY方式) |
採用COPY做爲導入方式 對於大表,COPY方式性能達到批量插入性能的10倍左右 |
表輸出(INSERT方式)導入會流過Master節點並作解析以後分佈到對應的Segment節點上,這種方式相對較慢而且不適合導入大量數據。批量加載(COPY方式)導入方式比INSERT語句插入多行的效率更高。日誌
如下將分別介紹如何經過這兩種方式將外部數據遷移到AnalyticDB for PostgresSQL。對象
使用Kettle將外部數據導入AnalyticDB for PostgresSQL以前,須要完成如下準備工做。blog
Kettle採用表輸出方式,支持使用通用的JDBC接口,從各類數據庫源導入到ADB for PostgreSQL中。如下就以MySQL爲例說明如何經過JDBC接口導入數據到ADB for PostgreSQL中。
1.在Kettle中新建一個轉換。
2.在轉換中新建一個MySQL數據庫鏈接做爲輸出源,詳細的參數配置以下表所示。
配置參數時,不要勾選Use Result Streaming Cursor。
配置項 | 說明 |
---|---|
鏈接名稱 | 數據連名 |
鏈接類型 | 選擇MySQL |
鏈接方式 | 選擇Native(JDBC) |
主機名 | MySQL的鏈接地址 |
數據庫名稱 | MySQL的數據庫名 |
端口號 | 鏈接地址對應的端口號 |
用戶名 | 用戶名 |
密碼 | 用戶密碼 |
3.完成上述參數配置後,單擊測試測試連通性,測試經過後單擊確認。
4.在轉換中新建一個Greenplum數據庫鏈接做爲輸入源,詳細的參數配置以下表所示。
配置項 | 說明 |
---|---|
鏈接名稱 | 數據連名 |
鏈接類型 | 選擇Greenplum |
鏈接方式 | 選擇Native(JDBC) |
主機名 | AnalyticDB for PostgreSQL的鏈接地址 |
數據庫名稱 | AnalyticDB for PostgresSQL的數據庫名 |
端口號 | 鏈接地址對應的端口號 |
用戶名 | 用戶名 |
密碼 | 用戶密碼 |
5.完成上述參數配置後,單擊測試測試連通性,測試經過後單擊確認。
6.在kettle左側核心對象的輸入中,找到表輸入,並將其拖動入到工做區。
7.雙擊工做區的表輸入,在表輸入對話框中進行參數配置。
8.在Kettle左側核心對象的輸出中,找到表輸出,並將其拖動入到工做區。
9.雙擊工做區的表輸出,在表輸出對話框中進行參數配置。
10.新建一條表輸入到表輸出的鏈接線。
11.單擊白色三角箭頭運行轉換,觀察運行日誌和運行狀態。
待MySQL數據成功導入AnalyticDB for PostgreSQL後,您就可使用AnalyticDB for PostgreSQL進行數據分析。
Kettle支持使用批量加載方式(COPY方式)導入數據到ADB for PostgreSQL中。下面步驟舉例說明經過從外部文件中批量加載數據到ADB for PostgreSQL中。
原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。