Hi, Ramin

Regarding the `materialized-table.default-freshness.full `, I think 1 hour
may be more suitable. In offline data warehouse, the hour partition is a
common case.

Best,
Ron

Ramin Gharib <[email protected]> 于2025年10月13日周一 19:05写道:

> Hi all,
>
> Thanks again for the excellent feedback on FLIP-551. The discussion has
> been very helpful, and I've made some updates to the proposal based on your
> input.
>
> I’d like to highlight three key changes:
>
>
> 1. Added Separate Default Configurations for FULL and CONTINUOUS Modes
>
> Based on Feng's feedback, I've updated the proposal to include two separate
> configuration options:
> - materialized-table.default-freshness.continuous (default: 3 min)
> - materialized-table.default-freshness.full (default: 15 min (TBD))
>
> This correctly handles the edge case where a user specifies REFRESH_MODE =
> FULL without a FRESHNESS and ensures a sensible, mode-specific default is
> always applied. A new user journey has been added to the FLIP to make this
> behavior clear.
>
>
> 2. Simplified the MaterializedTableEnricher Interface
>
> After further review of the architecture, I've simplified the
> MaterializedTableEnricher interface significantly. It now has a single
> enrich(CatalogMaterializedTable) method.
>
> This makes the design much cleaner and more atomic. The enricher now
> receives all the context it needs directly from the unresolved
> CatalogMaterializedTable object itself. As a result, the separate
> RefreshContext class is no longer necessary, simplifying the overall API.
>
>
> Cheers,
>
> Ramin
>
> On Mon, Oct 6, 2025 at 2:18 PM Ramin Gharib <[email protected]> wrote:
>
> > Hi everyone,
> >
> > I would like to start a discussion on FLIP-551 [1], which proposes making
> > the FRESHNESS clause optional for Materialized Tables.
> >
> > The goal is to simplify the user experience for common streaming cases
> and
> > to enable more powerful, platform-level default logic.
> >
> > The proposal achieves this by:
> >
> >    1.
> >
> >    Making the FRESHNESS DDL clause optional, falling back to a sensible
> >    default of 1 minute.
> >    2.
> >
> >    Introducing a new, MaterializedTableEnricher interface for custom
> >    logic to resolve the final Freshness and RefreshMode into the
> >    ResolvedCatalogMaterializedTable when they are omitted.
> >
> > This change reduces boilerplate for users while providing a clean
> > extension point for advanced use cases. The complete architectural
> details
> > and API are in the FLIP.
> >
> > I'm looking forward to hearing your feedback.
> >
> > [1]
> >
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-551%3A+Make+FRESHNESS+Optional+for+Materialized+Tables
> >
> > Thanks,
> >
> > Ramin
> >
>

Reply via email to