[ 
https://issues.apache.org/jira/browse/FLINK-40108?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-40108:
-----------------------------------
    Labels: pull-request-available  (was: )

> Add Splitters for snapshot a table or database
> ----------------------------------------------
>
>                 Key: FLINK-40108
>                 URL: https://issues.apache.org/jira/browse/FLINK-40108
>             Project: Flink
>          Issue Type: New Feature
>          Components: Connectors / JDBC
>            Reporter: João Boto
>            Priority: Major
>              Labels: pull-request-available
>
> Historically, extracting large datasets or entire databases in Apache Flink 
> required a fair amount of manual heavy lifting. Developers often had to write 
> custom SQL queries and explicitly define chunking/partitioning strategies to 
> prevent memory bottlenecks and ensure parallel execution.
> With the introduction of {*}{{SplitterEnumerator}} (FLINK-38733){*}, this 
> paradigm shifts. We now have a more native, automated way to handle 
> full-table and full-database extractions seamlessly.
> h3. The Old Way vs. The New Way
> |*Feature*|*The Old Approach*|*With SplitterEnumerator*|
> |*Query Definition*|Manual SQL statements with explicit {{WHERE}} clauses for 
> ranges.|Automated metadata-driven table/database scanning.|
> |*Chunking Logic*|Custom-coded pagination or partitioning 
> boundaries.|Built-in, dynamic split generation handled by the enumerator.|
> |*Maintenance*|High. Schema changes or data volume spikes required manual 
> tuning.|Low. Adapts dynamically to the underlying data structure.|
> h3. Key Benefits
>  * *Zero-Configuration Chunking:* You no longer need to guess the optimal 
> chunk sizes or write complex boundary logic. The {{SplitterEnumerator}} 
> automatically determines how to divide the table into manageable "splits" for 
> parallel workers.
>  * *Database-Wide Scaling:* Instead of writing dozens of individual source 
> queries for a multi-table database, the enumerator can discover and 
> orchestrate the extraction of all tables under the hood.
>  * *Cleaner Codebases:* Removes hundreds of lines of boilerplate SQL and 
> partitioning code, making your Flink jobs significantly easier to read, 
> maintain, and audit.
> h3. How it Works (Under the Hood)
> Instead of the coordinator node just passing a static query to the source 
> workers, the {{SplitterEnumerator}} acts as an intelligent traffic controller:
>  # *Discovery:* It inspects the target database or table metadata.
>  # *Splitting:* It breaks the dataset down into independent, parallelizable 
> pieces (splits) based on primary keys, indices, or data volume.
>  # *Distribution:* It dynamically assigns these splits to the source readers 
> as they become available, ensuring an even workload distribution without 
> manual intervention.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to