Skip to content

Conversation

@xuyangzhong
Copy link
Contributor

Purpose

Linked issue: close #1986

Brief change log

BP #2000 to release-0.8

Tests

API and Format

Documentation

- The downstream node of the join must support idempotent updates, typically it's an upsert sink and should not have a `SinkUpsertMaterializer` node before it.
- Flink planner automatically inserts a `SinkUpsertMaterializer` when the sink’s primary key does not fully cover the upstream update key.
- You can learn more details about `SinkUpsertMaterializer` by reading this [blog](https://www.ververica.com/blog/flink-sql-secrets-mastering-the-art-of-changelog-events).
- Since delta join does not support to handle update-before messages, it is necessary to ensure that the entire pipeline can safely discard update-before messages. That means when consuming a CDC stream:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since delta join does not support to handle update-before messages

Seems like a typo here, do you mean?

Since delta join does not support update-before messages

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In Flink, when consuming a changelog source, the source operator may output insert, update-before, update-after, and delete messages (update-before and update-after originate from an update statement in the storage engine.).

Here, I would like to express that the delta join operator cannot handle (consume) the update-before messages output by the source operator.

@wuchong wuchong merged commit 5209501 into apache:release-0.8 Dec 2, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants