मुझे अपने काफ्का निर्माता के साथ त्रुटि है। मैं डेबेज़ियम काफ्का कनेक्टर्स वी१.१.० फाइनल और काफ्का २.४.१ का उपयोग करता हूं। पीके के साथ टेबल के लिए, सभी टेबल स्पष्ट रूप से फ़्लश किए जाते हैं, लेकिन दुर्भाग्य से टेबल के लिए कोई पीके नहीं है, यह मुझे यह त्रुटि देता है:

[2020-04-14 10:00:00,096] INFO   Exporting data from table 'public.table_0' (io.debezium.relational.RelationalSnapshotChangeEventSource:280)
[2020-04-14 10:00:00,097] INFO   For table 'public.table_0' using select statement: 'SELECT * FROM "public"."table_0"' (io.debezium.relational.RelationalSnapshotChangeEventSource:287)
[2020-04-14 10:00:00,519] INFO   Finished exporting 296 records for table 'public.table_0'; total duration '00:00:00.421' (io.debezium.relational.RelationalSnapshotChangeEventSource:330)
[2020-04-14 10:00:00,522] INFO Snapshot - Final stage (io.debezium.pipeline.source.AbstractSnapshotChangeEventSource:79)
[2020-04-14 10:00:00,523] INFO Snapshot ended with SnapshotResult [status=COMPLETED, offset=PostgresOffsetContext [sourceInfo=source_info[server='postgres'db='xxx, lsn=38/C74913C0, txId=4511542, timestamp=2020-04-14T02:00:00.517Z, snapshot=FALSE, schema=public, table=table_0], partition={server=postgres}, lastSnapshotRecord=true]] (io.debezium.pipeline.ChangeEventSourceCoordinator:90)
[2020-04-14 10:00:00,524] INFO Connected metrics set to 'true' (io.debezium.pipeline.metrics.StreamingChangeEventSourceMetrics:59)
[2020-04-14 10:00:00,526] INFO Starting streaming (io.debezium.pipeline.ChangeEventSourceCoordinator:100)
[2020-04-14 10:00:00,550] ERROR WorkerSourceTask{id=pg_dev_pinjammodal-0} failed to send record to table_0: (org.apache.kafka.connect.runtime.WorkerSourceTask:347)
org.apache.kafka.common.InvalidRecordException: This record has failed the validation on broker and hence be rejected.

मैंने टेबल की जांच की है और यह वैध रिकॉर्ड प्रतीत होता है। मैंने अपने निर्माता producer.ack=1 को अपने config. क्या यह कॉन्फ़िगरेशन यहां अमान्यता को ट्रिगर करता है?

4
Yosafat Vincent Saragih 14 अप्रैल 2020, 05:11

1 उत्तर

सबसे बढ़िया उत्तर

समस्या थी गैर-पीके तालिकाओं के लिए लॉग संघनन के साथ काफ्का विषय बनाना, जिसके लिए कुंजियों की आवश्यकता होती है। संदेशों में कुंजियाँ नहीं होतीं, क्योंकि तालिकाओं में PK नहीं होते हैं। इसके परिणामस्वरूप दलाल काफ्का संदेशों को मान्य करने में सक्षम नहीं होते हैं।

समाधान विषयों के लिए लॉग संघनन सेट नहीं करना है और/या उन विषयों को पूर्व-निर्माण नहीं करना है। एक अन्य विकल्प पीके को टेबल में जोड़ना होगा।

12
iniyanc 14 जिंदा 2021, 14:22