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 versión 6.6.0 de Amazon EMR, puede usar Iceberg con su clúster de Trino.
En este tutorial, utilizará el AWS CLI para trabajar con Iceberg en un clúster Trino de Amazon EMR. Para usar la consola para crear un clúster con Iceberg instalado, siga los pasos que se indican en Crear un lago de datos de Apache Iceberg con Amazon Athena, Amazon EMR y AWS Glue
Crear un clúster de Iceberg
Para usar Iceberg en Amazon EMR con AWS CLI el, cree primero 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 o. Proporcione una configuración mediante la opción AWS CLI al crear un clúster Proporcione una configuración mediante el SDK de Java al crear un clúster
-
Cree un
configurations.json
archivo con el siguiente contenido. Por ejemplo, si quiere usar el metaalmacén de Hive como catálogo, su archivo debe tener el siguiente contenido.[ { "Classification": "trino-connector-iceberg", "Properties": { "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.
[ { "Classification": "trino-connector-iceberg", "Properties": { "connector.name": "iceberg", "iceberg.catalog.type": "glue" } } ]
-
Cree un clúster con la siguiente configuración y sustituya la ruta y el nombre de clave del bucket de Amazon S3 de 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 \ --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>
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
Cree la siguiente tabla y escriba en ella con los siguientes comandos de SQL.
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');
Leer desde una tabla para Iceberg
Para leer desde su tabla de Iceberg, ejecute el siguiente comando.
trino> SELECT * from default.iceberg_table;
Consideraciones para el uso de Iceberg con Trino
-
Amazon EMR 6.5 no ofrece compatibilidad nativa con Trino Iceberg Catalog para Iceberg. Trino necesita Iceberg v0.11, por lo que recomendamos lanzar un clúster de Amazon EMR para Trino independiente del clúster de Spark e incluir Iceberg v0.11 en ese clúster.
-
Cuando utilice AWS Glue como catálogo para Iceberg, asegúrese de que la base de datos en la que va a crear la tabla existe en AWS Glue. Si utilizas servicios como estos AWS Lake Formation y no puedes cargar el catálogo, asegúrate de tener el acceso adecuado al servicio para ejecutar el comando.
La integración de Iceberg Glue no funciona con el catálogo de almacenamiento gestionado de Redshift.