Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La fragmentation des variants améliore les performances des requêtes sur les colonnes VARIANT en enregistrant les champs fréquemment présents sous forme de colonnes distinctes dans les fichiers Parquet sous-jacents. La fragmentation réduit les E/S nécessaires à la lecture des champs et améliore la compression grâce à un format en colonnes plutôt qu’à un bloc binaire.
Consultez VARIANT le type, la prise en charge des types variant pour Apache Iceberg et Delta Lake et les données de variante de requête.
Requirements
Databricks Runtime 17.3 ou version ultérieure est nécessaire pour lire et écrire des tables VARIANT déchiquetées. Pour des performances de requête optimales avec la collecte de statistiques sur les variantes et le data skipping, Databricks recommande Databricks Runtime 18.1 ou version supérieure.
Activer le déchiquetage
À partir de Databricks Runtime 17.3, le déchiquetage est automatiquement activé lorsque vous créez une nouvelle table avec une ou plusieurs colonnes VARIANT à l’aide de CREATE TABLE.
CREATE OR REPLACE TABLE et ALTER TABLE n’activent pas automatiquement le déchiquetage. Cela évite de modifier le mode de fragmentation des tables existantes et des charges de travail.
Pour les tables existantes, vous pouvez choisir manuellement de déchiqueter en définissant la enableVariantShredding propriété de table sur TRUE et en la désengageant en définissant la propriété sur FALSE:
Lac Delta
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'true');
Table Iceberg
ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'true');
Vérifiez que le déchiquetage est activé en vérifiant que la propriété de la table enableVariantShredding est définie sur true.
Désactiver le partitionnement horizontal pour une table spécifique
Pour exclure une table spécifique du déchiquetage lors des écritures ultérieures, définissez la propriété de table enableVariantShredding sur FALSE:
Lac Delta
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'false');
Table Iceberg
ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'false');
Supprimer le partitionnement d’une table existante
Pour supprimer le déchiquetage sur une table existante, supprimez la fonctionnalité avec la ALTER TABLE commande. Cette opération réécrit également les données fragmentées VARIANT en place au format défragmenté VARIANT et définit la propriété de la table enableVariantShredding sur faux.
ALTER TABLE my_table DROP FEATURE "variantShredding";
Limitations
- La fragmentation des données introduit une surcharge sur les écritures.
- L’activation du déchiquetage ne convertit pas automatiquement les données existantes
VARIANTdans une table. Elle s’applique uniquement aux données écrites une fois la fonctionnalité activée. Pour réécrire des données existantesVARIANT, utilisezREORG TABLE my_table APPLY (SHRED VARIANT). - Le fragmentation s’applique aux colonnes
VARIANTde niveau supérieur ou aux champsVARIANTdans les structs, à l’exclusion des donnéesVARIANTstockées dans des tableaux ou des cartes.