All Products
Search
Document Center

Data Lake Formation:Akses tabel DLF Iceberg menggunakan Java API

Last Updated:Jul 16, 2026

Topik ini menjelaskan cara mengakses katalog REST DLF Iceberg menggunakan Apache Iceberg Java API open-source, Spark, dan Flink. Anda dapat mengelola metadata tabel serta membaca dan menulis tabel Iceberg melalui protokol REST Iceberg standar dengan penandatanganan AWS SigV4. Bidang data menggunakan S3FileIO standar komunitas untuk terhubung langsung ke titik akhir OSS yang kompatibel dengan S3.

Prasyarat

  • Lingkungan runtime Anda harus menggunakan JDK 17 atau versi yang lebih baru (diperlukan oleh Iceberg 1.11.0).

  • Tambahkan dependensi komunitas Apache Iceberg berikut (versi 1.11.0) ke proyek Maven Anda. Semua dependensi tersedia di Maven Central:

<dependencies>
    <dependency>
        <groupId>org.apache.iceberg</groupId>
        <artifactId>iceberg-core</artifactId>
        <version>1.11.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.iceberg</groupId>
        <artifactId>iceberg-aws</artifactId>
        <version>1.11.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.iceberg</groupId>
        <artifactId>iceberg-aws-bundle</artifactId>
        <version>1.11.0</version>
    </dependency>
</dependencies>
Catatan

Jika Anda perlu membaca dan menulis data Parquet secara langsung menggunakan Java API (tanpa mesin komputasi), tambahkan juga dependensi iceberg-data, iceberg-parquet, iceberg-orc, parquet-hadoop, dan hadoop-common.

Terhubung menggunakan Java API

Gunakan kelas RESTCatalog standar komunitas untuk terhubung ke katalog REST DLF Iceberg. Teruskan parameter konfigurasi berikut saat melakukan inisialisasi:

Map<String, String> props = new HashMap<>();
props.put("uri", "http://cn-hangzhou-vpc.dlf.aliyuncs.com/iceberg");
props.put("warehouse", "iceberg_table_test");
props.put("rest.auth.type", "sigv4");
props.put("rest.auth.sigv4.delegate-auth-type", "none");
props.put("rest.signing-region", "cn-hangzhou");
props.put("rest.signing-name", "DlfNext");
props.put("rest.access-key-id", "xxx");
props.put("rest.secret-access-key", "yyy");
props.put("io-impl", "org.apache.iceberg.aws.s3.S3FileIO");
RESTCatalog icebergCatalog = new RESTCatalog();
icebergCatalog.initialize(catalogName, props);

Parameter konfigurasi

Parameter

Deskripsi

Contoh

uri

Titik akhir DLF Iceberg REST Catalog (dapat diakses dalam VPC). Formatnya adalah http://<region>-vpc.dlf.aliyuncs.com/iceberg. Untuk daftar lengkap titik akhir layanan berdasarkan wilayah, lihat Endpoints and public network access.

http://cn-hangzhou-vpc.dlf.aliyuncs.com/iceberg

warehouse

Nama katalog DLF.

iceberg_test

rest.auth.type

Jenis otentikasi. Atur ke sigv4.

sigv4

rest.auth.sigv4.delegate-auth-type

Jenis otentikasi delegasi. Atur ke none.

none

rest.signing-region

ID Wilayah instans DLF.

cn-hangzhou

rest.signing-name

Nama layanan penandatanganan. Atur ke DlfNext.

DlfNext

rest.access-key-id

ID AccessKey untuk mengakses DLF.

rest.secret-access-key

Rahasia AccessKey untuk mengakses DLF.

io-impl

Kelas implementasi File IO. Menggunakan S3FileIO standar komunitas. Atur ke org.apache.iceberg.aws.s3.S3FileIO.

org.apache.iceberg.aws.s3.S3FileIO

Akses dengan Apache Spark

Apache Spark open-source dapat membaca dan menulis tabel DLF Iceberg secara langsung menggunakan runtime komunitas Iceberg. Katalog berkomunikasi melalui protokol REST Iceberg standar dengan penandatanganan AWS SigV4, sedangkan bidang data menggunakan S3FileIO komunitas untuk terhubung ke titik akhir OSS yang kompatibel dengan S3 melalui API yang kompatibel dengan S3. Semua dependensi tersedia di Maven Central.

Jalankan Spark SQL

spark-sql \
  --packages org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.11.0,org.apache.iceberg:iceberg-aws-bundle:1.11.0 \
  --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
  --conf spark.sql.catalog.dlf=org.apache.iceberg.spark.SparkCatalog \
  --conf spark.sql.catalog.dlf.type=rest \
  --conf spark.sql.catalog.dlf.uri=http://cn-hangzhou-vpc.dlf.aliyuncs.com/iceberg \
  --conf spark.sql.catalog.dlf.warehouse=iceberg_table_test \
  --conf spark.sql.catalog.dlf.rest.auth.type=sigv4 \
  --conf spark.sql.catalog.dlf.rest.auth.sigv4.delegate-auth-type=none \
  --conf spark.sql.catalog.dlf.rest.signing-region=cn-hangzhou \
  --conf spark.sql.catalog.dlf.rest.signing-name=DlfNext \
  --conf spark.sql.catalog.dlf.rest.access-key-id=xxx \
  --conf spark.sql.catalog.dlf.rest.secret-access-key=yyy \
  --conf spark.sql.catalog.dlf.io-impl=org.apache.iceberg.aws.s3.S3FileIO

Baca dan tulis dengan Spark SQL

Setelah dikonfigurasi, gunakan Spark SQL standar untuk membaca dan menulis tabel Iceberg:

CREATE DATABASE IF NOT EXISTS dlf.demo_db;
CREATE TABLE dlf.demo_db.demo_tbl (id BIGINT, name STRING) USING iceberg;
INSERT INTO dlf.demo_db.demo_tbl VALUES (1, 'hello'), (2, 'world');
SELECT * FROM dlf.demo_db.demo_tbl;

Akses dengan Apache Flink

Apache Flink open-source menggunakan runtime komunitas Iceberg untuk mengakses tabel DLF Iceberg. Letakkan iceberg-flink-runtime-1.20-1.11.0.jar dan iceberg-aws-bundle-1.11.0.jar (keduanya merupakan artefak komunitas dari Maven Central) di direktori lib/ instalasi Flink Anda, lalu daftarkan katalog di SQL Client.

Daftarkan katalog

CREATE CATALOG dlf WITH (
  'type' = 'iceberg',
  'catalog-type' = 'rest',
  'uri' = 'http://cn-hangzhou-vpc.dlf.aliyuncs.com/iceberg',
  'warehouse' = 'iceberg_table_test',
  'rest.auth.type' = 'sigv4',
  'rest.auth.sigv4.delegate-auth-type' = 'none',
  'rest.signing-region' = 'cn-hangzhou',
  'rest.signing-name' = 'DlfNext',
  'rest.access-key-id' = 'xxx',
  'rest.secret-access-key' = 'yyy',
  'io-impl' = 'org.apache.iceberg.aws.s3.S3FileIO'
);

Baca dan tulis dengan Flink SQL

USE CATALOG dlf;
CREATE DATABASE IF NOT EXISTS demo_db;
CREATE TABLE demo_db.demo_tbl (id BIGINT, name STRING);
INSERT INTO demo_db.demo_tbl VALUES (1, 'hello'), (2, 'world');
SELECT * FROM demo_db.demo_tbl;