使用kettle導入數據到ADB for PostgreSQL

Kettle簡介

Kettle(現也稱爲Pentaho Data Integration,簡稱PDI)是一款很是受歡迎的開源ETL工具軟件,主要用於數據整合、轉換和遷移。Kettle除了支持各類關係型數據庫,HBase MongoDB這樣的NoSQL數據源外,它還支持Excel、Access這類小型的數據源。而且經過這些插件擴展,kettle能夠支持各種數據源。數據庫

下圖顯示了Kettle和ADB for PostgreSQL之間的關係,數據源經過Kettle進行ETL或數據集成操做之後能夠和ADB for PostgreSQL進行交互:
工具

Kettle支持的數據來源很是豐富,主要包括如下分類:​性能

  • 表輸入
  • 文本文件輸入
  • 生成記錄/自定義常量
  • 獲取系統信息
  • 各種格式文件輸入
  • Json輸入
  • 以及其餘輸入

更詳細的輸入能夠從界面中的「核心對象」的「輸入」分類中查看。測試

Kettle支持的表輸入來源自數據庫鏈接中使用SQL語句獲取,其中數據庫鏈接支持很是豐富的鏈接方式,包括:spa

  • Native(JDBC)鏈接
  • ODBC鏈接
  • OCI鏈接
  • JNDI鏈接

經過這些鏈接方式,能夠支持鏈接大多數主流數據庫,如Oracle, SQL Server, MySQL, DB2, PostgreSQL, Sybase, Teradata等等,更詳細的鏈接信息能夠參考官方文檔:https://help.pentaho.com/Documentation/8.2/Setup/Configuration/Define_Data_Connections插件

Kettle導入到ADB for PostgreSQL

Kettle支持導入到ADB for PostgreSQL的方式

目前,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
  • 在AnalyticDB for PostgreSQL中建立目標數據庫、模式和表。

表輸出方式導入數據到ADB for PostgreSQL

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進行數據分析。

批量加載方式導入數據到ADB 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進行數據分析。


原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索