This is an automated email from the ASF dual-hosted git repository.

corgy pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new ecff2e8618 [Feature][Connector-V2] Iceberg add glue catalog support 
(#9247)
ecff2e8618 is described below

commit ecff2e861872832b53a83e4a292d3463d0027444
Author: itnccuong <[email protected]>
AuthorDate: Sat May 17 08:42:22 2025 +0700

    [Feature][Connector-V2] Iceberg add glue catalog support (#9247)
---
 docs/en/connector-v2/sink/Iceberg.md              | 79 +++++++++++++++--------
 seatunnel-connectors-v2/connector-iceberg/pom.xml | 25 ++++++-
 2 files changed, 76 insertions(+), 28 deletions(-)

diff --git a/docs/en/connector-v2/sink/Iceberg.md 
b/docs/en/connector-v2/sink/Iceberg.md
index 990b4cc073..9433d12dbf 100644
--- a/docs/en/connector-v2/sink/Iceberg.md
+++ b/docs/en/connector-v2/sink/Iceberg.md
@@ -133,48 +133,75 @@ sink {
 ```hocon
 sink {
   Iceberg {
-    catalog_name="seatunnel_test"
-    iceberg.catalog.config={
+    catalog_name = "seatunnel_test"
+    iceberg.catalog.config = {
       type = "hive"
       uri = "thrift://localhost:9083"
-      warehouse = "hdfs://your_cluster//tmp/seatunnel/iceberg/"
+      warehouse = "hdfs://your_cluster/tmp/seatunnel/iceberg/"
     }
-    namespace="seatunnel_namespace"
-    table="iceberg_sink_table"
-    iceberg.table.write-props={
-      write.format.default="parquet"
-      write.target-file-size-bytes=536870912
+    namespace = "seatunnel_namespace"
+    table = "iceberg_sink_table"
+    iceberg.table.write-props = {
+      write.format.default = "parquet"
+      write.target-file-size-bytes = 536870912
     }
-    iceberg.table.primary-keys="id"
-    iceberg.table.partition-keys="f_datetime"
-    iceberg.table.upsert-mode-enabled=true
-    iceberg.table.schema-evolution-enabled=true
-    case_sensitive=true
+    iceberg.table.primary-keys = "id"
+    iceberg.table.partition-keys = "f_datetime"
+    iceberg.table.upsert-mode-enabled = true
+    iceberg.table.schema-evolution-enabled = true
+    case_sensitive = true
   }
 }
 ```
 
-### Hadoop catalog
+### Hadoop Catalog
 
 ```hocon
 sink {
   Iceberg {
-    catalog_name="seatunnel_test"
-    iceberg.catalog.config={
+    catalog_name = "seatunnel_test"
+    iceberg.catalog.config = {
       type = "hadoop"
       warehouse = "hdfs://your_cluster/tmp/seatunnel/iceberg/"
     }
-    namespace="seatunnel_namespace"
-    table="iceberg_sink_table"
-    iceberg.table.write-props={
-      write.format.default="parquet"
-      write.target-file-size-bytes=536870912
+    namespace = "seatunnel_namespace"
+    table = "iceberg_sink_table"
+    iceberg.table.write-props = {
+      write.format.default = "parquet"
+      write.target-file-size-bytes = 536870912
     }
-    iceberg.table.primary-keys="id"
-    iceberg.table.partition-keys="f_datetime"
-    iceberg.table.upsert-mode-enabled=true
-    iceberg.table.schema-evolution-enabled=true
-    case_sensitive=true
+    iceberg.table.primary-keys = "id"
+    iceberg.table.partition-keys = "f_datetime"
+    iceberg.table.upsert-mode-enabled = true
+    iceberg.table.schema-evolution-enabled = true
+    case_sensitive = true
+  }
+}
+```
+
+### Glue Catalog
+
+```hocon
+sink {
+  Iceberg {
+    catalog_name = "seatunnel_test"
+    iceberg.catalog.config = {
+      warehouse     = "s3://your-bucket/warehouse/"
+      catalog-impl  = "org.apache.iceberg.aws.glue.GlueCatalog"
+      io-impl       = "org.apache.iceberg.aws.s3.S3FileIO"
+      client.region = "your-region"
+    }
+    namespace = "seatunnel_namespace"
+    table     = "iceberg_sink_table"
+    iceberg.table.write-props = {
+      write.format.default = "parquet"
+      write.target-file-size-bytes = 536870912
+    }
+    iceberg.table.primary-keys = "id"
+    iceberg.table.partition-keys = "f_datetime"
+    iceberg.table.upsert-mode-enabled = true
+    iceberg.table.schema-evolution-enabled = true
+    case_sensitive = true
   }
 }
 
diff --git a/seatunnel-connectors-v2/connector-iceberg/pom.xml 
b/seatunnel-connectors-v2/connector-iceberg/pom.xml
index fd8efba245..88632ec824 100644
--- a/seatunnel-connectors-v2/connector-iceberg/pom.xml
+++ b/seatunnel-connectors-v2/connector-iceberg/pom.xml
@@ -35,6 +35,7 @@
         <avro.version>1.11.3</avro.version>
         <hive.version>2.3.9</hive.version>
         <connector.name>connector-iceberg</connector.name>
+        
<software.amazon.awssdk.version>2.31.30</software.amazon.awssdk.version>
     </properties>
 
     <dependencyManagement>
@@ -58,19 +59,38 @@
             <artifactId>jsqlparser</artifactId>
             <version>${jsqlparser.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.iceberg</groupId>
+            <artifactId>iceberg-aws</artifactId>
+            <version>${iceberg.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>glue</artifactId>
+            <version>${software.amazon.awssdk.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>s3</artifactId>
+            <version>${software.amazon.awssdk.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>sts</artifactId>
+            <version>${software.amazon.awssdk.version}</version>
+        </dependency>
 
         <dependency>
             <groupId>org.apache.iceberg</groupId>
             <artifactId>iceberg-core</artifactId>
             <version>${iceberg.version}</version>
         </dependency>
-
         <dependency>
             <groupId>org.apache.iceberg</groupId>
             <artifactId>iceberg-common</artifactId>
             <version>${iceberg.version}</version>
         </dependency>
-
         <dependency>
             <groupId>org.apache.iceberg</groupId>
             <artifactId>iceberg-api</artifactId>
@@ -229,6 +249,7 @@
                         </goals>
                         <phase>package</phase>
                         <configuration>
+                            <minimizeJar>false</minimizeJar>
                             <relocations>
                                 <relocation>
                                     <pattern>org.apache.avro</pattern>

Reply via email to