You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2026/03/28 02:33:02 UTC

(doris) branch branch-4.1 updated: branch-4.1: [upgrade](docker)upgrade iceberg docker spark version to 4.0 (#61149) (#61838)

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

yiguolei pushed a commit to branch branch-4.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-4.1 by this push:
     new eed7e9e3aa2 branch-4.1: [upgrade](docker)upgrade iceberg docker spark version to 4.0 (#61149) (#61838)
eed7e9e3aa2 is described below

commit eed7e9e3aa24f6d6f84959b4a827db5b4862d7ef
Author: Mingyu Chen (Rayner) <yu...@selectdb.com>
AuthorDate: Fri Mar 27 19:32:55 2026 -0700

    branch-4.1: [upgrade](docker)upgrade iceberg docker spark version to 4.0 (#61149) (#61838)
    
    bp #61149
    
    Co-authored-by: daidai <ch...@selectdb.com>
---
 .../docker-compose/iceberg/entrypoint.sh.tpl       |  14 +-
 .../docker-compose/iceberg/iceberg.yaml.tpl        |  14 +-
 .../create_preinstalled_scripts/paimon/run02.sql   | 190 ++++++++++-----------
 .../create_preinstalled_scripts/paimon/run09.sql   |   1 +
 .../docker-compose/iceberg/spark-defaults.conf     |  40 +++--
 docker/thirdparties/run-thirdparties-docker.sh     |  18 +-
 .../paimon/test_paimon_partition_table.out         |  38 ++---
 .../paimon/test_paimon_partition_table.groovy      |  14 +-
 .../paimon/test_paimon_schema_change.groovy        |  39 +++--
 9 files changed, 189 insertions(+), 179 deletions(-)

diff --git a/docker/thirdparties/docker-compose/iceberg/entrypoint.sh.tpl b/docker/thirdparties/docker-compose/iceberg/entrypoint.sh.tpl
index a722514bbb4..4232b4f3cc1 100644
--- a/docker/thirdparties/docker-compose/iceberg/entrypoint.sh.tpl
+++ b/docker/thirdparties/docker-compose/iceberg/entrypoint.sh.tpl
@@ -25,9 +25,16 @@ done
 
 set -ex
 
-# remove /opt/spark/jars/iceberg-aws-bundle-1.5.0.jar\:/opt/spark/jars/iceberg-spark-runtime-3.5_2.12-1.5.0.jar
-rm /opt/spark/jars/iceberg-aws-bundle-1.5.0.jar
-rm /opt/spark/jars/iceberg-spark-runtime-3.5_2.12-1.5.0.jar
+mkdir -p /opt/spark/events
+
+for f in /opt/spark/sbin/*; do
+  ln -s $f /usr/local/bin/$(basename $f)
+done
+
+for f in /opt/spark/bin/*; do
+  ln -s $f /usr/local/bin/$(basename $f)
+done
+
 
 start-master.sh -p 7077
 start-worker.sh spark://doris--spark-iceberg:7077
@@ -54,7 +61,6 @@ END_TIME2=$(date +%s)
 EXECUTION_TIME2=$((END_TIME2 - START_TIME2))
 echo "Script paimon total: {} executed in $EXECUTION_TIME2 seconds"
 
-
 START_TIME3=$(date +%s)
 find /mnt/scripts/create_preinstalled_scripts/iceberg_load -name '*.sql' | sed 's|^|source |' | sed 's|$|;|'> iceberg_load_total.sql
 spark-sql --master spark://doris--spark-iceberg:7077 --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions -f iceberg_load_total.sql 
diff --git a/docker/thirdparties/docker-compose/iceberg/iceberg.yaml.tpl b/docker/thirdparties/docker-compose/iceberg/iceberg.yaml.tpl
index bb86c5742ba..83c1ee6d031 100644
--- a/docker/thirdparties/docker-compose/iceberg/iceberg.yaml.tpl
+++ b/docker/thirdparties/docker-compose/iceberg/iceberg.yaml.tpl
@@ -20,7 +20,7 @@ version: "3"
 services:
 
   spark-iceberg:
-    image: tabulario/spark-iceberg:3.5.1_1.5.0
+    image: apache/spark:4.0.0
     container_name: doris--spark-iceberg
     hostname: doris--spark-iceberg
     depends_on:
@@ -29,20 +29,20 @@ services:
       mc:
         condition: service_completed_successfully
     volumes:
-      - ./data/output/spark-warehouse:/home/iceberg/warehouse
-      - ./data/output/spark-notebooks:/home/iceberg/notebooks/notebooks
+      - ./data/output/spark-warehouse:/opt/spark/warehouse
       - ./data:/mnt/data
       - ./scripts:/mnt/scripts
       - ./spark-defaults.conf:/opt/spark/conf/spark-defaults.conf
-      - ./data/input/jars/paimon-spark-3.5-1.0.1.jar:/opt/spark/jars/paimon-spark-3.5-1.0.1.jar
-      - ./data/input/jars/paimon-s3-1.0.1.jar:/opt/spark/jars/paimon-s3-1.0.1.jar
-      - ./data/input/jars/iceberg-aws-bundle-1.10.0.jar:/opt/spark/jars/iceberg-aws-bundle-1.10.0.jar
-      - ./data/input/jars/iceberg-spark-runtime-3.5_2.12-1.10.0.jar:/opt/spark/jars/iceberg-spark-runtime-3.5_2.12-1.10.0.jar
+      - ./data/input/jars/iceberg-aws-bundle-1.10.1.jar:/opt/spark/jars/iceberg-aws-bundle-1.10.1.jar
+      - ./data/input/jars/iceberg-spark-runtime-4.0_2.13-1.10.1.jar:/opt/spark/jars/iceberg-spark-runtime-4.0_2.13-1.10.1.jar
+      - ./data/input/jars/paimon-s3-1.3.1.jar:/opt/spark/jars/paimon-s3-1.3.1.jar
+      - ./data/input/jars/paimon-spark-4.0-1.3.1.jar:/opt/spark/jars/paimon-spark-4.0-1.3.1.jar
     environment:
       - AWS_ACCESS_KEY_ID=admin
       - AWS_SECRET_ACCESS_KEY=password
       - AWS_REGION=us-east-1
     entrypoint: /bin/sh /mnt/scripts/entrypoint.sh
+    user: root
     networks:
       - doris--iceberg
     healthcheck:
diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/create_preinstalled_scripts/paimon/run02.sql b/docker/thirdparties/docker-compose/iceberg/scripts/create_preinstalled_scripts/paimon/run02.sql
index 1d199a2bec8..a8024a8b660 100644
--- a/docker/thirdparties/docker-compose/iceberg/scripts/create_preinstalled_scripts/paimon/run02.sql
+++ b/docker/thirdparties/docker-compose/iceberg/scripts/create_preinstalled_scripts/paimon/run02.sql
@@ -4,102 +4,100 @@ create database if not exists test_paimon_schema_change;
 
 use test_paimon_schema_change;
 
-CREATE TABLE sc_orc_pk (
-    id INT,
-    name STRING,
-    age INT
-) USING paimon
-TBLPROPERTIES ('primary-key' = 'id', "file.format" = "orc",'deletion-vectors.enabled' = 'true');
-
-INSERT INTO sc_orc_pk (id, name, age) VALUES (1, 'Alice', 30), (2, 'Bob', 25);
-INSERT INTO sc_orc_pk (id, name, age) VALUES (3, 'Charlie', 28);
-ALTER TABLE sc_orc_pk ADD COLUMNS (city STRING);
-INSERT INTO sc_orc_pk (id, name, age, city) VALUES (4, 'Charlie', 28, 'New York');
-INSERT INTO sc_orc_pk (id, name, age, city) VALUES (5, 'David', 32, 'Los Angeles');
-ALTER TABLE sc_orc_pk RENAME COLUMN name TO full_name;
-INSERT INTO sc_orc_pk (id, full_name, age, city) VALUES (6, 'David', 35, 'Los Angeles');
-INSERT INTO sc_orc_pk (id, full_name, age, city) VALUES (7, 'Eve', 27, 'San Francisco');
-ALTER TABLE sc_orc_pk DROP COLUMN age;
-INSERT INTO sc_orc_pk (id, full_name, city) VALUES (8, 'Eve', 'San Francisco');
-INSERT INTO sc_orc_pk (id, full_name, city) VALUES (9, 'Frank', 'Chicago');
-ALTER TABLE sc_orc_pk CHANGE COLUMN id id BIGINT;
-INSERT INTO sc_orc_pk (id, full_name, city) VALUES (10000000000, 'Frank', 'Chicago');
-INSERT INTO sc_orc_pk (id, full_name, city) VALUES (10, 'Grace', 'Seattle');
-
-ALTER TABLE sc_orc_pk ADD COLUMN salary DECIMAL(10,2) FIRST;
-INSERT INTO sc_orc_pk (id, full_name, city, salary) VALUES (11, 'Grace', 'Seattle', 5000.00);
-INSERT INTO sc_orc_pk (id, full_name, city, salary) VALUES (12, 'Heidi', 'Boston', 6000.00);
-
-ALTER TABLE sc_orc_pk RENAME COLUMN city TO location;
-INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (13, 'Heidi', 'Boston', 6000.00);
-INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (14, 'Ivan', 'Miami', 7000.00);
-
-ALTER TABLE sc_orc_pk CHANGE COLUMN salary salary DECIMAL(12,2);
-INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (15, 'Ivan', 'Miami', 7000.00);
-INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (16, 'Judy', 'Denver', 8000.00);
-
-ALTER TABLE sc_orc_pk ALTER COLUMN salary AFTER location;
-INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (17, 'Stm', 'ttttt', 8000.00);
-INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (18, 'Ken', 'Austin', 9000.00);
-
-ALTER TABLE sc_orc_pk ALTER COLUMN full_name FIRST;
-INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (19, 'AAAA', 'BBBB', 9000.00);
-INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (20, 'Laura', 'Portland', 10000.00);
-
-
-
-
-
-CREATE TABLE sc_parquet_pk (
-    id INT,
-    name STRING,
-    age INT
-) USING paimon
-TBLPROPERTIES ('primary-key' = 'id',"file.format" = "parquet",'deletion-vectors.enabled' = 'true');
-
-INSERT INTO sc_parquet_pk (id, name, age) VALUES (1, 'Alice', 30), (2, 'Bob', 25);
-INSERT INTO sc_parquet_pk (id, name, age) VALUES (3, 'Charlie', 28);
-
-ALTER TABLE sc_parquet_pk ADD COLUMNS (city STRING);
-INSERT INTO sc_parquet_pk (id, name, age, city) VALUES (3, 'Charlie', 28, 'New York');
-INSERT INTO sc_parquet_pk (id, name, age, city) VALUES (4, 'David', 32, 'Los Angeles');
-
-ALTER TABLE sc_parquet_pk RENAME COLUMN name TO full_name;
-INSERT INTO sc_parquet_pk (id, full_name, age, city) VALUES (4, 'David', 35, 'Los Angeles');
-INSERT INTO sc_parquet_pk (id, full_name, age, city) VALUES (5, 'Eve', 27, 'San Francisco');
-
-ALTER TABLE sc_parquet_pk DROP COLUMN age;
-INSERT INTO sc_parquet_pk (id, full_name, city) VALUES (5, 'Eve', 'San Francisco');
-INSERT INTO sc_parquet_pk (id, full_name, city) VALUES (6, 'Frank', 'Chicago');
-
-ALTER TABLE sc_parquet_pk CHANGE COLUMN id id BIGINT;
-INSERT INTO sc_parquet_pk (id, full_name, city) VALUES (10000000000, 'Frank', 'Chicago');
-INSERT INTO sc_parquet_pk (id, full_name, city) VALUES (7, 'Grace', 'Seattle');
-
-ALTER TABLE sc_parquet_pk ADD COLUMN salary DECIMAL(10,2) FIRST;
-INSERT INTO sc_parquet_pk (id, full_name, city, salary) VALUES (6, 'Grace', 'Seattle', 5000.00);
-INSERT INTO sc_parquet_pk (id, full_name, city, salary) VALUES (8, 'Heidi', 'Boston', 6000.00);
-
-ALTER TABLE sc_parquet_pk RENAME COLUMN city TO location;
-INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (7, 'Heidi', 'Boston', 6000.00);
-INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (9, 'Ivan', 'Miami', 7000.00);
-
-ALTER TABLE sc_parquet_pk CHANGE COLUMN salary salary DECIMAL(12,2);
-INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (8, 'Ivan', 'Miami', 7000.00);
-INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (10, 'Judy', 'Denver', 8000.00);
-
-ALTER TABLE sc_parquet_pk ALTER COLUMN salary AFTER location;
-INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (9, 'Stm', 'ttttt', 8000.00);
-INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (11, 'Ken', 'Austin', 9000.00);
-
-ALTER TABLE sc_parquet_pk ALTER COLUMN full_name FIRST;
-INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (10, 'AAAA', 'BBBB', 9000.00);
-INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (12, 'Laura', 'Portland', 10000.00);
-
-
-
-
-
+-- paimon 1.3 : org.apache.spark.sql.execution.QueryExecutionException: java.lang.UnsupportedOperationException: Cannot update primary key
+-- https://github.com/apache/incubator-paimon/pull/6264
+
+-- CREATE TABLE sc_orc_pk (
+--     id INT,
+--     name STRING,
+--     age INT
+-- ) USING paimon
+-- TBLPROPERTIES ('primary-key' = 'id', "file.format" = "orc",'deletion-vectors.enabled' = 'true');
+
+-- INSERT INTO sc_orc_pk (id, name, age) VALUES (1, 'Alice', 30), (2, 'Bob', 25);
+-- INSERT INTO sc_orc_pk (id, name, age) VALUES (3, 'Charlie', 28);
+-- ALTER TABLE sc_orc_pk ADD COLUMNS (city STRING);
+-- INSERT INTO sc_orc_pk (id, name, age, city) VALUES (4, 'Charlie', 28, 'New York');
+-- INSERT INTO sc_orc_pk (id, name, age, city) VALUES (5, 'David', 32, 'Los Angeles');
+-- ALTER TABLE sc_orc_pk RENAME COLUMN name TO full_name;
+-- INSERT INTO sc_orc_pk (id, full_name, age, city) VALUES (6, 'David', 35, 'Los Angeles');
+-- INSERT INTO sc_orc_pk (id, full_name, age, city) VALUES (7, 'Eve', 27, 'San Francisco');
+-- ALTER TABLE sc_orc_pk DROP COLUMN age;
+-- INSERT INTO sc_orc_pk (id, full_name, city) VALUES (8, 'Eve', 'San Francisco');
+-- INSERT INTO sc_orc_pk (id, full_name, city) VALUES (9, 'Frank', 'Chicago');
+-- ALTER TABLE sc_orc_pk CHANGE COLUMN id id BIGINT;
+-- INSERT INTO sc_orc_pk (id, full_name, city) VALUES (10000000000, 'Frank', 'Chicago');
+-- INSERT INTO sc_orc_pk (id, full_name, city) VALUES (10, 'Grace', 'Seattle');
+
+-- ALTER TABLE sc_orc_pk ADD COLUMN salary DECIMAL(10,2) FIRST;
+-- INSERT INTO sc_orc_pk (id, full_name, city, salary) VALUES (11, 'Grace', 'Seattle', 5000.00);
+-- INSERT INTO sc_orc_pk (id, full_name, city, salary) VALUES (12, 'Heidi', 'Boston', 6000.00);
+
+-- ALTER TABLE sc_orc_pk RENAME COLUMN city TO location;
+-- INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (13, 'Heidi', 'Boston', 6000.00);
+-- INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (14, 'Ivan', 'Miami', 7000.00);
+
+-- ALTER TABLE sc_orc_pk CHANGE COLUMN salary salary DECIMAL(12,2);
+-- INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (15, 'Ivan', 'Miami', 7000.00);
+-- INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (16, 'Judy', 'Denver', 8000.00);
+
+-- ALTER TABLE sc_orc_pk ALTER COLUMN salary AFTER location;
+-- INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (17, 'Stm', 'ttttt', 8000.00);
+-- INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (18, 'Ken', 'Austin', 9000.00);
+
+-- ALTER TABLE sc_orc_pk ALTER COLUMN full_name FIRST;
+-- INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (19, 'AAAA', 'BBBB', 9000.00);
+-- INSERT INTO sc_orc_pk (id, full_name, location, salary) VALUES (20, 'Laura', 'Portland', 10000.00);
+
+
+
+
+
+-- CREATE TABLE sc_parquet_pk (
+--     id INT,
+--     name STRING,
+--     age INT
+-- ) USING paimon
+-- TBLPROPERTIES ('primary-key' = 'id', "file.format" = "parquet",'deletion-vectors.enabled' = 'true');
+
+-- INSERT INTO sc_parquet_pk (id, name, age) VALUES (1, 'Alice', 30), (2, 'Bob', 25);
+-- INSERT INTO sc_parquet_pk (id, name, age) VALUES (3, 'Charlie', 28);
+
+-- ALTER TABLE sc_parquet_pk ADD COLUMNS (city STRING);
+-- INSERT INTO sc_parquet_pk (id, name, age, city) VALUES (3, 'Charlie', 28, 'New York');
+-- INSERT INTO sc_parquet_pk (id, name, age, city) VALUES (4, 'David', 32, 'Los Angeles');
+
+-- ALTER TABLE sc_parquet_pk RENAME COLUMN name TO full_name;
+-- INSERT INTO sc_parquet_pk (id, full_name, age, city) VALUES (4, 'David', 35, 'Los Angeles');
+-- INSERT INTO sc_parquet_pk (id, full_name, age, city) VALUES (5, 'Eve', 27, 'San Francisco');
+
+-- ALTER TABLE sc_parquet_pk DROP COLUMN age;
+-- INSERT INTO sc_parquet_pk (id, full_name, city) VALUES (5, 'Eve', 'San Francisco');
+-- INSERT INTO sc_parquet_pk (id, full_name, city) VALUES (6, 'Frank', 'Chicago');
+
+-- ALTER TABLE sc_parquet_pk CHANGE COLUMN id id BIGINT;
+-- INSERT INTO sc_parquet_pk (id, full_name, city) VALUES (10000000000, 'Frank', 'Chicago');
+-- INSERT INTO sc_parquet_pk (id, full_name, city) VALUES (7, 'Grace', 'Seattle');
+
+-- ALTER TABLE sc_parquet_pk ADD COLUMN salary DECIMAL(10,2) FIRST;
+-- INSERT INTO sc_parquet_pk (id, full_name, city, salary) VALUES (6, 'Grace', 'Seattle', 5000.00);
+-- INSERT INTO sc_parquet_pk (id, full_name, city, salary) VALUES (8, 'Heidi', 'Boston', 6000.00);
+
+-- ALTER TABLE sc_parquet_pk RENAME COLUMN city TO location;
+-- INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (7, 'Heidi', 'Boston', 6000.00);
+-- INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (9, 'Ivan', 'Miami', 7000.00);
+
+-- ALTER TABLE sc_parquet_pk CHANGE COLUMN salary salary DECIMAL(12,2);
+-- INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (8, 'Ivan', 'Miami', 7000.00);
+-- INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (10, 'Judy', 'Denver', 8000.00);
+
+-- ALTER TABLE sc_parquet_pk ALTER COLUMN salary AFTER location;
+-- INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (9, 'Stm', 'ttttt', 8000.00);
+-- INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (11, 'Ken', 'Austin', 9000.00);
+
+-- ALTER TABLE sc_parquet_pk ALTER COLUMN full_name FIRST;
+-- INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (10, 'AAAA', 'BBBB', 9000.00);
+-- INSERT INTO sc_parquet_pk (id, full_name, location, salary) VALUES (12, 'Laura', 'Portland', 10000.00);
 
 
 
diff --git a/docker/thirdparties/docker-compose/iceberg/scripts/create_preinstalled_scripts/paimon/run09.sql b/docker/thirdparties/docker-compose/iceberg/scripts/create_preinstalled_scripts/paimon/run09.sql
index 2c3998c4d90..6e1f71cdb0a 100644
--- a/docker/thirdparties/docker-compose/iceberg/scripts/create_preinstalled_scripts/paimon/run09.sql
+++ b/docker/thirdparties/docker-compose/iceberg/scripts/create_preinstalled_scripts/paimon/run09.sql
@@ -141,4 +141,5 @@ INSERT INTO test_paimon_time_travel_db.tbl_time_travel_expired_tag VALUES
 CALL sys.create_tag(table => 'test_paimon_time_travel_db.tbl_time_travel_expired_tag', tag => 't_exp_3', snapshot => 3);
 
 -- expire snapshots so tag points to expired snapshot file
+ ALTER TABLE test_paimon_time_travel_db.tbl_time_travel_expired_tag SET TBLPROPERTIES ('snapshot.num-retained.min' = '1');
 CALL sys.expire_snapshots(table => 'test_paimon_time_travel_db.tbl_time_travel_expired_tag', retain_max => 1);
diff --git a/docker/thirdparties/docker-compose/iceberg/spark-defaults.conf b/docker/thirdparties/docker-compose/iceberg/spark-defaults.conf
index a49dc2173b7..8336a2afcf8 100644
--- a/docker/thirdparties/docker-compose/iceberg/spark-defaults.conf
+++ b/docker/thirdparties/docker-compose/iceberg/spark-defaults.conf
@@ -19,23 +19,27 @@
 # This is useful for setting default environmental settings.
 
 # Example:
-spark.sql.session.timeZone             Asia/Shanghai
-spark.sql.catalog.demo                 org.apache.iceberg.spark.SparkCatalog
-spark.sql.catalog.demo.type            rest
-spark.sql.catalog.demo.uri             http://rest:8181
-spark.sql.catalog.demo.io-impl         org.apache.iceberg.aws.s3.S3FileIO
-spark.sql.catalog.demo.warehouse       s3://warehouse/wh/
-spark.sql.catalog.demo.s3.endpoint     http://minio:9000
-spark.sql.defaultCatalog               demo
-spark.eventLog.enabled                 true
-spark.eventLog.dir                     /home/iceberg/spark-events
-spark.history.fs.logDirectory          /home/iceberg/spark-events
-spark.sql.catalogImplementation        in-memory
+spark.sql.session.timeZone                        Asia/Shanghai
+spark.sql.catalog.demo                            org.apache.iceberg.spark.SparkCatalog
+spark.sql.catalog.demo.type                       rest
+spark.sql.catalog.demo.uri                        http://rest:8181
+spark.sql.catalog.demo.io-impl                    org.apache.iceberg.aws.s3.S3FileIO
+spark.sql.catalog.demo.warehouse                  s3://warehouse/wh/
+spark.sql.catalog.demo.s3.endpoint                http://minio:9000
+spark.sql.catalog.demo.s3.path-style-access       true
+spark.sql.defaultCatalog                          demo
+
+
+spark.eventLog.enabled                            true
+spark.eventLog.dir                                /opt/spark/events
+spark.history.fs.logDirectory                     /opt/spark/events
+
+spark.sql.catalogImplementation                   in-memory
 
 # paimon
-spark.sql.catalog.paimon               org.apache.paimon.spark.SparkCatalog
-spark.sql.catalog.paimon.warehouse     s3://warehouse/wh
-spark.sql.catalog.paimon.s3.endpoint   http://minio:9000
-spark.sql.catalog.paimon.s3.access-key admin
-spark.sql.catalog.paimon.s3.secret-key password
-spark.sql.catalog.paimon.s3.region     us-east-1
\ No newline at end of file
+spark.sql.catalog.paimon                          org.apache.paimon.spark.SparkCatalog
+spark.sql.catalog.paimon.warehouse                s3://warehouse/wh
+spark.sql.catalog.paimon.s3.endpoint              http://minio:9000
+spark.sql.catalog.paimon.s3.access-key            admin
+spark.sql.catalog.paimon.s3.secret-key            password
+spark.sql.catalog.paimon.s3.region                us-east-1
\ No newline at end of file
diff --git a/docker/thirdparties/run-thirdparties-docker.sh b/docker/thirdparties/run-thirdparties-docker.sh
index cd8540d5d32..12e2e9b7ba4 100755
--- a/docker/thirdparties/run-thirdparties-docker.sh
+++ b/docker/thirdparties/run-thirdparties-docker.sh
@@ -584,27 +584,15 @@ start_iceberg() {
             echo "${ICEBERG_DIR}/data does not exist"
             cd "${ICEBERG_DIR}" \
             && rm -f iceberg_data*.zip \
-            && wget -P "${ROOT}"/docker-compose/iceberg https://"${s3BucketName}.${s3Endpoint}"/regression/datalake/pipeline_data/iceberg_data_paimon_101.zip \
-            && sudo unzip iceberg_data_paimon_101.zip \
+            && wget -P "${ROOT}"/docker-compose/iceberg https://"${s3BucketName}.${s3Endpoint}"/regression/datalake/pipeline_data/iceberg_data_spark40.zip \
+            && sudo unzip iceberg_data_spark40.zip \
             && sudo mv iceberg_data data \
-            && sudo rm -rf iceberg_data_paimon_101.zip
+            && sudo rm -rf iceberg_data_spark40.zip
             cd -
         else
             echo "${ICEBERG_DIR}/data exist, continue !"
         fi
 
-        if [[ ! -f "${ICEBERG_DIR}/data/input/jars/iceberg-aws-bundle-1.10.0.jar" ]]; then
-            echo "iceberg 1.10.0 jars does not exist"
-            cd "${ICEBERG_DIR}" \
-            && rm -f iceberg_1_10_0*.jars.tar.gz\
-            && wget -P "${ROOT}"/docker-compose/iceberg https://"${s3BucketName}.${s3Endpoint}"/regression/datalake/pipeline_data/iceberg_1_10_0.jars.tar.gz \
-            && sudo tar xzvf iceberg_1_10_0.jars.tar.gz -C "data/input/jars" \
-            && sudo rm -rf iceberg_1_10_0.jars.tar.gz
-            cd -
-        else 
-            echo "iceberg 1.10.0 jars exist, continue !"
-        fi
-
         sudo docker compose -f "${ROOT}"/docker-compose/iceberg/iceberg.yaml --env-file "${ROOT}"/docker-compose/iceberg/iceberg.env up -d --wait
     fi
 }
diff --git a/regression-test/data/external_table_p0/paimon/test_paimon_partition_table.out b/regression-test/data/external_table_p0/paimon/test_paimon_partition_table.out
index f5a5af51ad0..3230ad01841 100644
--- a/regression-test/data/external_table_p0/paimon/test_paimon_partition_table.out
+++ b/regression-test/data/external_table_p0/paimon/test_paimon_partition_table.out
@@ -1,30 +1,30 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !show_partition_sales_by_date --
-sale_date=2024-01-15	sale_date	2	2051	1
-sale_date=2024-01-16	sale_date	2	3899	2
-sale_date=2024-01-17	sale_date	1	1959	1
+sale_date=2024-01-15	sale_date	2	2216	1
+sale_date=2024-01-16	sale_date	2	4217	2
+sale_date=2024-01-17	sale_date	1	2118	1
 
 -- !show_partition_sales_by_region --
-region=China-Beijing	region	1	2240	1
-region=Japan-Tokyo	region	1	2233	1
-region=USA-California	region	1	2268	1
+region=China-Beijing	region	1	2425	1
+region=Japan-Tokyo	region	1	2420	1
+region=USA-California	region	1	2454	1
 
 -- !show_partition_sales_by_date_region --
-sale_date=2024-01-15/region=China-Beijing	sale_date,region	1	2426	1
-sale_date=2024-01-15/region=Japan-Tokyo	sale_date,region	1	2412	1
-sale_date=2024-01-15/region=USA-California	sale_date,region	1	2454	1
-sale_date=2024-01-16/region=China-Shanghai	sale_date,region	1	2433	1
-sale_date=2024-01-16/region=Japan-Osaka	sale_date,region	1	2433	1
-sale_date=2024-01-16/region=USA-New York	sale_date,region	1	2440	1
+sale_date=2024-01-15/region=China-Beijing	sale_date,region	1	2627	1
+sale_date=2024-01-15/region=Japan-Tokyo	sale_date,region	1	2614	1
+sale_date=2024-01-15/region=USA-California	sale_date,region	1	2655	1
+sale_date=2024-01-16/region=China-Shanghai	sale_date,region	1	2636	1
+sale_date=2024-01-16/region=Japan-Osaka	sale_date,region	1	2636	1
+sale_date=2024-01-16/region=USA-New York	sale_date,region	1	2643	1
 
 -- !show_partition_events_by_hour --
-hour_partition=2024-01-15-10	hour_partition	2	2181	1
-hour_partition=2024-01-15-11	hour_partition	2	4170	2
-hour_partition=2024-01-15-14	hour_partition	2	2190	1
+hour_partition=2024-01-15-10	hour_partition	2	2361	1
+hour_partition=2024-01-15-11	hour_partition	2	4515	2
+hour_partition=2024-01-15-14	hour_partition	2	2371	1
 
 -- !show_partition_logs_by_date_hierarchy --
-year_val=2024/month_val=1/day_val=15	year_val,month_val,day_val	2	2628	1
-year_val=2024/month_val=1/day_val=16	year_val,month_val,day_val	2	4918	2
-year_val=2024/month_val=1/day_val=17	year_val,month_val,day_val	1	2456	1
-year_val=2024/month_val=2/day_val=1	year_val,month_val,day_val	1	2485	1
+year_val=2024/month_val=1/day_val=15	year_val,month_val,day_val	2	2841	1
+year_val=2024/month_val=1/day_val=16	year_val,month_val,day_val	2	5323	2
+year_val=2024/month_val=1/day_val=17	year_val,month_val,day_val	1	2658	1
+year_val=2024/month_val=2/day_val=1	year_val,month_val,day_val	1	2686	1
 
diff --git a/regression-test/suites/external_table_p0/paimon/test_paimon_partition_table.groovy b/regression-test/suites/external_table_p0/paimon/test_paimon_partition_table.groovy
index f1073977b1a..b17eb3cb934 100644
--- a/regression-test/suites/external_table_p0/paimon/test_paimon_partition_table.groovy
+++ b/regression-test/suites/external_table_p0/paimon/test_paimon_partition_table.groovy
@@ -52,8 +52,18 @@ suite("test_paimon_partition_table", "p0,external,doris,external_docker,external
            String baseQueryName = "qt_show_partition_${tableName}"
            "$baseQueryName" """show partitions from ${tableName};"""
        }
-
-
+/*
+mysql> show partitions from sales_by_date;
++----------------------+--------------+-------------+-----------------+-----------+
+| Partition            | PartitionKey | RecordCount | FileSizeInBytes | FileCount |
++----------------------+--------------+-------------+-----------------+-----------+
+| sale_date=2024-01-15 | sale_date    | 2           | 2051            | 1         |
+| sale_date=2024-01-16 | sale_date    | 2           | 3899            | 2         |
+| sale_date=2024-01-17 | sale_date    | 1           | 1959            | 1         |
++----------------------+--------------+-------------+-----------------+-----------+
+3 rows in set (0.01 sec)
+FileSizeInBytes maybe changed, when upgrade paimon version.
+*/
     } finally {
          sql """drop catalog if exists ${catalog_name}"""
     }
diff --git a/regression-test/suites/external_table_p0/paimon/test_paimon_schema_change.groovy b/regression-test/suites/external_table_p0/paimon/test_paimon_schema_change.groovy
index 04a7200d6c2..139d34eb491 100644
--- a/regression-test/suites/external_table_p0/paimon/test_paimon_schema_change.groovy
+++ b/regression-test/suites/external_table_p0/paimon/test_paimon_schema_change.groovy
@@ -41,25 +41,28 @@ suite("test_paimon_schema_change", "p0,external,doris,external_docker,external_d
         sql """use test_paimon_schema_change """ 
 
 
-        qt_desc_1  """ desc sc_parquet_pk """
 
-        qt_parquet_pk_1  """SELECT * FROM sc_parquet_pk order by id;"""
-        qt_parquet_pk_2  """SELECT full_name, location FROM sc_parquet_pk order by id;"""
-        qt_parquet_pk_3  """SELECT * FROM sc_parquet_pk WHERE salary IS  NULL order by id;"""
-        qt_parquet_pk_4  """SELECT * FROM sc_parquet_pk WHERE salary IS NOT NULL order by id;"""
-        qt_parquet_pk_5  """SELECT * FROM sc_parquet_pk WHERE location = 'New York' OR location = 'Los Angeles'  order by id;"""
-        qt_parquet_pk_6  """SELECT * FROM sc_parquet_pk WHERE id > 5 order by id;"""
-        qt_parquet_pk_7  """SELECT * FROM sc_parquet_pk WHERE salary > 6000 order by id;"""
 
+        // paimon 1.3 : org.apache.spark.sql.execution.QueryExecutionException: java.lang.UnsupportedOperationException: Cannot update primary key
+        // https://github.com/apache/incubator-paimon/pull/6264
+        // qt_desc_1  """ desc sc_parquet_pk """
+        // qt_parquet_pk_1  """SELECT * FROM sc_parquet_pk order by id;"""
+        // qt_parquet_pk_2  """SELECT full_name, location FROM sc_parquet_pk order by id;"""
+        // qt_parquet_pk_3  """SELECT * FROM sc_parquet_pk WHERE salary IS  NULL order by id;"""
+        // qt_parquet_pk_4  """SELECT * FROM sc_parquet_pk WHERE salary IS NOT NULL order by id;"""
+        // qt_parquet_pk_5  """SELECT * FROM sc_parquet_pk WHERE location = 'New York' OR location = 'Los Angeles'  order by id;"""
+        // qt_parquet_pk_6  """SELECT * FROM sc_parquet_pk WHERE id > 5 order by id;"""
+        // qt_parquet_pk_7  """SELECT * FROM sc_parquet_pk WHERE salary > 6000 order by id;"""
 
-        qt_desc_2 """ desc sc_orc_pk """
-        qt_orc_pk_1 """SELECT * FROM sc_orc_pk order by id;"""
-        qt_orc_pk_2 """SELECT full_name, location FROM sc_orc_pk order by id;"""
-        qt_orc_pk_3 """SELECT * FROM sc_orc_pk WHERE salary IS  NULL order by id;"""
-        qt_orc_pk_4 """SELECT * FROM sc_orc_pk WHERE salary IS NOT NULL order by id;"""
-        qt_orc_pk_5 """SELECT * FROM sc_orc_pk WHERE location = 'New York' OR location = 'Los Angeles'  order by id;"""
-        qt_orc_pk_6 """SELECT * FROM sc_orc_pk WHERE id > 5 order by id;"""
-        qt_orc_pk_7 """SELECT * FROM sc_orc_pk WHERE salary > 6000 order by id;"""
+
+        // qt_desc_2 """ desc sc_orc_pk """
+        // qt_orc_pk_1 """SELECT * FROM sc_orc_pk order by id;"""
+        // qt_orc_pk_2 """SELECT full_name, location FROM sc_orc_pk order by id;"""
+        // qt_orc_pk_3 """SELECT * FROM sc_orc_pk WHERE salary IS  NULL order by id;"""
+        // qt_orc_pk_4 """SELECT * FROM sc_orc_pk WHERE salary IS NOT NULL order by id;"""
+        // qt_orc_pk_5 """SELECT * FROM sc_orc_pk WHERE location = 'New York' OR location = 'Los Angeles'  order by id;"""
+        // qt_orc_pk_6 """SELECT * FROM sc_orc_pk WHERE id > 5 order by id;"""
+        // qt_orc_pk_7 """SELECT * FROM sc_orc_pk WHERE salary > 6000 order by id;"""
 
 
 
@@ -76,8 +79,8 @@ suite("test_paimon_schema_change", "p0,external,doris,external_docker,external_d
         qt_orc_3  """select * from sc_orc where k <= 1;"""
 
 
-        qt_count_1 """ select count(*) from sc_parquet_pk;"""
-        qt_count_2 """ select count(*) from sc_orc_pk;"""
+        // qt_count_1 """ select count(*) from sc_parquet_pk;"""
+        // qt_count_2 """ select count(*) from sc_orc_pk;"""
         qt_count_3 """ select count(*) from sc_parquet;"""
         qt_count_4 """ select count(*) from sc_orc;"""
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org