This is an automated email from the ASF dual-hosted git repository.
fanjia pushed a change to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git
from 92f847c99f [Improve][Connector-V2] oracle cdc e2e optimization (#6232)
add 18d3e86194 [Feature] Supports iceberg sink #6198 (#6265)
No new revisions were added by this update.
Summary of changes:
docs/en/connector-v2/sink/Iceberg.md | 182 ++++++++
docs/en/connector-v2/source/Iceberg.md | 40 +-
plugin-mapping.properties | 1 +
pom.xml | 3 +-
release-note.md | 1 +
.../connector-cdc/connector-cdc-base/pom.xml | 14 +
seatunnel-connectors-v2/connector-iceberg/pom.xml | 72 ++-
.../seatunnel/iceberg/IcebergCatalogFactory.java | 88 ----
.../seatunnel/iceberg/IcebergCatalogLoader.java | 124 ++++++
.../seatunnel/iceberg/IcebergTableLoader.java | 66 ++-
.../seatunnel/iceberg/catalog/IcebergCatalog.java | 263 +++++++++++
.../iceberg/catalog/IcebergCatalogFactory.java | 20 +-
.../seatunnel/iceberg/config/CommonConfig.java | 87 ++--
.../seatunnel/iceberg/config/SinkConfig.java | 145 ++++++
.../seatunnel/iceberg/config/SourceConfig.java | 8 +-
.../seatunnel/iceberg/data/IcebergTypeMapper.java | 57 +++
.../seatunnel/iceberg/data/RowConverter.java | 495 +++++++++++++++++++++
.../seatunnel/iceberg/sink/IcebergSink.java | 214 +++++++++
.../seatunnel/iceberg/sink/IcebergSinkFactory.java | 112 +++++
.../seatunnel/iceberg/sink/IcebergSinkWriter.java | 160 +++++++
.../sink/commit/IcebergAggregatedCommitInfo.java} | 6 +-
.../sink/commit/IcebergAggregatedCommitter.java | 71 +++
.../iceberg/sink/commit/IcebergCommitInfo.java} | 8 +-
.../iceberg/sink/commit/IcebergFilesCommitter.java | 91 ++++
.../iceberg/sink/schema/ISchemaChange.java | 7 +-
.../iceberg/sink/schema/SchemaAddColumn.java | 35 +-
.../iceberg/sink/schema/SchemaChangeColumn.java} | 24 +-
.../iceberg/sink/schema/SchemaChangeWrapper.java | 72 +++
.../iceberg/sink/schema/SchemaDeleteColumn.java | 19 +-
.../iceberg/sink/schema/SchemaModifyColumn.java | 22 +-
.../iceberg/sink/state/IcebergSinkState.java | 23 +-
.../iceberg/sink/writer/BaseDeltaTaskWriter.java | 126 ++++++
.../iceberg/sink/writer/IcebergRecord.java | 87 ++++
.../iceberg/sink/writer/IcebergRecordWriter.java | 175 ++++++++
.../iceberg/sink/writer/IcebergWriterFactory.java | 197 ++++++++
.../sink/writer/PartitionedAppendWriter.java | 56 +++
.../sink/writer/PartitionedDeltaWriter.java | 95 ++++
.../iceberg/sink/writer/RecordProjection.java | 196 ++++++++
.../iceberg/sink/writer/RecordWriter.java | 24 +-
.../sink/writer/UnpartitionedDeltaWriter.java | 68 +++
.../seatunnel/iceberg/sink/writer/WriteResult.java | 29 +-
.../seatunnel/iceberg/source/IcebergSource.java | 55 ++-
.../iceberg/source/IcebergSourceFactory.java | 56 ++-
.../source/enumerator/AbstractSplitEnumerator.java | 8 +-
.../enumerator/IcebergBatchSplitEnumerator.java | 7 +-
.../enumerator/IcebergStreamSplitEnumerator.java | 7 +-
.../source/reader/IcebergFileScanTaskReader.java | 6 +-
.../iceberg/source/reader/IcebergSourceReader.java | 9 +-
.../seatunnel/iceberg/utils/SchemaUtils.java | 322 ++++++++++++++
.../seatunnel/iceberg/TestIcebergMetastore.java | 20 +-
.../iceberg/catalog/IcebergCatalogTest.java | 172 +++++++
.../connector-iceberg-e2e/pom.xml | 54 +++
.../e2e/connector/iceberg/IcebergSinkCDCIT.java | 459 +++++++++++++++++++
.../e2e/connector/iceberg/IcebergSinkIT.java | 169 +++++++
.../e2e/connector/iceberg/IcebergSourceIT.java | 21 +-
.../src/test/resources/ddl/inventory.sql | 0
.../src/test/resources/ddl/mysql_cdc.sql | 186 ++++++++
.../test/resources/iceberg/fake_to_iceberg.conf} | 23 +-
.../src/test/resources/iceberg/iceberg_source.conf | 6 +-
.../resources/iceberg/mysql_cdc_to_iceberg.conf} | 52 ++-
.../mysql_cdc_to_iceberg_for_schema_change.conf} | 56 ++-
.../src/test/resources/mysql}/server-gtids/my.cnf | 0
.../src/test/resources/mysql}/setup.sql | 4 +-
.../connector/iceberg/hadoop3/IcebergSourceIT.java | 21 +-
.../src/test/resources/iceberg/iceberg_source.conf | 6 +-
.../seatunnel-hadoop3-3.1.4-uber/pom.xml | 1 -
66 files changed, 4913 insertions(+), 390 deletions(-)
create mode 100644 docs/en/connector-v2/sink/Iceberg.md
delete mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/IcebergCatalogFactory.java
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/IcebergCatalogLoader.java
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/catalog/IcebergCatalog.java
copy
seatunnel-api/src/test/java/org/apache/seatunnel/api/table/catalog/InMemoryCatalogFactory.java
=>
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/catalog/IcebergCatalogFactory.java
(64%)
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/config/SinkConfig.java
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/data/RowConverter.java
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/IcebergSink.java
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/IcebergSinkFactory.java
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/IcebergSinkWriter.java
copy
seatunnel-connectors-v2/{connector-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/mongodb/sink/state/MongodbAggregatedCommitInfo.java
=>
connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/commit/IcebergAggregatedCommitInfo.java}
(84%)
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/commit/IcebergAggregatedCommitter.java
copy
seatunnel-connectors-v2/{connector-kafka/src/main/java/org/apache/seatunnel/connectors/seatunnel/kafka/state/KafkaAggregatedCommitInfo.java
=>
connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/commit/IcebergCommitInfo.java}
(79%)
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/commit/IcebergFilesCommitter.java
copy
seatunnel-engine/seatunnel-engine-common/src/main/java/org/apache/seatunnel/engine/common/runtime/ExecutionMode.java
=>
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/schema/ISchemaChange.java
(88%)
copy
seatunnel-engine/seatunnel-engine-core/src/main/java/org/apache/seatunnel/engine/core/dag/internal/IntermediateQueue.java
=>
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/schema/SchemaAddColumn.java
(60%)
copy
seatunnel-connectors-v2/{connector-common/src/main/java/org/apache/seatunnel/connectors/seatunnel/common/source/SingleSplit.java
=>
connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/schema/SchemaChangeColumn.java}
(64%)
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/schema/SchemaChangeWrapper.java
copy
seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/EngineType.java
=>
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/schema/SchemaDeleteColumn.java
(76%)
copy
seatunnel-core/seatunnel-core-starter/src/main/java/org/apache/seatunnel/core/starter/enums/PluginType.java
=>
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/schema/SchemaModifyColumn.java
(65%)
copy
seatunnel-engine/seatunnel-engine-storage/checkpoint-storage-api/src/main/java/org/apache/seatunnel/engine/checkpoint/storage/PipelineState.java
=>
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/state/IcebergSinkState.java
(66%)
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/writer/BaseDeltaTaskWriter.java
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/writer/IcebergRecord.java
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/writer/IcebergRecordWriter.java
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/writer/IcebergWriterFactory.java
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/writer/PartitionedAppendWriter.java
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/writer/PartitionedDeltaWriter.java
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/writer/RecordProjection.java
copy
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/wal/reader/IFileReader.java
=>
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/writer/RecordWriter.java
(56%)
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/writer/UnpartitionedDeltaWriter.java
copy
seatunnel-engine/seatunnel-engine-storage/imap-storage-plugins/imap-storage-file/src/main/java/org/apache/seatunnel/engine/imap/storage/file/disruptor/FileWALEvent.java
=>
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/writer/WriteResult.java
(68%)
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/utils/SchemaUtils.java
create mode 100644
seatunnel-connectors-v2/connector-iceberg/src/test/java/org/apache/seatunnel/connectors/seatunnel/iceberg/catalog/IcebergCatalogTest.java
create mode 100644
seatunnel-e2e/seatunnel-connector-v2-e2e/connector-iceberg-e2e/src/test/java/org/apache/seatunnel/e2e/connector/iceberg/IcebergSinkCDCIT.java
create mode 100644
seatunnel-e2e/seatunnel-connector-v2-e2e/connector-iceberg-e2e/src/test/java/org/apache/seatunnel/e2e/connector/iceberg/IcebergSinkIT.java
copy seatunnel-e2e/seatunnel-connector-v2-e2e/{connector-cdc-mysql-e2e =>
connector-iceberg-e2e}/src/test/resources/ddl/inventory.sql (100%)
create mode 100644
seatunnel-e2e/seatunnel-connector-v2-e2e/connector-iceberg-e2e/src/test/resources/ddl/mysql_cdc.sql
copy
seatunnel-e2e/seatunnel-connector-v2-e2e/{connector-paimon-e2e/src/test/resources/fake_to_paimon.conf
=> connector-iceberg-e2e/src/test/resources/iceberg/fake_to_iceberg.conf} (77%)
copy
seatunnel-e2e/seatunnel-connector-v2-e2e/{connector-cdc-mysql-e2e/src/test/resources/mysqlcdc_to_mysql_with_disable_exactly_once.conf
=> connector-iceberg-e2e/src/test/resources/iceberg/mysql_cdc_to_iceberg.conf}
(62%)
copy
seatunnel-e2e/seatunnel-connector-v2-e2e/{connector-cdc-mysql-e2e/src/test/resources/mysqlcdc_to_mysql_with_disable_exactly_once.conf
=>
connector-iceberg-e2e/src/test/resources/iceberg/mysql_cdc_to_iceberg_for_schema_change.conf}
(60%)
copy
seatunnel-e2e/seatunnel-connector-v2-e2e/{connector-cdc-mysql-e2e/src/test/resources/docker
=> connector-iceberg-e2e/src/test/resources/mysql}/server-gtids/my.cnf (100%)
copy
seatunnel-e2e/seatunnel-connector-v2-e2e/{connector-kafka-e2e/src/test/resources/docker
=> connector-iceberg-e2e/src/test/resources/mysql}/setup.sql (92%)