Skip to content

[flink] Automatically detect changes of external-paths strategy #6024

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

LsomeYeah
Copy link
Contributor

@LsomeYeah LsomeYeah commented Aug 4, 2025

Purpose

Linked issue: close #xxx

The Flink job needs to be restarted for changes to take effect when changing the configration of external-paths. With rapid data lake growth and frequent storage expansions, external-paths changes occur often, therefore some users require updates without restarting flink streaming job.

This pr checks latest schema every checkpoint, and if the schema has changed, it'll try update the write with the latest external-paths config. You can configure 'external-paths.detect-config.enabled' = 'true' to enable this feature. Cause it tries to read latest schema every chekpoint, it'll bring extra IO cost.

Currently, this feature takes affects for flink streaming writing job and table-level dedicated compaction job.

Tests

Streaming write:

  1. AppendOnlyTableITCase#testTableReadWriteWithChangedExternalPath
  2. PrimaryKeyFileStoreTableITCase#testTableReadWriteWithChangedExternalPath

table-level dedicated compaction:

  1. CompactActionITCase#testStreamingCompactWithChangedExternalPath
  2. CompactActionITCase#testUnawareBucketStreamingCompactWithChangedExternalPath

API and Format

Documentation

@LsomeYeah LsomeYeah marked this pull request as draft August 4, 2025 12:21
@LsomeYeah LsomeYeah marked this pull request as ready for review August 5, 2025 09:10
@LsomeYeah LsomeYeah closed this Aug 5, 2025
@LsomeYeah LsomeYeah reopened this Aug 5, 2025
@LsomeYeah LsomeYeah closed this Aug 5, 2025
@LsomeYeah LsomeYeah reopened this Aug 5, 2025
@LsomeYeah LsomeYeah closed this Aug 5, 2025
@LsomeYeah LsomeYeah reopened this Aug 5, 2025
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.

1 participant