Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
Important
Tablas Iceberg administradas por Unity Catalog están disponibles en versión preliminar pública en Databricks Runtime 16.4 LTS y versiones posteriores. Las tablas extranjeras de Iceberg también están en Public Preview en Databricks Runtime 16.4 LTS y superior.
Las características de Iceberg v3 están disponibles en Beta en Databricks Runtime 17.3 y versiones posteriores. Consulte Uso de las características de Apache Iceberg v3.
Apache Iceberg es un formato de tabla de código abierto para cargas de trabajo de análisis. Admite características como la evolución del esquema, el viaje en el tiempo y la creación de particiones ocultas. Al igual que Delta Lake, Iceberg proporciona una capa de abstracción que permite transacciones ACID en datos almacenados en almacenamiento de objetos. Azure Databricks admite tablas de Iceberg que usan el formato de archivo Apache Parquet. Iceberg mantiene la atomicidad y la coherencia escribiendo nuevos archivos de metadatos para cada cambio de tabla.
Un catálogo de Iceberg es la capa de nivel más alto de la arquitectura de la tabla Iceberg. Controla las operaciones como crear, quitar y cambiar el nombre de las tablas. Su responsabilidad principal es proporcionar los metadatos actuales cuando se carga una tabla. Azure Databricks admite las tablas de Iceberg administradas por:
- Catálogo de Unity
- Catálogos externos, como AWS Glue, Metastore de Hive o Snowflake Horizon Catalog
Todas las tablas de Iceberg de Azure Databricks siguen la especificación abierta del formato de tabla de Iceberg. Consulte las especificaciones de la tabla de Iceberg.
Creación de tablas de Iceberg en el catálogo de Unity
Las tablas Iceberg creadas en el catálogo de Unity son tablas de Iceberg administradas. Puede crear estas tablas mediante:
- Databricks Runtime o Databricks SQL
- Motores externos compatibles con Alias que admiten la API de catálogo REST de Alias, como Apache Spark, Flink, Trino o Kafka. Consulte Acceso a las tablas de Azure Databricks desde clientes de Apache Iceberg.
Las tablas de Iceberg administradas están totalmente integradas con las características de la plataforma de Azure Databricks. Unity Catalog administra tareas de ciclo de vida como la expiración de instantáneas y la compactación de archivos en estas tablas. Las tablas Iceberg administradas también admiten clustering líquido, que mejora el rendimiento de las consultas. La optimización predictiva automatiza estas tareas para reducir los costos de almacenamiento y mejorar la velocidad de las consultas. Databricks recomienda usar los clientes de Iceberg 1.9.2 y versiones posteriores para leer y escribir en el catálogo de Unity.
Leer tablas de Iceberg administradas por otros catálogos
Una tabla externa de Iceberg es una tabla de Iceberg administrada por un catálogo fuera del catálogo de Unity. El catálogo externo almacena los metadatos actuales de la tabla. Azure Databricks utiliza Lakehouse Federation para recuperar metadatos y leer la tabla desde el almacenamiento de objetos.
Las tablas externas de Iceberg son de solo lectura en Azure Databricks y tienen compatibilidad limitada con la plataforma.
Obtener acceso a tablas de Iceberg mediante sistemas externos
Puede tener acceso a todas las tablas de Iceberg en el catálogo de Unity mediante la API de catálogo REST de Iceberg. Esta API abierta admite operaciones de lectura y escritura desde motores de Iceberg externos en diferentes lenguajes y plataformas. Consulte Acceso a las tablas de Azure Databricks desde clientes de Apache Iceberg.
El catálogo REST admite el provisionamiento de credenciales, que entrega credenciales temporales a mecanismos externos para acceder al almacenamiento subyacente. Para obtener más información, consulte Venta de credenciales de Unity Catalog para el acceso a sistemas externos.
Limitaciones de la tabla de Iceberg
Las limitaciones siguientes se aplican a las tablas de Iceberg en Azure Databricks y están sujetas a cambios:
- Las tablas de Iceberg solo admiten el formato de archivo Apache Parquet.
- Azure Databricks es compatible con las versiones 1, 2 y 3 de la especificación de Iceberg.
- Para ver las limitaciones específicas de la versión 3, consulte Limitaciones.
- No se admiten las eliminaciones por posición ni las eliminaciones basadas en igualdad de Iceberg V2. En su lugar, Azure Databricks admite vectores de eliminación de Iceberg v3 para eliminaciones de nivel de fila.
- La ramificación y el etiquetado no son compatibles. Solo se puede acceder a la rama principal cuando se leen tablas Iceberg externas.
- Particionado:
- La evolución de particiones solo se admite en tablas Iceberg administradas cuando se interactúa desde motores Iceberg externos.
- Las tablas Iceberg extranjeras no admiten la evolución de particiones.
- No se admite la creación de particiones por
BINARYtipo.
- No se admiten los siguientes tipos de datos:
UUIDFixed(L)TIME- Anidado
STRUCTcon campos obligatorios
- Tablas Iceberg gestionadas no admiten restricciones de clave principal o clave externa.
Limitaciones de las tablas Iceberg administradas
Las limitaciones siguientes se aplican específicamente a las tablas de Iceberg administradas:
- No se admiten filtros de fila ni máscaras de columna.
- No se admite la búsqueda vectorial.
- Iceberg no admite el feed de cambios de datos. Como resultado, no se admite el procesamiento incremental al leer las tablas Iceberg administradas como origen para:
- Vistas materializadas y tablas de streaming
- Generación de perfiles de datos
- Tablas en línea
- Lakebase
- Clasificación de datos
- Las tablas de Iceberg administradas solo se pueden crear si la optimización predictiva está habilitada para el mantenimiento de tablas.
- El catálogo de Unity administra las siguientes propiedades de tabla y no se puede establecer manualmente:
write.location-provider.implwrite.data.pathwrite.metadata.pathwrite.format.defaultwrite.delete.format.default
- No se admite el códec de compresión para cambiar la compresión de tabla. Todas las tablas usan Zstd de forma predeterminada.
- No se admite la creación de particiones por expresiones (por ejemplo,
years(),months(),days(),hours(), ).bucket()
Limitaciones de las tablas Iceberg externas
Las siguientes limitaciones se aplican específicamente a las tablas de Iceberg externas:
- El viaje en el tiempo solo se admite para las instantáneas de Iceberg que se han leído anteriormente en Azure Databricks (es decir, instantáneas en las que se ejecutó una
SELECTinstrucción). - El uso de funciones de transformación de cubos para la creación de particiones de Iceberg puede degradar el rendimiento de las consultas cuando se usan filtros condicionales.
- Los productos de almacenamiento en la nube como Amazon S3 no están integrados con tablas Iceberg externas. El acceso a las tablas de Iceberg externas en Azure Databricks puede restaurar los datos archivados en niveles de almacenamiento de menor costo.
- En clústeres de modo de acceso dedicado, las operaciones de lectura y
REFRESH FOREIGN TABLEen tablas Iceberg requierenALL PRIVILEGES.