[英]how to make confluent sftp connector repeatedly process a csv file
再會,
我正在嘗試點擊 Confluent sftp 連接器的鏈接: https://docs.confluent.io/kafka-connect-sftp/current/source-connector/index.html
下面是我的sftp.json,基本上沒什么區別,只是填了本地信息:
{
"name": "CsvSFTP",
"config": {
"tasks.max": "1",
"connector.class": "io.confluent.connect.sftp.SftpCsvSourceConnector",
"cleanup.policy":"MOVE",
"behavior.on.error":"IGNORE",
"input.path": "/home/meow/Workspace/confluentPlatform/confluent-7.0.1",
"error.path": "/home/meow/Workspace/confluentPlatform/confluent-7.0.1/error",
"finished.path": "/home/meow/Workspace/confluentPlatform/confluent-7.0.1/finished",
"input.file.pattern": "csv-sftp-source.csv",
"sftp.username":"meow",
"sftp.password":"password",
"sftp.host":"localhost",
"sftp.port":"22",
"kafka.topic": "sftp-testing-topic",
"csv.first.row.as.header": "true",
"schema.generation.enabled": "true"
}
}
在此之后,我運行以下命令來運行連接器:
confluent local services connect connector load CsvSFTP --config sftp.json
接下來,我將相同的 csv 文件上傳到輸入文件夾。 是的,我看到文件消失並移動到finished.path
。
我使用以下消費者命令來檢查推送到主題的數據:
[meow@localhost bin]$ ./kafka-avro-console-consumer --bootstrap-server localhost:9092 --property schema.registry.url=http://localhost:8081 --topic sftp-testing-topic2 --from-beginning
{"id":{"string":"1"},"first_name":{"string":"Salmon"},"last_name":{"string":"Baitman"},"email":{"string":"sbaitman0@feedburner.com"},"gender":{"string":"Male"},"ip_address":{"string":"120.181.75.98"},"last_login":{"string":"2015-03-01T06:01:15Z"},"account_balance":{"string":"17462.66"},"country":{"string":"IT"},"favorite_color":{"string":"#f09bc0"}}
{"id":{"string":"2"},"first_name":{"string":"Debby"},"last_name":{"string":"Brea"},"email":{"string":"dbrea1@icio.us"},"gender":{"string":"Female"},"ip_address":{"string":"153.239.187.49"},"last_login":{"string":"2018-10-21T12:27:12Z"},"account_balance":{"string":"14693.49"},"country":{"string":"CZ"},"favorite_color":{"string":"#73893a"}}
到目前為止一切順利,現在一切正常。
在此之后,我使用回 csv 文件,並將名字從“Salmon”編輯為“Salmon2”。 然后我再次上傳csv文件,但此時文件沒有被處理。 當我檢查連接器狀態時,它正在運行,即使我檢查 connect.log,我也只看到它在打印,沒有產生任何記錄:
[2022-03-16 17:14:22,129] INFO [CsvSFTP|task-0|offsets] WorkerSourceTask{id=CsvSFTP2-0} Either no records were produced by the task since the last offset commit, or every record has been filtered out by a transformation or dropped due to transformation or conversion errors. (org.apache.kafka.connect.runtime.WorkerSourceTask:503)
然后,我卸載連接器並再次加載,我看到文件再次消失並移動到finished.path
。 我預計消費者會打印另外 2 行記錄,其中 1 行包含我對名字的更改,即“Salmon2”,但事實並非如此,消費者只是保持不變。
我可以知道我做錯了嗎? 或者這是預期的結果?
這聽起來像是預期的行為。 源連接器(大部分)在偏移量主題中維護 state。 如果它處理了文件,那么它會跟蹤它不應該再做一次,如果連接器曾經重新啟動或以其他方式重新加載。
您需要修改它,或更改連接器的名稱,使其成為“重新開始”的唯一名稱
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.