摘要: 文章介紹了使用Kettle將數據導入到AnalyticDB for PostgreSQL,包括使用表輸出方式(INSERT)和批量加載方式(COPY)導入到AnalyticDB for PostgreSQL的詳細步驟和操做流程。
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中。
1.在Kettle中新建一個轉換。
2.在轉換中新建一個文本文件輸入做爲輸出源。
3.雙擊文本文件輸入的圖表,選擇輸入的文本文件。
4.在「內容」選項卡中配置輸入文件的分隔符。
5.在「字段」選項卡定義輸入文件表中的字段。
6.在轉換中新建一個Greenplum數據庫鏈接做爲輸入源,詳細的參數配置以下表所示。
7.完成上述參數配置後,單擊測試測試連通性,測試經過後單擊確認。
8.在Kettle左側核心對象的批量加載中,找到PostgreSQL批量加載,並將其拖動入到工做區。
9.新建一條文件輸入到PostgreSQL批量記載的鏈接線。
10.雙擊工做區的PostgreSQL批量加載圖表,在批量加載對話框中進行參數配置:
11.單擊白色三角箭頭運行轉換,觀察運行日誌和運行狀態
待數據成功導入AnalyticDB for PostgreSQL後,您就可使用AnalyticDB for PostgreSQL進行數據分析。
本文爲雲棲社區原創內容,未經容許不得轉載。