Kafka Connect JDBC-Source 源連接器配置屬性
要使用此連接器,請在connector.class
配置屬性中指定連接器類的名稱。
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
連接器特定的配置屬性如下所述。
數據庫連接安全
在連接器配置中,您會注意到沒有安全參數。這是因爲SSL不屬於JDBC標準,而是取決於所使用的JDBC驅動程序。通常,您需要通過connection.url
參數配置SSL 。例如,對於MySQL,它看起來像:
connection.url="jdbc:mysql://127.0.0.1:3306/sample?verifyServerCertificate=false&useSSL=true&requireSSL=true"
請與您的特定JDBC驅動程序文檔聯繫以獲取有關支持和配置的信息。
數據庫
-
connection.url
JDBC連接URL。
例如:
jdbc:oracle:thin:@localhost:1521:orclpdb1
,jdbc:mysql://localhost/db_name
,jdbc:sqlserver://localhost;instance=SQLEXPRESS;databaseName=db_name
- 類型:字符串
- 重要性:高
- 依賴者:
table.whitelist
,table.blacklist
-
connection.user
JDBC連接用戶。
- 類型:字符串
- 默認值:空
- 重要性:高
-
connection.password
JDBC連接密碼。
- 類型:密碼
- 默認值:空
- 重要性:高
-
connection.attempts
檢索有效JDBC連接的最大嘗試次數。
- 類型:int
- 默認值:3
- 重要性:低
-
connection.backoff.ms
兩次連接嘗試之間的退避時間(以毫秒爲單位)。
- 類型:長
- 默認值:10000
- 重要性:低
-
catalog.pattern
目錄模式以從數據庫中獲取表元數據。
- 類型:字符串
- 默認值:空
- “”檢索那些沒有目錄的表
- null(默認值)指示不使用架構名稱來縮小搜索範圍,並且獲取所有表元數據,而不管目錄如何。
- 重要性:中等
-
table.whitelist
要包括在複製中的表的列表。如果指定,則
table.blacklist
可能未設置。使用逗號分隔的列表來指定多個表(例如,)。table.whitelist: "User, Address, Email"
- 類型:列表
- 默認值:“”
- 重要性:中等
-
table.blacklist
要排除在外的表列表。如果指定,則
table.whitelist
可能未設置。使用逗號分隔的列表來指定多個表(例如,)。table.blacklist: "User, Address, Email"
- 類型:列表
- 默認值:“”
- 重要性:中等
-
schema.pattern
從數據庫中獲取表元數據的模式模式。
- 類型:字符串
- 默認值:空
""
檢索那些沒有模式的。- null(默認值)指示不使用架構名稱來縮小搜索範圍,並且所有表元數據均被獲取,而與架構無關。
- 重要性:高
重要
如果將其保留爲默認的null設置,則連接器可能會超時並失敗,原因是接收到大量的表元數據。確保爲大型數據庫設置此參數。
-
numeric.precision.mapping
是否嘗試按精度將NUMERIC值映射到整數類型。現在不推薦使用此選項。將來的版本可能會完全刪除它。請改用
numeric.mapping
。- 類型:布爾值
- 默認值:false
- 重要性:低
-
numeric.mapping
通過精度映射NUMERIC值,還可以選擇縮放爲整數或十進制類型。
- 類型:字符串
- 默認值:空
- 有效值:[none,precision_only,best_fit]
none
如果所有NUMERIC列都將由Connect的DECIMAL邏輯類型表示,請使用。- 使用
best_fit
如果數值列應基於列的精度和規模轉換爲連接的INT8,INT16,INT32,INT64或FLOAT64。 - 使用
precision_only
映射僅基於列的精度假設列的比例爲0數字列。 none
選項是默認選項,但由於Connect的DECIMAL類型映射到其二進制表示形式,因此可能會導致Avro的序列化問題,並且best_fit
由於會映射到最合適的原始類型,因此通常會被首選。
- 重要性:低
-
dialect.name
該連接器應使用的數據庫方言的名稱。默認情況下爲空,並且連接器根據JDBC連接URL自動確定方言。如果要覆蓋該行爲並使用特定的方言,請使用此選項。可以使用JDBC連接器插件中所有正確包裝的方言。
- 類型:字符串
- 默認值:“”
- 有效值:[
Db2DatabaseDialect, MySqlDatabaseDialect, SybaseDatabaseDialect, GenericDatabaseDialect, OracleDatabaseDialect
,SqlServerDatabaseDialect, PostgreSqlDatabaseDialect, SqliteDatabaseDialect, DerbyDatabaseDialect
, SapHanaDatabaseDialect, MockDatabaseDialect, VerticaDatabaseDialect
] - 重要性:低
模式
-
mode
每次輪詢表時更新表的方式。選項包括:
- 類型:字符串
- 默認值:“”
- 有效值:[,批量(bulk),時間戳(timestamp),遞增(incrementing),時間戳+遞增(timestamp+incrementing)]
- 批量(bulk):每次輪詢時對整個表進行批量加載
- 遞增(incrementing):在每個表上使用嚴格遞增的列以僅檢測新行。請注意,這不會檢測到對現有行的修改或刪除。
- 時間戳(timestamp):使用時間戳(或類似時間戳的列)來檢測新行和修改過的行。假設每次寫入都會更新該列,並且值是單調遞增的,但不一定唯一。
- timestamp + incrementing:使用兩列,用於檢測新行和已修改行的timestamp列,以及用於更新的全局唯一ID的嚴格增量列,因此可以爲每一行分配唯一的流偏移量。
- 重要性:高
-
incrementing.column.name
嚴格遞增的列的名稱,用於檢測新行。任何空值表示應通過查找自動遞增的列來自動檢測該列。該列可能不能爲空。
- 類型:字符串
- 默認值:“”
- 重要性:中等
-
timestamp.column.name
用一個或多個時間戳列的逗號分隔列表,以使用COALESCE SQL函數檢測新行或修改過的行。每次輪詢都會發現第一個非空時間戳值大於看到的最大先前時間戳值的行。至少一列不應爲空。
- 類型:列表
- 默認值:“”
- 重要性:中等
-
validate.non.null
默認情況下,JDBC連接器將驗證所有增量表和時間戳表是否將NOT NULL設置爲用作其ID /時間戳的列。如果表沒有將其設置爲非空列,則JDBC連接器將無法啓動。將此設置爲false將禁用這些檢查。
- 類型:布爾值
- 默認值:true
- 重要性:低
-
query
如果指定,則執行查詢以選擇新的或更新的行。如果要聯接表,選擇表中列的子集或過濾數據,請使用此設置。如果使用此連接器,則將僅使用此查詢複製數據–整個表複製將被禁用。仍然可以使用不同的查詢模式進行增量更新,但是爲了正確地構造增量查詢,必須有可能在此查詢後附加WHERE子句(即,不得使用WHERE子句)。如果使用WHERE子句,則它本身必須處理增量查詢。
- 類型:字符串
- 默認值:“”
- 重要性:中等
-
quote.sql.identifiers
何時在SQL語句中引用表名,列名和其他標識符。爲了向後兼容,默認值爲
always
。- 類型:字符串
- 默認值:始終
- 重要性:中等
連接器(Connector)
-
table.types
默認情況下,JDBC連接器將僅從源數據庫中檢測類型爲TABLE的表。此配置允許提取命令分隔的表類型列表。
-
類型:列表。
- TABLE
- VIEW
- SYSTEM TABLE
- GLOBAL TEMPORARY
- LOCAL TEMPORARY
- ALIAS
- SYNONYM
在大多數情況下,只有TABLE或VIEW纔有意義。
-
默認值:TABLE
-
重要性:低
-
-
poll.interval.ms
以毫秒爲單位的頻率,用於輪詢每個表中的新數據。
- 類型:int
- 默認值:5000
- 重要性:高
-
batch.max.rows
輪詢新數據時,單個批處理中包含的最大行數。此設置可用於限制連接器內部緩衝的數據量。
- 類型:int
- 默認值:100
- 重要性:低
-
table.poll.interval.ms
輪詢新表或已刪除表的頻率(以毫秒爲單位),這可能導致更新的任務配置開始對添加表中的數據進行輪詢或停止對已刪除表中的數據進行輪詢。
- 類型:long
- 默認值:60000
- 重要性:低
-
topic.prefix
在表名之前添加前綴,以生成要向其發佈數據的Apache Kafka®主題的名稱,或者在自定義查詢的情況下,生成要向其發佈主題的全名。
- 類型:字符串
- 重要性:高
-
timestamp.delay.interval.ms
在將其包含在結果中之前,出現具有特定時間戳記的行之後需要等待多長時間。您可以選擇添加一些延遲,以允許時間戳較早的事務完成。第一次執行將獲取所有可用記錄(即從時間戳0開始),直到當前時間減去延遲爲止。接下來的每一次執行都會從上一次獲取數據到當前時間減去延遲。
- 類型:long
- 默認值:0
- 重要性:高
-
db.timezone
使用基於時間的條件進行查詢時,連接器中使用的JDBC時區的名稱。默認爲UTC。
- 類型:字符串
- 默認值:“ UTC”
- 有效值:任何有效的JDK時區
- 重要性:中等
原文
https://docs.confluent.io/5.4.0/connect/kafka-connect-jdbc/source-connector/source_config_options.html