Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
From Zero to Hero with Kafka Connect
1. From Zero to Hero
with Kafka Connect
A practical guide to becoming l33t with Kafka Connect
a.k.a.
2. @rmoff | @confluentinc
• Robin Moffatt (@rmoff)
• Senior Developer Advocate at Confluent
• Working in data & analytics since 2001
• Oracle ACE Director (Alumnus)
$ whoami
http://rmoff.dev/talks · http://rmoff.dev/blog · http://rmoff.dev/youtube
50. @rmoff | @confluentinc
Build a new image
FROM confluentinc/cp-kafka-connect:5.5.0
ENV CONNECT_PLUGIN_PATH="/usr/share/java,/usr/share/confluent-hub-components"
RUN confluent-hub install --no-prompt neo4j/kafka-connect-neo4j:1.0.0
JAR
confluentinc/cp-kafka-connect-base
55. @rmoff | @confluentinc
The log is the source of truth
$ confluent local log connect
$ docker-compose logs kafka-connect
$ cat /var/log/kafka/connect.log
59. @rmoff | @confluentinc
Mismatched converters
"value.converter":
"AvroConverter"
org.apache.kafka.common.errors.SerializationException:
Unknown magic byte!
Use the correct Converter for the
source dataⓘ
Messages are not Avro
60. @rmoff | @confluentinc
Mixed serialisation methods
"value.converter":
"AvroConverter"
org.apache.kafka.common.errors.SerializationException:
Unknown magic byte!
Some messages are not Avro
Use error handling to deal
with bad messagesⓘ
61. @rmoff | @confluentinc
Error Handling and DLQ
Handled
Convert
-> read/write from Kafka
-> [de]-serialisation
Transform
Not Handled
Start
-> Connections to a data store
Poll / Put
-> Read/Write from/to data store*
* can be retried by Connect
https://cnfl.io/connect-dlq
64. @rmoff | @confluentinc
Dead Letter Queue
Kafka Connect
Source topic messages
Sink messages
Dead
letter
queue
errors.tolerance=all
errors.deadletterqueue.topic.name=my_dlq
https://cnfl.io/connect-dlq
65. @rmoff | @confluentinc
Re-processing the Dead Letter Queue
Source topic messages
Sink messages
Dead
letter
queue
Kafka Connect (Avro sink)
Kafka Connect (JSON sink)
https://cnfl.io/connect-dlq
74. @rmoff | @confluentinc
Kaiser Resource Contacts
Shaun Wanford, Integration Architect (Kafka as a Service SME)
shaun.x.wanford@kp.org
503-309-8849
Scott Bramhall, Kaiser Account Executive
scott.bramhall@confluent.io
925-899-8939 – mobile
Neil Hudson, Kaiser Sales Engineer
neil.Hudson@confluent.io
303-257-1064