@Internal public abstract class AbstractHBaseDynamicTableSource extends Object implements ScanTableSource, LookupTableSource, SupportsProjectionPushDown
ScanTableSource.ScanContext, ScanTableSource.ScanRuntimeProvider
LookupTableSource.LookupContext, LookupTableSource.LookupRuntimeProvider
DynamicTableSource.Context, DynamicTableSource.DataStructureConverter
Modifier and Type | Field and Description |
---|---|
protected Configuration |
conf |
protected HBaseTableSchema |
hbaseSchema |
protected String |
nullStringLiteral |
protected String |
tableName |
Constructor and Description |
---|
AbstractHBaseDynamicTableSource(Configuration conf,
String tableName,
HBaseTableSchema hbaseSchema,
String nullStringLiteral) |
Modifier and Type | Method and Description |
---|---|
void |
applyProjection(int[][] projectedFields)
Provides the field index paths that should be used for a projection.
|
String |
asSummaryString()
Returns a string that summarizes this source for printing to a console or log.
|
ChangelogMode |
getChangelogMode()
Returns the set of changes that the planner can expect during runtime.
|
HBaseTableSchema |
getHBaseTableSchema() |
protected abstract InputFormat<RowData,?> |
getInputFormat() |
LookupTableSource.LookupRuntimeProvider |
getLookupRuntimeProvider(LookupTableSource.LookupContext context)
Returns a provider of runtime implementation for reading the data.
|
ScanTableSource.ScanRuntimeProvider |
getScanRuntimeProvider(ScanTableSource.ScanContext runtimeProviderContext)
Returns a provider of runtime implementation for reading the data.
|
boolean |
supportsNestedProjection()
Returns whether this source supports nested projection.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
copy
protected final Configuration conf
protected final String tableName
protected HBaseTableSchema hbaseSchema
protected final String nullStringLiteral
public AbstractHBaseDynamicTableSource(Configuration conf, String tableName, HBaseTableSchema hbaseSchema, String nullStringLiteral)
public ScanTableSource.ScanRuntimeProvider getScanRuntimeProvider(ScanTableSource.ScanContext runtimeProviderContext)
ScanTableSource
There might exist different interfaces for runtime implementation which is why ScanTableSource.ScanRuntimeProvider
serves as the base interface. Concrete ScanTableSource.ScanRuntimeProvider
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).
The given ScanTableSource.ScanContext
offers utilities by the planner for creating runtime
implementation with minimal dependencies to internal data structures.
See org.apache.flink.table.connector.source.SourceFunctionProvider
in flink-table-api-java-bridge
.
getScanRuntimeProvider
in interface ScanTableSource
protected abstract InputFormat<RowData,?> getInputFormat()
public LookupTableSource.LookupRuntimeProvider getLookupRuntimeProvider(LookupTableSource.LookupContext context)
LookupTableSource
There exist different interfaces for runtime implementation which is why LookupTableSource.LookupRuntimeProvider
serves as the base interface.
Independent of the provider interface, a source implementation can work on either
arbitrary objects or internal data structures (see org.apache.flink.table.data
for
more information).
The given LookupTableSource.LookupContext
offers utilities by the planner for creating runtime
implementation with minimal dependencies to internal data structures.
getLookupRuntimeProvider
in interface LookupTableSource
TableFunctionProvider
,
AsyncTableFunctionProvider
public boolean supportsNestedProjection()
SupportsProjectionPushDown
supportsNestedProjection
in interface SupportsProjectionPushDown
public void applyProjection(int[][] projectedFields)
SupportsProjectionPushDown
SupportsProjectionPushDown.supportsNestedProjection()
.
In the example mentioned in SupportsProjectionPushDown
, this method would receive:
[[2], [1]]
which is equivalent to [["s"], ["r"]]
if SupportsProjectionPushDown.supportsNestedProjection()
returns false.
[[2], [1, 0]]
which is equivalent to [["s"], ["r", "d"]]]
if SupportsProjectionPushDown.supportsNestedProjection()
returns true.
applyProjection
in interface SupportsProjectionPushDown
projectedFields
- field index paths of all fields that must be present in the physically
produced datapublic ChangelogMode getChangelogMode()
ScanTableSource
getChangelogMode
in interface ScanTableSource
RowKind
public String asSummaryString()
DynamicTableSource
asSummaryString
in interface DynamicTableSource
@VisibleForTesting public HBaseTableSchema getHBaseTableSchema()
Copyright © 2014–2021 The Apache Software Foundation. All rights reserved.