View a markdown version of this page

Gunakan cluster gunung es 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 gunung es 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 di Mem bangun danau data Apache Iceberg menggunakan Amazon Athena, Amazon EMR, dan Glue. AWS

Buat cluster gunung es

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 Menyediakan konfigurasi menggunakan AWS CLI saat Anda membuat klaster atauSediakan konfigurasi menggunakan Java SDK ketika Anda membuat sebuah klaster.

  1. Buat configurations.json file dengan konten berikut. Misalnya, jika Anda ingin menggunakan Hive metastore 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 Katalog Data AWS Glue sebagai toko Anda, file Anda harus memiliki konten berikut.

    [ { "Classification": "trino-connector-iceberg", "Properties": { "connector.name": "iceberg", "iceberg.catalog.type": "glue" } } ]

    Dimulai dengan Amazon EMR 7.7.0, sertakan properti fs.native-s3.enabled=true

    [ { "Classification": "trino-connector-iceberg", "Properties": { "connector.name": "iceberg", "iceberg.catalog.type": "glue", "fs.native-s3.enabled": "true" } } ]
  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 gunung es

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 Iceberg

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 Trino Iceberg untuk Iceberg secara asli. Trino membutuhkan Iceberg v0.11, jadi kami sarankan meluncurkan cluster Amazon EMR untuk Trino terpisah dari cluster Spark dan termasuk Iceberg v0.11 pada cluster itu.

  • Saat menggunakan AWS Glue sebagai katalog untuk Iceberg, pastikan bahwa database tempat Anda membuat tabel ada di AWS Glue. 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.