5.0

Kafka topics

The CLI can view, create and modify topics.

View all topics 

The optional names flag wil display only the names of the topics, and if –unwrap then each topic name will be displayed on a new line as a simple text

lenses-cli topics [--names [--unwrap]]

View a specific topic 

lenses-cli topic --name=reddit_posts

Create topics 

lenses-cli topic create \
    --name="topicName" \
    --replication=1 \
    --partitions=1 \
    --configs="{\"max.message.bytes\": \"1000010\"}"

Update from a file:

lenses-cli topic create ./topic.yml

Example file:

name: topicName
replication: 1
partitions: 1
configs:
  max.message.bytes: "1000010"

Update a topic’s configuration 

lenses-cli topic update \
    --name="topic2" \
    --configs="{\"max.message.bytes\": \"1000020\"}"

Update from a file:

lenses-cli topic update ./topic.yaml

Example file:

name: topicName
replication: 1
partitions: 1
configs:
  max.message.bytes: "1000010"

Update a topic’s metadata configuration 

# first change the key/value type
lenses-cli topics metadata set \
    --name=topicName \
    --key-type=bytes \
    --value-type=xml

# now you may change its schema
lenses-cli topics metadata set \
    --name=topicName \
    --key-type=bytes \
    --key-schema="{\"type\":\"record\",\"name\":\"lenses_record\",\"namespace\":\"lenses\",\"fields\":[{\"name\":\"keyField\",\"type\":\"string\"}]}" \
    --value-type=xml \
    --value-schema="{\"type\":\"record\",\"name\":\"lenses_record\",\"namespace\":\"lenses\",\"fields\":[{\"name\":\"valueField\",\"type\":\"string\"}]}"

Update from a file:

lenses-cli topic update ./topic.yaml

Example file:

topicName: topicName
keyType: bytes
valueType: xml
valueSchema: "{\"type\":\"record\",\"name\":\"lenses_record\",\"namespace\":\"lenses\",\"fields\":[{\"name\":\"heading3\",\"type\":\"string\"}]}"

Delete topics 

lenses-cli topic delete --name="topic2"