Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La descomposición de variantes mejora el rendimiento de las consultas en las columnas VARIANT al almacenar los campos que aparecen con frecuencia en columnas independientes en los archivos Parquet subyacentes. La fragmentación reduce la E/S necesaria para leer campos y mejora la compresión mediante el uso de un formato de columnas en lugar de un blob binario.
Consulte VARIANTtipo, Compatibilidad del tipo variant con Apache Iceberg y Delta Lake y Consultar datos variant.
Requirements
Se requiere Databricks Runtime 17.3 o posterior para leer y escribir tablas VARIANT descompuestas. Para obtener un rendimiento óptimo de las consultas con la recopilación de estadísticas de variantes y el omisión de datos, Databricks recomienda Databricks Runtime 18.1 o superior.
Habilitación de la fragmentación
A partir de Databricks Runtime 17.3, la fragmentación se habilita automáticamente al crear una nueva tabla con una o varias VARIANT columnas mediante CREATE TABLE.
CREATE OR REPLACE TABLE y ALTER TABLE no habilitan automáticamente la fragmentación. Esto evita cambiar el comportamiento de fragmentación de las tablas y cargas de trabajo existentes.
Para las tablas existentes, puede activar manualmente la fragmentación estableciendo la propiedad de tabla enableVariantShredding en TRUE y desactivarla estableciendo la propiedad en FALSE:
Lago Delta
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'true');
Tabla de Iceberg
ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'true');
Compruebe que el desmenuzamiento está habilitado verificando que la propiedad de la tabla enableVariantShredding está establecida en true.
No participar en la fragmentación de una tabla específica
Para excluir una tabla específica de la fragmentación en escrituras futuras, establezca la propiedad de tabla enableVariantShredding en FALSE:
Lago Delta
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'false');
Tabla de Iceberg
ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'false');
Eliminación de la fragmentación de una tabla existente
Para quitar la segmentación en una tabla existente, elimine la función utilizando el comando ALTER TABLE. Esta operación también vuelve a escribir los datos fragmentados VARIANT en el formato sin fragmentar VARIANT en su lugar y establece la propiedad de la tabla enableVariantShredding en falso.
ALTER TABLE my_table DROP FEATURE "variantShredding";
Limitations
- La fragmentación de datos introduce cierta sobrecarga en las escrituras.
- La habilitación de la fragmentación no convierte automáticamente los datos existentes
VARIANTen una tabla. Solo se aplica a los datos escritos después de habilitar la característica. Para volver a escribir los datos existentesVARIANT, useREORG TABLE my_table APPLY (SHRED VARIANT). - La fragmentación se aplica a columnas de nivel superior
VARIANTo camposVARIANTen estructuras, excepto losVARIANTdatos almacenados dentro de matrices o mapas.