flink-sql-cookbook icon indicating copy to clipboard operation
flink-sql-cookbook copied to clipboard

The Apache Flink SQL Cookbook is a curated collection of examples, patterns, and use cases of Apache Flink SQL. Many of the recipes are completely self-contained and can be run in Ververica Platform a...

Apache Flink SQL Cookbook

The Apache Flink SQL Cookbook is a curated collection of examples, patterns, and use cases of Apache Flink SQL. Many of the recipes are completely self-contained and can be run in Ververica Platform as is.

The cookbook is a living document. :seedling:

Table of Contents

Foundations

  1. Creating Tables
  2. Inserting Into Tables
  3. Working with Temporary Tables
  4. Filtering Data
  5. Aggregating Data
  6. Sorting Tables
  7. Encapsulating Logic with (Temporary) Views
  8. Writing Results into Multiple Tables
  9. Convert timestamps with timezones

Aggregations and Analytics

  1. Aggregating Time Series Data
  2. Watermarks
  3. Analyzing Sessions in Time Series Data
  4. Rolling Aggregations on Time Series Data
  5. Continuous Top-N
  6. Deduplication
  7. Chained (Event) Time Windows
  8. Detecting Patterns with MATCH_RECOGNIZE
  9. Maintaining Materialized Views with Change Data Capture (CDC) and Debezium
  10. Hopping Time Windows
  11. Window Top-N
  12. Retrieve previous row value without self-join

Other Built-in Functions & Operators

  1. Working with Dates and Timestamps
  2. Building the Union of Multiple Streams
  3. Filtering out Late Data
  4. Overriding table options
  5. Expanding arrays into new rows
  6. Split strings into maps

User-Defined Functions (UDFs)

  1. Extending SQL with Python UDFs

Joins

  1. Regular Joins
  2. Interval Joins
  3. Temporal Table Join between a non-compacted and compacted Kafka Topic
  4. Lookup Joins
  5. Star Schema Denormalization (N-Way Join)
  6. Lateral Table Join

Former Recipes

  1. Aggregating Time Series Data (Before Flink 1.13)

About Apache Flink

Apache Flink is an open source stream processing framework with powerful stream- and batch-processing capabilities.

Learn more about Flink at https://flink.apache.org/.

License

Copyright © 2020-2022 Ververica GmbH

Distributed under Apache License, Version 2.0.