Transforming Data Streams with Kafka Connect: An Introduction to Single Message Transforms

HostedbyConfluent 1,146 views 16 slides Apr 25, 2024
Slide 1
Slide 1 of 16
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16

About This Presentation

"In this talk, attendees will be provided with an introduction to Kafka Connect and the basics of Single Message Transforms (SMTs) and how they can be used to transform data streams in a simple and efficient way. SMTs are a powerful feature of Kafka Connect that allow custom logic to be applied...


Slide Content

Transforming Data Streams with Kafka Connect:
An Introduction to Single Message Transforms

Ranjan Rao

❏Kafka Connect Overview
❏Single Message Transforms
❏Common Use Cases
❏Built-in SMTs
❏Example SMT Configuration
❏Alternatives
@ranjan_rao

Kafka Connect Overview
➔Tool for streaming data from various sources to Kafka and from Kafka to
various sink systems.



@ranjan_rao
Source
Source
Connector Sink
Sink
Connector

Single Message Transforms
➔Provides a powerful and flexible way to transform data
➔Simple function that accepts one record as an input and outputs a modified
record
➔Apache Kafka 0.10.2.0



@ranjan_rao

@ranjan_rao
Single Message Transforms
Database
Source
Connector
Transform #1Transform #N
Converter
Database
Sink
Connector
Transform #N
Converter
Transform #1

✓Kafka Connect Overview
✓Single Message Transforms
❏Common Use Cases
❏Built-in SMTs
❏Examples of SMT Configurations
❏Alternatives
@ranjan_rao

Common Use Cases
●Data enrichment/enhancement
●Partitioning
●Field masking
●Event routing

@ranjan_rao

✓Kafka Connect Overview
✓Single Message Transforms
✓Common Use Cases
❏Built-in SMTs
❏Example of SMT Configurations
❏Alternatives
@ranjan_rao

Built-in SMTs
●InsertField
●ReplaceField
●MaskField
●ValueToKey
●ExtractField


@ranjan_rao
●TimestampRouter
●RegexRouter
●InsertHeader
●HeadersFrom
●DropHeaders

✓Kafka Connect Overview
✓Single Message Transforms
✓Common Use Cases
✓Built-in SMTs
❏Example of SMT Configurations
❏Alternatives
@ranjan_rao

Example SMT configuration
{“Firstname”: “John”, “LastName”: “Doe”,”Phone”: “000-000-0000” }


{“Firstname”: “John”, “LastName”: “Doe”, “Phone”: “123-456-7890”}



InsertField
MaskField
{“Firstname”: “John”, “LastName”: “Doe”,”Phone”: “ 000-000-0000”,
“Origin”: “Source Connector”,
“RecordTimestamp”: 1707940094
}

Example SMT configuration
"transforms": "MaskField,InsertField" ,

"transforms.MaskField.type" : "org.apache.kafka.connect.transforms.MaskField$Value" ,
"transforms.MaskField.fields" : "Phone",
"transforms.MaskField.replacement" : "000-000-0000"

"transforms.InsertField.type" : "org.apache.kafka.connect.transforms.InsertField$Value" ,
"transforms.InsertField.static.field" : "Origin",
"transforms.InsertField.static.value" : "Source Connector",
"transforms.InsertField.timestamp.field" : "RecordTimestamp"




{“Firstname”: “John”, “LastName”: “Doe”,”Phone”: “000-000-0000”,
“Origin”: “Source Connector”,
“RecordTimestamp”: 1707940094
}

●Single Message Transforms for Confluent Platform
●Single Message Transforms for Kafka Connectors in Confluent Cloud


@ranjan_rao
Example SMT configuration

✓Kafka Connect Overview
✓Single Message Transforms
✓Common Use Cases
✓Built-in SMTs
✓Example of SMT Configurations
❏Alternatives

@ranjan_rao

Alternatives

➢Kafka Streams
➢ksqlDB
➢Apache Flink


@ranjan_rao

Thank You!