How to programmatically create a topic in Apache Kafka using Python

jpgerek picture jpgerek · Sep 24, 2014 · Viewed 21.3k times · Source

So far I haven't seen a python client that implements the creation of a topic explicitly without using the configuration option to create automatically the topics.

Answer

Giorgos Myrianthous picture Giorgos Myrianthous · Apr 4, 2019

You can programmatically create topics using either kafka-python or confluent_kafka client which is a lightweight wrapper around librdkafka.


Using kafka-python

from kafka.admin import KafkaAdminClient, NewTopic


admin_client = KafkaAdminClient(
    bootstrap_servers="localhost:9092", 
    client_id='test'
)

topic_list = []
topic_list.append(NewTopic(name="example_topic", num_partitions=1, replication_factor=1))
admin_client.create_topics(new_topics=topic_list, validate_only=False)

Using confluent_kafka

from confluent_kafka.admin import AdminClient, NewTopic


admin_client = AdminClient({
    "bootstrap.servers": "localhost:9092"
})

topic_list = []
topic_list.append(NewTopic("example_topic", 1, 1))
admin_client.create_topics(topic_list)