Usar un clúster de Iceberg con Trino - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Usar un clúster de Iceberg con Trino

A partir de la EMR versión 6.6.0 de Amazon, puede usar Iceberg con su clúster de Trino.

En este tutorial, utilizará el AWS CLI para trabajar con Iceberg en un clúster de Amazon EMR Trino. Para usar la consola para crear un clúster con Iceberg instalado, siga los pasos de Cómo crear un lago de datos de Apache Iceberg con Amazon Athena, EMR AWS Amazon y Glue.

Crear un clúster de Iceberg

Para usar Iceberg en Amazon EMR con AWS CLI, primero cree un clúster con los siguientes pasos. Para obtener información sobre cómo especificar la clasificación de Iceberg mediante la AWS CLI, consulte AWS CLI Cuando crees un clúster, proporciona una configuración mediante o. Proporcione una configuración mediante Java SDK al crear un clúster

  1. Cree un archivo iceberg.properties y establezca un valor para el catálogo que elija. Por ejemplo, si quiere usar el metaalmacén de Hive como catálogo, su archivo debe tener el siguiente contenido.

    connector.name=iceberg hive.metastore.uri=thrift://localhost:9083

    Si quieres usar el catálogo de datos de AWS Glue como almacén, el archivo debe tener el siguiente contenido.

    connector.name=iceberg iceberg.catalog.type=glue
  2. Cree una acción de arranque que copie iceberg.properties desde Amazon S3 a /etc/trino/conf/catalog/iceberg.properties, como en el siguiente ejemplo. Para obtener más información sobre las acciones de arranque, consulte Crear acciones de arranque para instalar software adicional.

    set -ex sudo aws s3 cp s3://DOC-EXAMPLE-BUCKET/iceberg.properties /etc/trino/conf/catalog/iceberg.properties
  3. Cree un clúster con la siguiente configuración y sustituya el nombre de la clave y la ruta del script de las acciones de arranque del ejemplo por los suyos propios.

    aws emr create-cluster --release-label emr-6.7.0 \ --applications Name=Trino \ --region us-east-1 \ --name My_Trino_Iceberg_Cluster \ --bootstrap-actions '[{"Path":"s3://DOC-EXAMPLE-BUCKET","Name":"Add iceberg.properties"}]' \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=c3.4xlarge InstanceGroupType=CORE,InstanceCount=3,InstanceType=c3.4xlarge \ --use-default-roles \ --ec2-attributes KeyName=<key-name>

Inicializar una sesión de Trino para Iceberg

Para iniciar una sesión de Trino, ejecute el siguiente comando.

trino-cli --catalog iceberg

Escribir en una tabla de Iceberg

Crea y escribe en tu tabla con los siguientes SQL comandos.

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://DOC-EXAMPLE-BUCKET/<prefix>') trino> INSERT INTO default.iceberg_table VALUES (1,'a','c1'), (2,'b','c2'), (3,'c','c3');

Leer desde una tabla para Iceberg

Para leer desde su tabla de Iceberg, ejecute el siguiente comando.

trino> SELECT * from default.iceberg_table;