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, utilizzi To work with Iceberg su un cluster AWS CLI 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 il AWS CLI, crea innanzitutto un cluster con i seguenti passaggi. Per informazioni su come specificare la classificazione Iceberg utilizzando, consulta o. AWS CLIFornisci 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.jsonfile 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" } } ]A partire da Amazon EMR 7.7.0, includi la proprietà
fs.native-s3.enabled=true[ { "Classification": "trino-connector-iceberg", "Properties": { "connector.name": "iceberg", "iceberg.catalog.type": "glue", "fs.native-s3.enabled": "true" } } ] -
Crea un cluster con la seguente configurazione, sostituendo il percorso e il nome della chiave del bucket Amazon S3 di esempio 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 Glue. AWS Se stai utilizzando servizi come AWS Lake Formation e non riesci a caricare il catalogo, assicurati di avere l'accesso corretto al servizio per eseguire il comando.
L'integrazione con Iceberg Glue non funziona con il catalogo Redshift Managed Storage.