STREAMSETS自學——JDBC Producer簡述

本文結合我自己的使用經驗和官方文檔的理解所作,若有理解不足與功能解釋不完整請諒解


JDBC Producer (stages: destination)

官方文檔:https://streamsets.com/documentation/datacollector/3.7.2/help/datacollector/UserGuide/Destinations/JDBCProducer.html

組件圖標:

功能:

該組件通過JDBC連接將數據寫入數據庫表,數據流的目標與基於主鍵的行匹配,而不是與記錄中的其他字段匹配。

驅動包:

       mysql:mysql-connector-java-5.1.46.jar

       sql server:sqljdbc4.jar

       Oracle:ojdbc6.jar

配置:

general:

Required Fields:必填字段,是必須存在於記錄中以允許其進入處理階段的字段。當記錄不包含所有必填字段時,將根據爲管道配置的錯誤處理對其進行處理。您可以爲任何處理器,執行程序和大多數目標階段定義必需的字段。

Preconditions:必須評估爲TRUE以允許記錄進入處理階段的條件。單擊"+"以創建其他前提條件。根據爲階段配置的錯誤處理,處理不滿足所有前提條件的記錄。

On Record Error:階段的錯誤記錄處理:

  • Discard - 丟棄記錄。
  • Send to Error - 將記錄發送到管道以進行錯誤處理。
  • Stop Pipeline- 停止管道。

JDBC:

JDBC Connection String: 用於連接數據庫的連接字符串

      Mysql: jdbc:mysql://xxxxxxxxxx:3306/數據庫名

      Oracle: jdbc:oracle:thin:@xxxxxxxxxx:1521:服務名

      SQL server: jdbc:sqlserver://xxxxxxxxxx:1433;databaseName=xxx

Schema Name :要使用的可選數據庫或模式名稱。在數據庫需要完全限定的表名時使用。提示 默認情況下,Oracle會對模式,表和列名稱使用全部大寫。僅當名稱周圍使用引號創建架構,表或列時,名稱可以是低位或大小寫。

Table Name :要使用的數據庫表名稱。使用數據庫所需的表名格式。提示: 默認情況下,Oracle會對模式,表和列名稱使用全部大寫。僅當名稱周圍使用引號創建架構,表或列時,名稱可以是低位或大小寫。

Field to Column Mapping:用於覆蓋默認字段到列映射。默認情況下,字段將寫入同名的列。覆蓋映射時,可以定義參數化值,以便在將字符值寫入列之前將SQL函數應用於字段值。例如,要將字段值轉換爲整數,請爲參數化值輸入以下內容:

CAST(? AS INTEGER)

單擊“ + ”圖標以創建其他字段到列映射。

Enclose Object Names:寫入數據庫時​​,將數據庫或模式名稱,表名稱和列名稱括在引號中。允許使用區分大小寫的名稱或帶有特殊字符的名稱。未啓用時,目標使用的JDBC驅動程序將確定名稱的提交方式。Oracle JDBC驅動程序默認將名稱提交爲全部大寫。此外,Oracle默認使用模式,表和列名稱的全部大寫。僅當名稱周圍使用引號創建架構,表或列時,名稱可以是低位或大小寫。

Change Log Format:變更捕獲數據的格式。處理更改捕獲數據時使用。

Default Operation:如果未設置sdc.operation.type記錄標頭屬性,則執行的默認增刪改操作。

Unsupported Operation Handling :不支持在sdc.operation.type記錄標頭屬性中定義的CRUD操作類型時要採取的操作:

  • Discard - 丟棄記錄。
  • Send to Error - 將記錄發送到管道以進行錯誤處理。
  • Use Default Operation - 使用默認操作將記錄寫入目標系統。

Use Multi-Row Operation:確定階段如何處理記錄。選擇以一次啓用插入和刪除多個記錄。在啓用此選項之前,請驗證數據庫是否支持階段使用的多行SQL語句。默認情況下,該階段執行單行操作。

Max Cache Size Per Batch (Entries):定義多行插入的預準備語句中允許的參數數量。使用-1可禁用參數限制。默認值爲-1。

Rollback Batch On Error:當批次中發生錯誤時,回滾整個批次。

Additional JDBC Configuration Propertie:要使用的其他JDBC配置屬性。要添加屬性,請單擊“ + ”並定義JDBC屬性名稱和值,使用JDBC所期望的屬性名稱和值。

Credentials:

JDBC連接數據庫的用戶名和密碼,即數據庫的登錄密碼.

 Advanced

Maximum Pool Size:要創建的最大連接數,默認值爲1,建議值爲1。

Minimum Idle Connections:要創建和維護的最小連接數。要定義固定連接池,請將其設置爲與“Maximum Pool Size”相同的值,默認值爲1。

Connection Timeout (Seconds):等待連接的最長時間。在表達式中使用時間常量來定義時間增量,默認值爲30秒。

Idle Timeout (Seconds):允許連接空閒的最長時間。在表達式中使用時間常量來定義時間增量,使用0可以避免刪除任何空閒連接,默認值爲10分鐘.

Max Connection Lifetime (Seconds):連接的最長壽命。在表達式中使用時間常量來定義時間增量,使用0設置無最大生命週期,默認值爲30分鐘

Transaction Isolation:用於連接數據庫的事務隔離級別。默認值是爲數據庫設置的默認事務隔離級別。您可以通過將級別設置爲以下任何一項來覆蓋數據庫默認值:

  • 讀取已提交
  • 讀取未提交
  • 可重複閱讀
  • 序列化

Init Query:在該組件第一次連接到數據庫之後立即執行的SQL查詢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章