Interface ScanTableSource
-
- All Superinterfaces:
DynamicTableSource
@PublicEvolving public interface ScanTableSource extends DynamicTableSource
ADynamicTableSourcethat 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
ChangelogModeindicates 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
ScanTableSourcecan 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 Classes Modifier and Type Interface Description static interfaceScanTableSource.ScanContextContext for creating runtime implementation via aScanTableSource.ScanRuntimeProvider.static interfaceScanTableSource.ScanRuntimeProviderProvides 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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description ChangelogModegetChangelogMode()Returns the set of changes that the planner can expect during runtime.ScanTableSource.ScanRuntimeProvidergetScanRuntimeProvider(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 Detail
-
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:
SourceProvider
-
-