@PublicEvolving
public interface SupportsPartitionPushDown
ScanTableSource.
Partitions split the data stored in an external system into smaller portions that are
identified by one or more string-based partition keys. A single partition is represented as a
Map < String, String > which maps each partition key to a partition value. Partition keys
and their order is defined by the catalog table.
For example, data can be partitioned by region and within a region partitioned by month. The order of the partition keys (in the example: first by region then by month) is defined by the catalog table. A list of partitions could be:
List(
['region'='europe', 'month'='2020-01'],
['region'='europe', 'month'='2020-02'],
['region'='asia', 'month'='2020-01'],
['region'='asia', 'month'='2020-02']
)
By default, if this interface is not implemented, the data is read entirely with a subsequent filter operation after the source.
For efficiency, the planner can pass the number of required partitions and a source must
exclude those partitions from reading (including reading the metadata). See applyPartitions(List).
By default, the list of all partitions is queried from the catalog if necessary. However,
depending on the external system, it might be necessary to query the list of partitions in a
connector-specific way instead of using the catalog information. See listPartitions().
Note: After partitions are pushed into the source, the runtime will not perform a subsequent filter operation for partition keys.
| Modifier and Type | Method and Description |
|---|---|
void |
applyPartitions(List<Map<String,String>> remainingPartitions)
Provides a list of remaining partitions.
|
Optional<List<Map<String,String>>> |
listPartitions()
Returns a list of all partitions that a source can read if available.
|
Optional<List<Map<String,String>>> listPartitions()
A single partition maps each partition key to a partition value.
If Optional.empty() is returned, the list of partitions is queried from the
catalog.
void applyPartitions(List<Map<String,String>> remainingPartitions)
See the documentation of SupportsPartitionPushDown for more information.
Copyright © 2014–2025 The Apache Software Foundation. All rights reserved.