Class DynamicIcebergSink
java.lang.Object
org.apache.iceberg.flink.sink.dynamic.DynamicIcebergSink
- All Implemented Interfaces:
- Serializable,- org.apache.flink.api.connector.sink2.Sink<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal>,- org.apache.flink.api.connector.sink2.SupportsCommitter<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>,- org.apache.flink.streaming.api.connector.sink2.SupportsPostCommitTopology<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>,- org.apache.flink.streaming.api.connector.sink2.SupportsPreCommitTopology<org.apache.iceberg.flink.sink.dynamic.DynamicWriteResult,,- org.apache.iceberg.flink.sink.dynamic.DynamicCommittable> - org.apache.flink.streaming.api.connector.sink2.SupportsPreWriteTopology<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal>
@Experimental
public class DynamicIcebergSink
extends Object
implements org.apache.flink.api.connector.sink2.Sink<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal>, org.apache.flink.streaming.api.connector.sink2.SupportsPreWriteTopology<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal>, org.apache.flink.api.connector.sink2.SupportsCommitter<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>, org.apache.flink.streaming.api.connector.sink2.SupportsPreCommitTopology<org.apache.iceberg.flink.sink.dynamic.DynamicWriteResult,org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>, org.apache.flink.streaming.api.connector.sink2.SupportsPostCommitTopology<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable> 
Dynamic version of the IcebergSink which supports:
 
- Writing to any number of tables (No more 1:1 sink/topic relationship).
- Creating and updating tables based on the user-supplied routing.
- Updating the schema and partition spec of tables based on the user-supplied specification.
- See Also:
- 
Nested Class SummaryNested Classes
- 
Method SummaryModifier and TypeMethodDescriptionvoidaddPostCommitTopology(org.apache.flink.streaming.api.datastream.DataStream<org.apache.flink.streaming.api.connector.sink2.CommittableMessage<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>> committables) org.apache.flink.streaming.api.datastream.DataStream<org.apache.flink.streaming.api.connector.sink2.CommittableMessage<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>> addPreCommitTopology(org.apache.flink.streaming.api.datastream.DataStream<org.apache.flink.streaming.api.connector.sink2.CommittableMessage<org.apache.iceberg.flink.sink.dynamic.DynamicWriteResult>> writeResults) org.apache.flink.streaming.api.datastream.DataStream<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal> addPreWriteTopology(org.apache.flink.streaming.api.datastream.DataStream<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal> inputDataStream) org.apache.flink.api.connector.sink2.Committer<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable> createCommitter(org.apache.flink.api.connector.sink2.CommitterInitContext context) org.apache.flink.api.connector.sink2.SinkWriter<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal> createWriter(org.apache.flink.api.connector.sink2.WriterInitContext context) static <T> DynamicIcebergSink.Builder<T> forInput(org.apache.flink.streaming.api.datastream.DataStream<T> input) Initialize aIcebergSink.Builderto export the data from input data stream withRowDatas into iceberg table.org.apache.flink.core.io.SimpleVersionedSerializer<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable> org.apache.flink.core.io.SimpleVersionedSerializer<org.apache.iceberg.flink.sink.dynamic.DynamicWriteResult> 
- 
Method Details- 
createWriterpublic org.apache.flink.api.connector.sink2.SinkWriter<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal> createWriter(org.apache.flink.api.connector.sink2.WriterInitContext context) - Specified by:
- createWriterin interface- org.apache.flink.api.connector.sink2.Sink<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal>
 
- 
createCommitterpublic org.apache.flink.api.connector.sink2.Committer<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable> createCommitter(org.apache.flink.api.connector.sink2.CommitterInitContext context) - Specified by:
- createCommitterin interface- org.apache.flink.api.connector.sink2.SupportsCommitter<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>
 
- 
getCommittableSerializerpublic org.apache.flink.core.io.SimpleVersionedSerializer<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable> getCommittableSerializer()- Specified by:
- getCommittableSerializerin interface- org.apache.flink.api.connector.sink2.SupportsCommitter<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>
 
- 
addPostCommitTopologypublic void addPostCommitTopology(org.apache.flink.streaming.api.datastream.DataStream<org.apache.flink.streaming.api.connector.sink2.CommittableMessage<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>> committables) - Specified by:
- addPostCommitTopologyin interface- org.apache.flink.streaming.api.connector.sink2.SupportsPostCommitTopology<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>
 
- 
addPreWriteTopologypublic org.apache.flink.streaming.api.datastream.DataStream<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal> addPreWriteTopology(org.apache.flink.streaming.api.datastream.DataStream<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal> inputDataStream) - Specified by:
- addPreWriteTopologyin interface- org.apache.flink.streaming.api.connector.sink2.SupportsPreWriteTopology<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal>
 
- 
addPreCommitTopologypublic org.apache.flink.streaming.api.datastream.DataStream<org.apache.flink.streaming.api.connector.sink2.CommittableMessage<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>> addPreCommitTopology(org.apache.flink.streaming.api.datastream.DataStream<org.apache.flink.streaming.api.connector.sink2.CommittableMessage<org.apache.iceberg.flink.sink.dynamic.DynamicWriteResult>> writeResults) - Specified by:
- addPreCommitTopologyin interface- org.apache.flink.streaming.api.connector.sink2.SupportsPreCommitTopology<org.apache.iceberg.flink.sink.dynamic.DynamicWriteResult,- org.apache.iceberg.flink.sink.dynamic.DynamicCommittable> 
 
- 
getWriteResultSerializerpublic org.apache.flink.core.io.SimpleVersionedSerializer<org.apache.iceberg.flink.sink.dynamic.DynamicWriteResult> getWriteResultSerializer()- Specified by:
- getWriteResultSerializerin interface- org.apache.flink.streaming.api.connector.sink2.SupportsPreCommitTopology<org.apache.iceberg.flink.sink.dynamic.DynamicWriteResult,- org.apache.iceberg.flink.sink.dynamic.DynamicCommittable> 
 
- 
forInputpublic static <T> DynamicIcebergSink.Builder<T> forInput(org.apache.flink.streaming.api.datastream.DataStream<T> input) Initialize aIcebergSink.Builderto export the data from input data stream withRowDatas into iceberg table.- Parameters:
- input- the source input data stream with- RowDatas.
- Returns:
- IcebergSink.Builderto connect the iceberg table.
 
 
-