Easier Stream Processing On Kafka With ksqlDB
March 2nd, 2020
43 mins 36 secs
About this Episode
Building applications on top of unbounded event streams is a complex endeavor, requiring careful integration of multiple disparate systems that were engineered in isolation. The ksqlDB project was created to address this state of affairs by building a unified layer on top of the Kafka ecosystem for stream processing. Developers can work with the SQL constructs that they are familiar with while automatically getting the durability and reliability that Kafka offers. In this episode Michael Drogalis, product manager for ksqlDB at Confluent, explains how the system is implemented, how you can use it for building your own stream processing applications, and how it fits into the lifecycle of your data infrastructure. If you have been struggling with building services on low level streaming interfaces then give this episode a listen and try it out for yourself.
- Hello and welcome to the Data Engineering Podcast, the show about modern data management
- When you’re ready to build your next pipeline, or want to test out the projects you hear about on the show, you’ll need somewhere to deploy it, so check out our friends at Linode. With 200Gbit private networking, scalable shared block storage, a 40Gbit public network, fast object storage, and a brand new managed Kubernetes platform, you’ve got everything you need to run a fast, reliable, and bullet-proof data platform. And for your machine learning workloads, they’ve got dedicated CPU and GPU instances. Go to dataengineeringpodcast.com/linode today to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show!
- Are you spending too much time maintaining your data pipeline? Snowplow empowers your business with a real-time event data pipeline running in your own cloud account without the hassle of maintenance. Snowplow takes care of everything from installing your pipeline in a couple of hours to upgrading and autoscaling so you can focus on your exciting data projects. Your team will get the most complete, accurate and ready-to-use behavioral web and mobile data, delivered into your data warehouse, data lake and real-time streams. Go to dataengineeringpodcast.com/snowplow today to find out why more than 600,000 websites run Snowplow. Set up a demo and mention you’re a listener for a special offer!
- You listen to this show to learn and stay up to date with what’s happening in databases, streaming platforms, big data, and everything else you need to know about modern data management. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to dataengineeringpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today.
- Your host is Tobias Macey and today I’m interviewing Michael Drogalis about ksqlDB, the open source streaming database layer for Kafka
- How did you get involved in the area of data management?
- Can you start by describing what ksqlDB is?
- What are some of the use cases that it is designed for?
- How do the capabilities and design of ksqlDB compare to other solutions for querying streaming data with SQL such as Pulsar SQL, PipelineDB, or Materialize?
- What was the motivation for building a unified project for providing a database interface on the data stored in Kafka?
- How is ksqlDB architected?
- If you were to rebuild the entire platform and its components from scratch today, what would you do differently?
- What is the workflow for an analyst or engineer to design and build an application on top of ksqlDB?
- What dialect of SQL is supported?
- What kinds of extensions or built in functions have been added to aid in the creation of streaming queries?
- What dialect of SQL is supported?
- How are table schemas defined and enforced?
- How do you handle schema migrations on active streams?
- Typically a database is considered a long term storage location for data, whereas Kafka is a streaming layer with a bounded amount of durable storage. What is a typical lifecycle of information in ksqlDB?
- Can you talk through an example architecture that might incorporate ksqlDB including the source systems, applications that might interact with the data in transit, and any destinations sytems for long term persistence?
- What are some of the less obvious features of ksqlDB or capabilities that you think should be more widely publicized?
- What are some of the edge cases or potential pitfalls that users should be aware of as they are designing their streaming applications?
- What is involved in deploying and maintaining an installation of ksqlDB?
- What are some of the operational characteristics of the system that should be considered while planning an installation such as scaling factors, high availability, or potential bottlenecks in the architecture?
- When is ksqlDB the wrong choice?
- What are some of the most interesting/unexpected/innovative projects that you have seen built with ksqlDB?
- What are some of the most interesting/unexpected/challenging lessons that you have learned while working on ksqlDB?
- What is in store for the future of the project?
- @michaeldrogalis on Twitter
- michaeldrogalis on GitHub
- From your perspective, what is the biggest gap in the tooling or technology for data management today?
- Apache Storm
- Stream Processing
- Kafka Streams
- Pulsar SQL
- Kafka Connect
- Java Jar
- CLI == Command Line Interface
- ANSI SQL
- Eventual Consistency
- Confluent Cloud
The intro and outro music is from The Hug by The Freak Fandango Orchestra / CC BY-SA
Support Data Engineering Podcast