
Set up a local ksqlDB environment, build a taxi booking application with streams and tables, apply joins and time windows, use geospatial and user defined functions, and prepare for production.
Download and unzip the course project files and PDF, ensuring you use the latest notes that align with the Confluent platform. Review the commands before copying to follow along.
Install Confluent platform to set up ksqlDB, configure PATH and CONFLUENT_HOME, then run the server locally (localhost:8088) on mac, linux, or windows (WSL2 or docker).
Create a ksqldb stream from a Kafka topic using comma-delimited data (name and country code), and explore push queries, emit changes, offset reset earliest, and simple aggregates.
Create a user profile stream using json in ksql for a taxi booking app, learn json field specification, describe streams, and query json data with integer, character, and double types.
Generate synthetic user profile data with Ksql datagen to feed streams, producing randomized records (user id, first name, last name, country, rating) in json or avro formats.
Extend streams with KSQL by building a stream on top of another, using a case statement to bucket ratings, and running scripts to define, drop, and monitor streams.
Explore ksql joins by joining a user profile stream with a country table using a left join on country code; create a new stream that enriches profiles with country names.
Learn how pull queries in KSQL DB retrieve immediate results from an aggregate table by querying the row key, contrasting with push queries that emit changes.
Explore how to control Kafka using ksqldb, configuring Kafka Connect sources and sinks with the ksql CLI, using a Postgres example to stream data into and out of Kafka.
Explore csv, json, and avro data encodings for taxi complaints, examining schema, compression, and trade-offs while modeling a four-field stream: customer name, complaint type, trip cost, new customer flag.
Create a comma-delimited complaint stream on the complaints csv topic in ksqlDB with fields customer name, complaint type, trip cost, and new customer flag; validate data and monitor server logs.
Transition from comma-delimited data to json to handle embedded commas and build a json-based complaints stream and topic for cleaner pipelines.
Explore Avro schema evolution by adding a new field, number of rides, to the complaints Avro topic, and compare version histories with side-by-side streams in Confluent Control Center.
Process a stream of weather events with nested json fields in ksqlDB, using a city struct to access name, country, latitude, and longitude via struct syntax.
Learn to fix join failures by repartitioning streams to achieve co-partitioning, create a rekeyed stream with a controlled partition count, and successfully join driver profile with the country table.
Explore geospatial functions in ksql, computing distances between rider and destination using geo distance, and join streams with weather data to report travel distance and conditions.
Extend ksqlDB with user defined functions and aggregates by building UDF/UDAF jars in Java with Maven, and register them in the extension directory.
Apply a Java-based user defined function taxi in ksqlDB to calculate taxi wait times from weather and distance, generating a customer-focused report of wait times, distance, and forecast.
Contrast interactive and headless deployments for ksqlDB, build a single application file, deploy in headless mode, and verify results via topics and the Kafka Avro Console Consumer.
Explore explain plans in ksqlDB to understand query execution from the show queries output, and visualize the topology to see data flow through streams to topics.
Explore how Kafka Streams enables scaling out and fault-tolerant processing across multiple KSQL instances, sharing broker lists and a common KSQL Server ID, with Docker-based high-availability testing.
Configure KSQL server and session settings via the properties file or set command, then verify with list properties noting server versus session scope and the service ID.
Explore how Kafka streams use RocksDB-backed state stores for stateful operations like windows, joins, and aggregates, and how the state dir affects disk storage and fault tolerance.
Test ksqldb applications with the Ksql Test Runner, using input and output scripts to drive test cases and enable test driven development without requiring a ksqldb or Kafka cluster.
Explore Ksql recipes and documentation, learn by examples like merging strings with insert into and Json format, consider migrating Kafka Streams to Ksql, and celebrate completing the course.
Encourage learners to leave reviews and feedback and rate the course on Udemy, and explore the bonus lecture listing coupons for other courses, promoting affordable education.
The latest release in the Apache Kafka Series!
Confluent ksqlDB has become an increasingly popular stream processing framework built upon Kafka Streams. It enables developers to write real-time stream processing applications with the ease of SQL. No Kafka Streams knowledge required!
For this course, I have partnered with KSQL expert Simon Aubury to bring you the ultimate KSQL course.
We'll take a project based approach for this course. You'll learn all the most important KSQL features by gradually building a KSQL taxi booking application!
KSQL Setup
KSQL Command Line
Streams with CSV, JSON, and AVRO
Use the KSQL-Datagen utility
Manipulate streams
Create Tables
Perform Joins
Advanced KSQL: Rekeying, Merging Streams, Windowing, Geospatial
Extending KSQL: UDF & UDAF
Moving to Production
KSQL Operations
Note: To best enjoy this course, a Mac or Linux machine is preferred. Windows users will have special instructions and would be better by leveraging a Linux VM.
===============================
Instructor
My name is Stephane Maarek, and I'll be your instructor in this course. I teach about Apache Kafka, the Kafka ecosystem and Kafka Certifications with my focus always on helping my students improve their professional proficiencies. I am also the co-founder of Conduktor: an enterprise Apache Kafka platform & UI to help everyone use Kafka.
Throughout my career in designing and delivering these certifications and courses, I have already taught 1,000,000+ students and gotten 350,000+ reviews!
Simon Aubury is the lead instructor of this course. He is a KSQL expert, authored many blogs on the Confluent Blog, and wrote cool KSQL POCs on Medium such as detecting in real-time when the heater of his house is left on, or when planes go over his house! He'll be leading you through this course and make sure that everything is properly explained.
With Apache Kafka becoming much more than a buzzword out there, I've decided it's time for students to properly learn how to be a Kafka professional. So, let’s kick start the course! You are in good hands!
===============================
This Course Also Comes With:
Lifetime Access to All Future Updates
A responsive instructor in the Q&A Section
Links to interesting articles, and lots of good code to base your next applications onto
Udemy Certificate of Completion Ready for Download
This is the course that could improve your career!
Apache Kafka is a skill in high demand and there are not enough people to fulfill all the open positions. You can boost your income, take on new roles and fun challenges. Many of my students are now the Kafka experts of their companies! You can be the next!
I hope to see you inside the course!
=======================
Note: Looking for more advanced Kafka concepts? There are many volumes in the Apache Kafka Series:
Learn Kafka for Beginners v2 (great to start)
Kafka Connect Hands On Learning
Kafka Streams for Data Processing
KSQL on ksqlDB - Hands On!
Kafka Cluster Setup & Administration
Confluent Schema Registry & Kafka REST Proxy
Kafka Security (SSL SASL ACL)
Kafka Monitoring and Operations
Happy learning!