Aller au contenu principal

Utiliser le découpage de variante pour optimiser les performances

info

Bêta

Cette fonctionnalité est en Bêta. Les administrateurs du Workspace peuvent contrôler l'accès à cette fonctionnalité à partir de la page Previews . Consultez Gérer les aperçus Databricks.

Le déchiquetage de variantes améliore les performances des query sur les colonnes VARIANT en stockant les champs couramment rencontrés comme des colonnes distinctes dans les fichiers Parquet sous-jacents. Le découpage réduit les E/S nécessaires pour lire les champs et améliore la compression en utilisant un format de colonne au lieu d'un blob binaire.

Voir le VARIANT type, la prise en charge du type Variant pour Apache Iceberg et Delta Lake, et l’ interrogation des données Variant.

Exigences

Databricks Runtime 17.2 ou une version ultérieure est requis pour lire et écrire des tables VARIANT déchiquetées.

Activer le déchiquetage

Les administrateurs du Workspace peuvent activer le shredding depuis la page Aperçus du workspace. Voir Gérer les aperçus Databricks.

Aucune modification de code n'est requise pour lire ou écrire des données VARIANT avec déchiquetage.

Après avoir activé la fonctionnalité pour votre Workspace, le déchiquetage est automatiquement activé sur les tables pour les scénarios suivants :

  • CREATE TABLE avec une ou plusieurs colonnes VARIANT.
  • CREATE AND REPLACE TABLE avec une ou plusieurs colonnes VARIANT.
  • ALTER TABLE lors de l'ajout d'une ou plusieurs colonnes VARIANT.

Pour les tables existantes, vous pouvez activer manuellement le déchiquetage en définissant la propriété de table enableVariantShredding sur true et le désactiver en définissant la propriété sur false, à condition que le déchiquetage soit activé au niveau du Workspace :

SQL
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'true');

Vérifiez que le fractionnement est activé en vérifiant que la propriété de table enableVariantShredding est définie sur true.

Se désinscrire du déchiquetage pour une table spécifique

Si vous activez la version Beta de déchiquetage pour votre Workspace, mais que vous souhaitez exclure une table spécifique, définissez la propriété de table enableVariantShredding sur false:

SQL
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'false');

Supprimer le déchiquetage d'une table existante

Pour supprimer le déchiquetage sur une table existante, supprimez la fonctionnalité avec la commande ALTER TABLE. Cette opération réécrit également les données fragmentées VARIANT en place vers le format non fragmenté VARIANT et définit la propriété de table enableVariantShredding sur faux.

SQL
ALTER TABLE my_table DROP FEATURE "variantShredding-preview";

Limitations

  • Le déchiquetage des données introduit un certain surcoût sur les écritures.
  • L'activation du déchiquetage ne convertit pas automatiquement les données VARIANT existantes dans une table. Cela s'applique uniquement aux données écrites après l'activation de la fonctionnalité. Pour réécrire les données VARIANT existantes, utilisez REORG TABLE my_table APPLY (SHRED VARIANT).
  • Le déchiquetage s'applique aux colonnes de niveau supérieur VARIANT ou aux champs VARIANT dans les structures, à l'exclusion des données VARIANT stockées dans des tableaux ou des mappages.