Gunakan cluster Iceberg dengan Trino - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan cluster Iceberg dengan Trino

Dimulai dengan Amazon EMR versi 6.6.0, Anda dapat menggunakan Iceberg dengan cluster Trino Anda.

Dalam tutorial ini, Anda menggunakan AWS CLI untuk bekerja dengan Iceberg di cluster Amazon EMR Trino. Untuk menggunakan konsol untuk membuat cluster dengan Iceberg diinstal, ikuti langkah-langkah dalam Membangun danau data Apache Iceberg menggunakan Amazon Athena, Amazon EMR, dan Glue. AWS

Buat cluster Iceberg

Untuk menggunakan Iceberg di Amazon EMR dengan AWS CLI, pertama buat cluster dengan langkah-langkah berikut. Untuk informasi tentang menentukan klasifikasi Gunung Es menggunakan AWS CLI, lihat atau. Menyediakan konfigurasi menggunakan AWS CLI saat Anda membuat klaster Sediakan konfigurasi menggunakan Java SDK ketika Anda membuat sebuah klaster

  1. Buat configurations.json file dengan konten berikut. Misalnya, jika Anda ingin menggunakan metastore Hive sebagai katalog Anda, file Anda harus memiliki konten berikut.

    [ { "Classification": "trino-connector-iceberg", "Properties": { "connector.name": "iceberg", "hive.metastore.uri": "thrift://localhost:9083" } } ]

    Jika Anda ingin menggunakan AWS Glue Data Catalog sebagai toko Anda, file Anda harus memiliki konten berikut.

    [ { "Classification": "trino-connector-iceberg", "Properties": { "connector.name": "iceberg", "iceberg.catalog.type": "glue" } } ]
  2. Buat cluster dengan konfigurasi berikut, ganti contoh jalur bucket Amazon S3 dan nama kunci dengan milik Anda sendiri.

    aws emr create-cluster --release-label emr-6.7.0 \ --applications Name=Trino \ --region us-east-1 \ --name My_Trino_Iceberg_Cluster \ --log-uri s3://amzn-s3-demo-bucket \ --configurations file://configurations.json \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=c3.4xlarge InstanceGroupType=CORE,InstanceCount=3,InstanceType=c3.4xlarge \ --use-default-roles \ --ec2-attributes KeyName=<key-name>

Inisialisasi sesi Trino untuk Iceberg

Untuk menginisialisasi sesi Trino, jalankan perintah berikut.

trino-cli --catalog iceberg

Menulis ke meja Iceberg

Buat dan tulis ke tabel Anda dengan perintah SQL berikut.

trino> SHOW SCHEMAS; trino> CREATE TABLE default.iceberg_table ( id int, data varchar, category varchar) WITH ( format = 'PARQUET', partitioning = ARRAY['category', 'bucket(id, 16)'], location = 's3://amzn-s3-demo-bucket/<prefix>') trino> INSERT INTO default.iceberg_table VALUES (1,'a','c1'), (2,'b','c2'), (3,'c','c3');

Baca dari tabel untuk Gunung Es

Untuk membaca dari tabel Iceberg Anda, jalankan perintah berikut.

trino> SELECT * from default.iceberg_table;

Pertimbangan untuk menggunakan Iceberg dengan Trino

  • Amazon EMR 6.5 tidak menawarkan dukungan Katalog Gunung Es Trino untuk Iceberg secara asli. Trino membutuhkan Iceberg v0.11, jadi kami sarankan meluncurkan cluster EMR Amazon untuk Trino yang terpisah dari cluster Spark dan termasuk Iceberg v0.11 di cluster itu.

  • Saat menggunakan AWS Glue sebagai katalog untuk Iceberg, pastikan database tempat Anda membuat tabel ada di Glue AWS . Jika Anda menggunakan layanan seperti AWS Lake Formation dan Anda tidak dapat memuat katalog, pastikan Anda memiliki akses yang tepat ke layanan untuk menjalankan perintah.

  • Integrasi Iceberg Glue tidak berfungsi dengan katalog Redshift Managed Storage.