Introduction
  • You, This Course and Us
Flink's Stream Processing Architecture
  • What is stream processing?
  • Stream processing vs Batch processing
  • Requirements of a Streaming Architecture
  • Stream processing with Apache Flink
Getting Started with Flink
  • Installing Flink
  • Setting up your Flink project with Maven
Hello World!
  • Data Representation and Programming Model
  • Example 1: Writing a Flink program
Transformations using the DataStream API
  • Example 2: The Filter operation
  • Example 3: The Map operation
  • Example 4: The FlatMap operation
  • Stateless and Stateful Transformations
  • Keyed Streams
  • Example 5: Creating a stream of Tuples
  • Example 6: Transformations on Keyed Streams
  • Example 7: Number aggregations
  • Example 8: The Reduce Operation
Window Operations
  • Windows Transformation
  • Example 9 and 10: Keyed vs NonKeyed, Sliding and Tumbling Windows
  • Example 11: Count Windows
  • Example 12: Session Windows
  • Understanding the Window API
  • Example 13: Implementing a Custom Window Function
  • Example 14: Changing the time characteristic
  • Example 15: Twitter Streaming Window
Custom Sources
  • Example 16: Custom Sources
State and Checkpointing
  • Example 17: Value State
  • Example 18: List State
  • Example 19: Reducing State
  • Example 20: Checkpointing and Restart strategies
Operations on Multiple Streams
  • Example 21: Unions
  • Example 22: Joining Streams
  • Example 23: coGroup
  • Example 24: coMap
  • Example 25: Iterate
  • Example 26: Split
Transformations in the DataSet API
  • Example 27: Applying Transformations on DataSets
Graph representation with Gelly
  • Example 28: Representing Graph data
Machine Learning with Flink ML
  • Example 29: Scala Hello World
  • Example 30: Recommendations with Alternating Least Squares