Hi Ramin, Thank you for the proposal, I think this new command makes perfect sense and has the potential to improve IaC pipelines.
It's missing from the SQL syntax, but are there any plans to make this new command also support the DISTRIBUTED BY/INTO functionality of FLIP-542 [1] that was just voted to be implemented yesterday [2]? Best Regards Mate [1] https://cwiki.apache.org/confluence/display/FLINK/FLIP-542%3A+Make+materialized+table+DDL+consistent+with+regular+tables [2] https://lists.apache.org/thread/40xyjjvklt65tw21o2pmk8r3srprxs5q On Tue, Sep 2, 2025 at 3:14 PM Ramin Gharib <[email protected]> wrote: > 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 >
