@PublicEvolving public interface ScanTableSource extends DynamicTableSource
DynamicTableSource that scans all rows from an external storage system during runtime.
The scanned rows don't have to contain only insertions but can also contain updates and
deletions. Thus, the table source can be used to read a (finite or infinite) changelog. The given
ChangelogMode indicates the set of changes that the planner can expect during runtime.
For regular batch scenarios, the source can emit a bounded stream of insert-only rows.
For regular streaming scenarios, the source can emit an unbounded stream of insert-only rows.
For change data capture (CDC) scenarios, the source can emit bounded or unbounded streams with
insert, update, and delete rows. See also
ScanTableSource can implement the following abilities that might mutate an instance
In the last step, the planner will call
obtaining a provider of runtime implementation.
|Modifier and Type
|Interface and Description
Context for creating runtime implementation via a
Provides actual runtime implementation for reading the data.
|Modifier and Type
|Method and Description
Returns the set of changes that the planner can expect during runtime.
Returns a provider of runtime implementation for reading the data.
ScanTableSource.ScanRuntimeProvider getScanRuntimeProvider(ScanTableSource.ScanContext runtimeProviderContext)
There might exist different interfaces for runtime implementation which is why
ScanTableSource.ScanRuntimeProvider serves as the base interface. Concrete
interfaces might be located in other Flink modules.
Independent of the provider interface, the table runtime expects that a source
implementation emits internal data structures (see
RowData for more information).
ScanTableSource.ScanContext offers utilities by the planner for creating runtime
implementation with minimal dependencies to internal data structures.
Copyright © 2014–2021 The Apache Software Foundation. All rights reserved.