aws AWS Big Data Blog ·

Building Dynamic Data Lakes with Apache Iceberg and Flink on AWS

blogdataawsgaengineermedia
feature announcement

An AWS blog post details how to build dynamic streaming data lakes using Apache Iceberg and Apache Flink to manage schema changes without pipeline restarts. It explains how the Dynamic Iceberg Sink on Amazon Managed Service for Apache Flink enables per-record table routing and automatic schema evolution. This method allows a single Flink job to adapt to new event types and evolving schemas, eliminating manual migrations and data loss. The post provides a sample implementation utilizing Flink 2.3 and Iceberg 1.11.0 for engineers and architects.

  • Dynamic Iceberg Sink for Per-Record Table Routing
  • Automatic Schema Evolution in Streaming Ingestion
  • Addressing Schema Evolution in Streaming Data Pipelines
Features (2)
  • Dynamic Iceberg Sink for Per-Record Table Routing

    The Dynamic Iceberg Sink enables Apache Flink to dynamically route records to multiple Iceberg tables based on user-defined logic. It creates and updates tables on the fly and evolves both table schemas and partition specifications during streaming execution. This eliminates the need for Flink job restarts when requirements change, allowing a single job to handle diverse event types.

  • Automatic Schema Evolution in Streaming Ingestion

    The Dynamic Iceberg Sink automatically handles schema evolution without requiring pipeline restarts when new fields are added to streaming sources. It compares the record's schema against the target table and adds new fields as optional columns, committing changes with the next data file without needing a table rewrite. Schema information can be inferred from data or read from a schema registry, and changes are non-destructive by default.

Notes (1)
  • Addressing Schema Evolution in Streaming Data Pipelines

    The article addresses the challenge of handling upstream schema changes in streaming data pipelines writing to a data lake. Traditionally, this requires restarting pipelines or performing manual migrations, leading to ingestion pauses, data loss, or engineering overhead. The proposed solution avoids these issues by allowing pipelines to adapt dynamically.

Read the original announcement →

https://aws.amazon.com/blogs/big-data/build-a-dynamic-streaming-data-lake-with-apache-iceberg-and-apache-flink/

Related releases