Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengakses tabel Amazon S3 dengan Katalog Tabel Amazon S3 untuk Apache Iceberg
Anda dapat mengakses tabel S3 dari mesin kueri sumber terbuka seperti Apache Spark dengan menggunakan Katalog Tabel Amazon S3 untuk Apache Iceberg katalog klien. Katalog Tabel Amazon S3 untuk Apache Iceberg adalah perpustakaan sumber terbuka yang diselenggarakan oleh AWS Labs. Ia bekerja dengan menerjemahkan Apache Iceberg operasi di mesin kueri Anda (seperti penemuan tabel, pembaruan metadata, dan penambahan atau penghapusan tabel) ke dalam operasi API Tabel S3.
Katalog Tabel Amazon S3 untuk Apache Iceberg didistribusikan sebagai Maven JAR disebuts3-tables-catalog-for-iceberg.jar
. Anda dapat membangun katalog klien JAR dari AWS Labs GitHubrepositori
Menggunakan Katalog Tabel Amazon S3 untuk Apache Iceberg dengan Apache Spark
Anda dapat menggunakan Katalog Tabel Amazon S3 untuk Apache Iceberg katalog klien untuk terhubung ke tabel dari aplikasi sumber terbuka saat Anda menginisialisasi Spark sesi. Dalam konfigurasi sesi Anda, Anda menentukan Iceberg dan dependensi Amazon S3, dan buat katalog khusus yang menggunakan keranjang tabel Anda sebagai gudang metadata.
Prasyarat
Identitas IAM dengan akses ke keranjang tabel dan tindakan Tabel S3 Anda. Untuk informasi selengkapnya, lihat Manajemen akses untuk Tabel S3.
Untuk menginisialisasi a Spark sesi menggunakan Katalog Tabel Amazon S3 untuk Apache Iceberg
-
Inisialisasi Spark menggunakan perintah berikut. Untuk menggunakan perintah, ganti ganti Katalog Tabel Amazon S3 untuk Apache Iceberg
version number
dengan versi terbaru dari AWS Labs GitHub repositori, dan table bucket ARN
dengan ARN ember meja Anda sendiri.spark-shell \ --packages org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.6.1,software.amazon.s3tables:s3-tables-catalog-for-iceberg-runtime:
0.1.4
\ --conf spark.sql.catalog.s3tablesbucket
=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.s3tablesbucket
.catalog-impl=software.amazon.s3tables.iceberg.S3TablesCatalog \ --conf spark.sql.catalog.s3tablesbucket
.warehouse=arn:aws:s3tables:us-east-1
:111122223333
:bucket/amzn-s3-demo-table-bucket
\ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
Menanyakan tabel S3 dengan Spark SQL
Penggunaan Spark, Anda dapat menjalankan operasi DQL, DML, dan DDL pada tabel S3. Saat Anda menanyakan tabel, Anda menggunakan nama tabel yang sepenuhnya memenuhi syarat, termasuk nama katalog sesi mengikuti pola ini:
CatalogName
.NamespaceName
.TableName
Contoh kueri berikut menunjukkan beberapa cara Anda dapat berinteraksi dengan tabel S3. Untuk menggunakan contoh kueri ini di mesin kueri Anda, ganti user input placeholder
nilainya dengan milik Anda sendiri.
Untuk menanyakan tabel dengan Spark
-
Buat namespace
spark.sql(" CREATE NAMESPACE IF NOT EXISTS
s3tablesbucket
.my_namespace
") -
Membuat tabel
spark.sql(" CREATE TABLE IF NOT EXISTS
s3tablesbucket
.my_namespace
.`my_table
` ( id INT, name STRING, value INT ) USING iceberg ") -
Mengkueri Tabel
spark.sql(" SELECT * FROM
s3tablesbucket
.my_namespace
.`my_table
` ").show() -
Masukkan data ke dalam tabel
spark.sql( """ INSERT INTO
s3tablesbucket
.my_namespace
.my_table
VALUES (1, 'ABC', 100), (2, 'XYZ', 200) """) -
Memuat file data yang ada ke dalam tabel
Baca data ke Spark.
val data_file_location = "Path such as S3 URI to data file" val data_file = spark.read.parquet(
data_file_location
)Tulis data ke dalam tabel Gunung Es.
data_file.writeTo("
s3tablesbucket
.my_namespace
.my_table
").using("Iceberg").tableProperty ("format-version", "2").createOrReplace()