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 Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionvoid
addPostCommitTopology
(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.Builder
to export the data from input data stream withRowData
s 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
-
createWriter
public 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:
createWriter
in interfaceorg.apache.flink.api.connector.sink2.Sink<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal>
-
createCommitter
public 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:
createCommitter
in interfaceorg.apache.flink.api.connector.sink2.SupportsCommitter<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>
-
getCommittableSerializer
public org.apache.flink.core.io.SimpleVersionedSerializer<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable> getCommittableSerializer()- Specified by:
getCommittableSerializer
in interfaceorg.apache.flink.api.connector.sink2.SupportsCommitter<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>
-
addPostCommitTopology
public 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:
addPostCommitTopology
in interfaceorg.apache.flink.streaming.api.connector.sink2.SupportsPostCommitTopology<org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>
-
addPreWriteTopology
public 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:
addPreWriteTopology
in interfaceorg.apache.flink.streaming.api.connector.sink2.SupportsPreWriteTopology<org.apache.iceberg.flink.sink.dynamic.DynamicRecordInternal>
-
addPreCommitTopology
public 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:
addPreCommitTopology
in interfaceorg.apache.flink.streaming.api.connector.sink2.SupportsPreCommitTopology<org.apache.iceberg.flink.sink.dynamic.DynamicWriteResult,
org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>
-
getWriteResultSerializer
public org.apache.flink.core.io.SimpleVersionedSerializer<org.apache.iceberg.flink.sink.dynamic.DynamicWriteResult> getWriteResultSerializer()- Specified by:
getWriteResultSerializer
in interfaceorg.apache.flink.streaming.api.connector.sink2.SupportsPreCommitTopology<org.apache.iceberg.flink.sink.dynamic.DynamicWriteResult,
org.apache.iceberg.flink.sink.dynamic.DynamicCommittable>
-
forInput
public static <T> DynamicIcebergSink.Builder<T> forInput(org.apache.flink.streaming.api.datastream.DataStream<T> input) Initialize aIcebergSink.Builder
to export the data from input data stream withRowData
s into iceberg table.- Parameters:
input
- the source input data stream withRowData
s.- Returns:
IcebergSink.Builder
to connect the iceberg table.
-