apache / iceberg

Apache Iceberg
https://iceberg.apache.org/
Apache License 2.0
6.51k stars 2.25k forks source link

Flink Dynamic Sink #11536

Open pvary opened 1 week ago

pvary commented 1 week ago

Proposed Change

Flink Iceberg connector sink is the tool to write data to an Iceberg table from a continuous Flink stream. The current Sink implementations emphasize throughput over flexibility. The main limiting factor is that the Iceberg Flink Sink requires static table structure. The table, the schema, the partitioning specification need to be constant. If one of the previous things changes the Flink Job needs to be restarted. This allows using optimal record serialization and good performance, but real life use-cases need to work around this limitation when the underlying table has changed. We need to provide a tool to accommodate these changes.

The following typical use cases are considered during this design:

Proposal document

https://docs.google.com/document/d/1R3NZmi65S4lwnmNjH4gLCuXZbgvZV5GNrQKJ5NYdO9s

Specifications