Querying Kafka topics

The CLI allows you to browse and subscribe to topic data with SQL. Please refer to the Lenses SQL documentation for more details.

The data returned can be controlled via extra flags:

  • keys print message keys
  • keys-only print the keys only, not the value of the message
  • meta print the message metadata, partition number and offsets
  • stats print query statistics as the last message

Browsing 

Browse data via the query command, optionally validate and output stats:

lenses-cli query \
    --keys \
    --meta "SELECT score, author FROM reddit_posts LIMIT 50"

Execute with stats and show offsets 

lenses-cli query \
    --stats "SELECT score, author FROM reddit_posts LIMIT 50"

Live 

Live continuous queries update according to the query and never stop until terminated:

lenses-cli \
    query \
    --live-stream "SELECT score, author FROM reddit_posts WHERE _sample=2 AND _sampleWindow=200"

Interactive shell 

The interactive shell allows you to have an interactive experience and issue Lenses SQL queries from the command line.

To start the interactive shell, issue the following command:

lenses-cli shell

The available options are the following:

  • keys print message keys
  • keys-only print the keys only, not the value of the message
  • meta print the message metadata, partition number and offsets
  • stats print query statistics as the last message
  • pretty pretty print the JSON output
  • live-stream run as a continuous query
  • !options prints the current options
  1. Options are set using the ! prefix
  2. Queries are executed by ;

Multiline queries are possible but not available in the history inside the shell. After a restart, the multiline queries are concatenated into one line and can be selected.

Query history is stored in .lenes/history in the home directory of the user.

    __                                 ________    ____
   / /   ___  ____  ________  _____   / ____/ /   /  _/
  / /   / _ \/ __ \/ ___/ _ \/ ___/  / /   / /    / /
 / /___/  __/ / / (__  )  __(__  )  / /___/ /____/ /
/_____/\___/_/ /_/____/\___/____/   \____/_____/___/
Docs at https://docs.lenses.io
Connected to [https://master.lenses.io:443] as [andrew], context [master]
Use "!" to set output options [!keys|!keysOnly|!stats|!meta|!pretty]
Crtl+D to exit

lenses-sql>