Interface ScanTableSource
- All Superinterfaces:
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 RowKind.
A ScanTableSource can implement the following abilities that might mutate an instance
during planning:
SupportsWatermarkPushDownSupportsSourceWatermarkSupportsFilterPushDownSupportsAggregatePushDownSupportsProjectionPushDownSupportsPartitionPushDownSupportsReadingMetadata
In the last step, the planner will call getScanRuntimeProvider(ScanContext) for
obtaining a provider of runtime implementation.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceContext for creating runtime implementation via aScanTableSource.ScanRuntimeProvider.static interfaceProvides actual runtime implementation for reading the data.Nested classes/interfaces inherited from interface org.apache.flink.table.connector.source.DynamicTableSource
DynamicTableSource.Context, DynamicTableSource.DataStructureConverter -
Method Summary
Modifier and TypeMethodDescriptionReturns the set of changes that the planner can expect during runtime.getScanRuntimeProvider(ScanTableSource.ScanContext runtimeProviderContext) Returns a provider of runtime implementation for reading the data.Methods inherited from interface org.apache.flink.table.connector.source.DynamicTableSource
asSummaryString, copy
-
Method Details
-
getChangelogMode
ChangelogMode getChangelogMode()Returns the set of changes that the planner can expect during runtime.- See Also:
-
RowKind
-
getScanRuntimeProvider
ScanTableSource.ScanRuntimeProvider getScanRuntimeProvider(ScanTableSource.ScanContext runtimeProviderContext) Returns a provider of runtime implementation for reading the data.There might exist different interfaces for runtime implementation which is why
ScanTableSource.ScanRuntimeProviderserves as the base interface. ConcreteScanTableSource.ScanRuntimeProviderinterfaces 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
RowDatafor more information).The given
ScanTableSource.ScanContextoffers utilities by the planner for creating runtime implementation with minimal dependencies to internal data structures.SourceProvideris the recommended core interface.SourceFunctionProviderinflink-table-api-java-bridgeandInputFormatProviderare available for backwards compatibility.- See Also:
-