Consulta de tablas de Apache Iceberg
Puede utilizar Athena para hacer consultas de lectura, viajes en el tiempo, escritura y DDL en tablas de Apache Iceberg. Las tablas de Iceberg deben utilizar el formato Apache Parquet para los datos y el Catálogo de AWS Glue para su metastore.
Apache Iceberg
Para más información sobre Apache Iceberg, consulte https://iceberg.apache.org/
Consideraciones y limitaciones
La compatibilidad de Athena con las tablas de Iceberg tiene las siguientes consideraciones y limitaciones:
-
Compatibilidad con la versión de Iceberg: Athena es compatible con la versión 1.4.2 de Apache Iceberg.
-
Tablas de AWS Glue Catalog únicamente: solo las tablas de Iceberg creadas con AWS Glue Catalog basado en las especificaciones definidas por la implementación de Glue Catalog de código abierto
son compatibles con Athena. -
Soporte de bloqueo de tablas de AWS Glue únicamente: a diferencia de la implementación del catálogo Glue de código abierto, que admite el bloqueo personalizado de complementos, Athena admite el bloqueo optimista de AWS Glue únicamente. El uso de Athena para modificar una tabla de Iceberg con cualquier otra implementación de bloqueo provocará posibles pérdidas de datos y la interrupción de transacciones.
-
Formatos de archivo compatibles: la compatibilidad con el formato de archivo Iceberg en Athena depende de la versión del motor de Athena, como se muestra en la siguiente tabla.
-
Metadatos de Iceberg restringidos: Lake Formation no evalúa las tablas de metadatos de Iceberg. Por lo tanto, las tablas de metadatos de Iceberg están restringidas si la tabla base tiene filtros de fila o celda de Lake Formation, o si no cuenta con los permisos necesarios para ver todas las columnas de la tabla base. En estos casos, al consultar las tablas de metadatos de Iceberg
$partitions
,$files
,$manifests
y$snapshots
, se produce el errorAccessDeniedException
. Además, la columna de metadatos$path
está sujeta a las mismas restricciones de Lake Formation y genera un error cuando se selecciona en la consulta. Todas las demás tablas de metadatos se pueden consultar independientemente de los filtros de Lake Formation. Para obtener más información, consulte Tablas de metadatos. Versión del motor Athena Parquet ORC Avro 2 Sí No No 3 Sí Sí Sí -
Tablas Iceberg v2: Athena solo crea y opera con tablas de Iceberg v2. Para ver la diferencia entre las tablas v1 y v2, consulte Cambios de versión de formato
en la documentación de Apache Iceberg. -
Visualización de tipos de hora sin zona horaria: la hora y la marca de tiempo sin tipos de zona horaria se muestran en UTC. Si la zona horaria no se especifica en una expresión de filtro en una columna de hora, se usa UTC.
-
Precisión de los datos relacionados con la marca de tiempo: si bien Iceberg admite una precisión de microsegundos para el tipo de datos de marca de tiempo, Athena solo admite una precisión de milisegundos para las marcas de tiempo tanto en las lecturas como en las escrituras. En el caso de los datos en las columnas relacionadas con la hora que se reescriben durante las operaciones de compactación manual, Athena solo retiene la precisión en milisegundos.
-
Operaciones no admitidas: las siguientes operaciones de Athena no se admiten para las tablas de Iceberg.
-
Vistas: se utiliza
CREATE VIEW
para crear vistas de Athena como se describe en Trabajo con vistas. Si está interesado en utilizar la especificación de vistas de Icebergpara crear vistas, póngase en contacto con athena-feedback@amazon.com . -
Comandos de administración de TTF no compatibles en AWS Lake Formation: si bien puede utilizar Lake Formation a fin de administrar los permisos de acceso de lectura para los formatos de tabla de transacciones (TTF) como Apache Iceberg, Apache Hudi y Linux Foundation Delta Lake, no puede utilizar Lake Formation a fin de administrar los permisos de operaciones como
VACUUM
,MERGE
,UPDATE
oOPTIMIZE
con estos formatos de tabla. Para obtener más información sobre la integración de Lake Formation con Athena, consulte Uso de AWS Lake Formation con Amazon Athena en la Guía para desarrolladores de AWS Lake Formation. -
Partición por campos anidados: no se admite la partición por campos anidados. Si lo intenta, aparecerá el mensaje
NOT_SUPPORTED: No se admite la partición por campos anidados:
column_name
.nested_field_name
. -
No se admite la omisión de objetos de S3 Glacier: si los objetos de la tabla de Apache Iceberg se encuentran en una clase de almacenamiento de Amazon S3 Glacier, establecer la propiedad de la tabla
read_restored_glacier_objects
enfalse
no tendrá ningún efecto.Suponga, por ejemplo, que ejecuta el siguiente comando:
ALTER TABLE
table_name
SET TBLPROPERTIES ('read_restored_glacier_objects' = 'false')En el caso de las tablas de Iceberg y Delta Lake, el comando produce el error
Clave de propiedad de tabla no compatible: read_restored_glacier_objects
. En el caso de las tablas de Hudi, el comandoALTER TABLE
no produce ningún error, pero los objetos de Amazon S3 Glacier siguen sin omitirse. Al ejecutar consultasSELECT
después del comandoALTER TABLE
, se siguen devolviendo todos los objetos.
Si desea que Athena admita una característica en particular, envíe sus comentarios a athena-feedback@amazon.com
Temas
- Creación de tablas de Iceberg
- Consulta de los datos de las tablas de Iceberg
- Hacer consultas de viaje en el tiempo y de viaje de versión
- Actualización de los datos de las tablas de Iceberg
- Administración de tablas de Iceberg
- Evolución del esquema de tabla de Iceberg
- Otras operaciones de DDL en tablas de Iceberg
- Optimización de las tablas de Iceberg
- Tipos de datos compatibles con las tablas de Iceberg en Athena
- Recursos adicionales de