Stream SQL with Flink @ Yelp
summary
Yelp runs a service called Stream SQL built on the Flink SQL API that wires SQL queries into the existing Kafka + Avro + schema-registry pipeline, converting Avro records to Flink Rows via a custom StreamTableSource that exposes processing/event time and emits retraction (update) streams. Tests run in Docker with a help-compose stack. About forty production queries run in the past year, the largest at ~140,000 msgs/sec. Current limits: Flink 1.6 placement bug, no changelog/table-stream source, and coarse window-trigger control.
AI-written summary · about
chapters (10)
- 0:00Introduction to Yelp streaming
- 1:02Streaming at Yelp
- 2:20Flink infrastructure evolution
- 5:22Data pipeline architecture
- 6:25Adopting stream SQL
- 9:15Implementation details
- 12:21Output and retraction logic
- 14:09Developer experience and tests
- 17:18Challenges and roadmap
- 20:43Q&A session
related talks
23mBetter, Faster, Stronger Streaming: Your First Dive into Flink SQL
23mFrom Streams to Tables and Back Again: A Demo of Flink’s Table & SQL API
43mUnified stream and batch processing with Apache Flink’s relational APIs
21mStream Processing and SQL
32mThe easy way to build and run Flink SQL jobs using Cloudera SQL Stream Builder
31mWriting a Streaming SQL & Materialized View Engine
42mStream Processing with Apache Flink
40mThe Seven Deadly Sins of Streaming
