Utilizzo di un cluster Delta Lake con Trino - Amazon EMR

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à.

Utilizzo di un cluster Delta Lake con Trino

Con Amazon EMR rilascio 6.9.0 e successivi, puoi utilizzare Delta Lake con il cluster Trino.

In questo tutorial, useremo il AWS CLI per lavorare con Delta Lake sul cluster Amazon EMR Trino.

Creazione di un cluster Delta Lake
  1. Crea un file, delta_configurations.json, e imposta i valori per il catalogo scelto. Ad esempio, se desideri utilizzare il metastore Hive come catalogo, il file deve avere il seguente contenuto:

    [{"Classification":"delta-defaults", "Properties":{"delta.enabled":"true"}}, {"Classification":"trino-connector-delta", "Properties":{"hive.metastore.uri":"thrift://localhost:9083"}}]

    Se desideri utilizzare il AWS Glue Catalog come negozio, il file deve avere il seguente contenuto:

    [{"Classification":"delta-defaults", "Properties":{"delta.enabled":"true"}}, {"Classification":"trino-connector-delta", "Properties":{"hive.metastore":"glue"}}]
  2. Crea un cluster con la seguente configurazione, sostituendo example Amazon S3 bucket path e subnet ID con i tuoi valori.

    aws emr create-cluster --release-label emr-6.9.0 --applications Name=Trino --configurations file://delta_configurations.json --region us-east-1 --name My_Spark_Delta_Cluster --log-uri s3://DOC-EXAMPLE-BUCKET/ --instance-type m5.xlarge --instance-count 2 --service-role EMR_DefaultRole_V2 --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0

Inizializzazione della sessione Trino per Delta Lake

Per inizializzare una sessione Trino, esegui il comando seguente

trino-cli --catalog delta

Scrittura in una tabella Delta Lake

Crea e scrivi nella tabella utilizzando i comandi SQL seguenti:

SHOW SCHEMAS; CREATE TABLE default.delta_table (id int, data varchar, category varchar) WITH ( location = 's3://DOC-EXAMPLE-BUCKET/<prefix>'); INSERT INTO default.delta_table VALUES (1,'a','c1'), (2,'b','c2'), (3,'c','c3');

Lettura da una tabella Delta Lake

Leggi dalla tabella con il comando SQL seguente:

SELECT * from default.delta_table;