Hi everyone,

I want to start a discussion on a new Flink Improvement Proposal, FLIP-546:
Introduce CREATE OR ALTER for Materialized Tables [1].

The introduction of Materialized Tables in FLIP-435 [2] was a significant
step toward simplifying data pipelines. However, as we integrate them into
production environments managed by automation, a key challenge arises.
Modern data operations rely on declarative tools (like dbt, Terraform,
CI/CD pipelines) that require idempotent commands to manage the lifecycle
of data assets.

The current CREATE MATERIALIZED TABLE syntax is not idempotent and fails if
the table already exists. This forces developers and tool creators to
implement complex and risky CREATE IF NOT EXISTS or DROP...IF EXISTS logic
can lead to data loss and complicate the development of reliable data
management tools.

This FLIP proposes introducing a CREATE OR ALTER MATERIALIZED TABLE command
to provide a native, idempotent way to manage materialized tables, aligning
Flink with best practices for declarative, infrastructure-as-code
deployments.

[1] https://cwiki.apache.org/confluence/x/0wnXFg
<https://cwiki.apache.org/confluence/display/FLINK/FLIP-546%3A+Introduce+CREATE+OR+ALTER+for+Materialized+Tables>

[2] https://cwiki.apache.org/confluence/x/HYySEQ

Best Regards,

Ramin Gharib

Reply via email to