Interface DynamicTableSink.Context
-
- All Known Implementing Classes:
SinkRuntimeProviderContext
- Enclosing interface:
- DynamicTableSink
@PublicEvolving public static interface DynamicTableSink.Context
Context for creating runtime implementation via aDynamicTableSink.SinkRuntimeProvider
.It offers utilities by the planner for creating runtime implementation with minimal dependencies to internal data structures.
Methods should be called in
DynamicTableSink.getSinkRuntimeProvider(Context)
. The returned instances areSerializable
and can be directly passed into the runtime implementation class.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description DynamicTableSink.DataStructureConverter
createDataStructureConverter(DataType consumedDataType)
Creates a converter for mapping between Flink's internal data structures and objects specified by the givenDataType
that can be passed into a runtime implementation.<T> TypeInformation<T>
createTypeInformation(DataType consumedDataType)
Creates type information describing the internal data structures of the givenDataType
.<T> TypeInformation<T>
createTypeInformation(LogicalType consumedLogicalType)
Creates type information describing the internal data structures of the givenLogicalType
.Optional<int[][]>
getTargetColumns()
Returns anOptional
array of column index paths related to user specified target column list orOptional.empty()
when not specified.boolean
isBounded()
Returns whether a runtime implementation can expect a finite number of rows.
-
-
-
Method Detail
-
isBounded
boolean isBounded()
Returns whether a runtime implementation can expect a finite number of rows.This information might be derived from the session's execution mode and/or kind of query.
-
createTypeInformation
<T> TypeInformation<T> createTypeInformation(DataType consumedDataType)
Creates type information describing the internal data structures of the givenDataType
.- See Also:
ResolvedSchema.toPhysicalRowDataType()
-
createTypeInformation
<T> TypeInformation<T> createTypeInformation(LogicalType consumedLogicalType)
Creates type information describing the internal data structures of the givenLogicalType
.
-
createDataStructureConverter
DynamicTableSink.DataStructureConverter createDataStructureConverter(DataType consumedDataType)
Creates a converter for mapping between Flink's internal data structures and objects specified by the givenDataType
that can be passed into a runtime implementation.For example,
RowData
and its fields can be converted into aRow
, or the internal representation for structured types can be converted back into the original (possibly nested) POJO.
-
getTargetColumns
Optional<int[][]> getTargetColumns()
Returns anOptional
array of column index paths related to user specified target column list orOptional.empty()
when not specified. The array indices are 0-based and support composite columns within (possibly nested) structures.This information comes from the column list of the DML clause, e.g., for a sink table t1 which schema is:
a STRING, b ROW < b1 INT, b2 STRING>, c BIGINT
- insert: 'insert into t1(a, b.b2) ...', the column list will be 'a, b.b2', and will
return
[[0], [1, 1]]
. The statement 'insert into t1 select ...' without specifying a column list will returnOptional.empty()
. - update: 'update t1 set a=1, b.b1=2 where ...', the column list will be 'a, b.b1',
and will return
[[0], [1, 0]]
.
Note: will always return empty for the delete statement because it has no column list.
- insert: 'insert into t1(a, b.b2) ...', the column list will be 'a, b.b2', and will
return
-
-