Project Metamorphosis: Wir präsentieren die Event-Streaming-Plattform der nächsten GenerationMehr Erfahren

Data Serialization

Changing Data Serialization Format from JSON to Avro

Data comes in different formats. Typically, you have to convert data from JSON to Avro every time you want to use the data in the Avro format. KSQL provides a powerful way for developers to reserialize the data in a Kafka topic by defining new streams with the desired serialization of the new topic, populated by the streaming events of the original topic.

The fantastic thing here is that these are streaming transformations, so not only does all existing data on the topic get converted, but so does every single message that subsequently arrives on the source topic.

Visit the new Kafka-Tutorials site for the latest code examples


Convert a topic from JSON to Avro.

Here is the source data, in a topic called mysql_users:

{"uid":1,"name":"Cliff","locale":"en_US","address_city":"St Louis","elite":"P"}

1. Define the source topic’s schema:

CREATE STREAM source_json (uid INT, name VARCHAR, locale VARCHAR, address_city VARCHAR, elite VARCHAR) 

2. Create a derived topic in Avro format:

CREATE STREAM target_avro WITH (KAFKA_TOPIC='mysql_users_avro',VALUE_FORMAT='AVRO') AS 
SELECT * FROM source_json;
< Back to the Stream Processing Cookbook