Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizza un cluster Iceberg con Trino
A partire da Amazon EMR versione 6.6.0, puoi utilizzare Iceberg con il cluster Trino.
In questo tutorial, lo utilizzerai AWS CLI per lavorare con Iceberg su un cluster Amazon EMR Trino. Per utilizzare la console per creare un cluster con Iceberg installato, segui la procedura illustrata in Creazione di un data lake Apache Iceberg utilizzando Amazon Athena, Amazon EMR e AWS Glue
Creazione di un cluster Iceberg
Per utilizzare Iceberg su Amazon EMR con AWS CLI, crea innanzitutto un cluster con i seguenti passaggi. Per informazioni su come specificare la classificazione Iceberg utilizzando il AWS CLI, consulta o. Fornisci una configurazione utilizzando AWS CLI quando crei un cluster Fornitura di una configurazione utilizzando l'SDK Java per la creazione di un cluster
-
Crea un
configurations.json
file con il seguente contenuto. Ad esempio, se desideri utilizzare il metastore Hive come catalogo, il file deve avere il seguente contenuto.[ { "Classification": "trino-connector-iceberg", "Properties": { "connector.name": "iceberg", "hive.metastore.uri": "thrift://localhost:9083" } } ]
Se desideri utilizzare il AWS Glue Data Catalog come negozio, il file deve avere il seguente contenuto.
[ { "Classification": "trino-connector-iceberg", "Properties": { "connector.name": "iceberg", "iceberg.catalog.type": "glue" } } ]
-
Crea un cluster con la seguente configurazione, sostituendo il percorso del bucket e il nome chiave di esempio di Amazon S3 con i tuoi.
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>
Inizializzazione di una sessione Trino per Iceberg
Per inizializzare una sessione Trino, esegui il comando riportato di seguito.
trino-cli --catalog iceberg
Scrittura su una tabella Iceberg
Crea e scrivi nella tabella con i comando SQL seguenti.
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');
Leggi da una tabella Iceberg
Per leggere dalla tabella Iceberg, esegui il comando seguente.
trino> SELECT * from default.iceberg_table;
Considerazioni sull'utilizzo di Iceberg con Trino
-
Amazon EMR 6.5 non offre il supporto del Catalogo Trino Iceberg per Iceberg in modo nativo. Trino necessita di Iceberg v0.11, quindi ti consigliamo di avviare un cluster Amazon EMR diverso per Trino dal cluster Spark e di includere Iceberg v0.11 su tale cluster.
-
Quando usi AWS Glue come catalogo per Iceberg, assicurati che il database in cui stai creando una tabella esista in AWS Glue. Se utilizzi servizi come AWS Lake Formation e non riesci a caricare il catalogo, assicurati di avere accesso adeguato al servizio per eseguire il comando.
L'integrazione di Iceberg Glue non funziona con il catalogo Redshift Managed Storage.