Exploring ksqlDB window start time

Prompted by a question on StackOverflow I had a bit of a dig into how windows behave in ksqlDB, specifically with regards to their start time. This …

Streaming messages from RabbitMQ into Kafka with Kafka Connect

This was prompted by a question on StackOverflow to which I thought the answer would be straightforward, but turned out not to be so. And then I got …

Analysing network behaviour with ksqlDB and MongoDB

In this post I want to build on my previous one and show another use of the Syslog data that I’m capturing. Instead of looking for SSH attacks, I’m …

Detecting and Analysing SSH Attacks with ksqlDB

I’ve written previously about ingesting Syslog into Kafka and using KSQL to analyse it. I want to revisit the subject since it’s nearly two years …

A poor man’s KSQL EXPLODE/UNNEST technique

There is an open issue for support of EXPLODE/UNNEST functionality in KSQL, and if you need it then do up-vote the issue. Here I detail a hacky, but …

Pivoting Aggregates in Ksql

Prompted by a question on StackOverflow, the requirement is to take a series of events related to a common key and for each key output a series of …

Connecting KSQL to a Secured Schema Registry

See also : https://docs.confluent.io/current/ksql/docs/installation/server-config/security.html#configuring-ksql-for-secured-sr-long Confluent Cloud …

Exploring KSQL Stream-Stream Joins

Introduction What can you use stream-stream joins for? Can you use them to join between a stream of orders and stream of related shipments to do …

Terminate All KSQL Queries

Before you can drop a stream or table that’s populated by a query in KSQL, you have to terminate any queries upon which the object is dependent. …

How KSQL handles case

KSQL is generally case-sensitive. Very sensitive, at times ;-)

KSQL REST API cheatsheet

Full reference is here

Streaming data from Oracle into Kafka

This is a short summary discussing what the options are for integrating Oracle RDBMS into Kafka, as of December 2018 (refreshed June 2020). For a more …