Aller au contenu principal

Prise en charge des types variants pour Apache Iceberg et Delta Lake

info

Aperçu

Cette fonctionnalité est en aperçu public.

Le type de données VARIANT stocke les données semi-structurées. Pour des exemples d'utilisation de VARIANT, consultez Query variant data.

Toutes les tables Apache Iceberg v3 incluent la prise en charge du type VARIANT. Consultez Utiliser les fonctionnalités v3 d'Apache Iceberg. Pour les tables Delta Lake, vous devez activer explicitement la prise en charge du type VARIANT.

Vous devez utiliser Databricks Runtime 15.4 LTS ou une version ultérieure pour lire et écrire des tables avec la prise en charge des variantes activée.

Activer la variante sur une table

Pour activer le variant, créez une nouvelle table avec une colonne de type VARIANT :

SQL
CREATE TABLE table_name (variant_column VARIANT)

Pour activer la prise en charge de VARIANT sur une table existante, utilisez la syntaxe suivante :

SQL
ALTER TABLE table_name SET TBLPROPERTIES('delta.feature.variantType-preview' = 'supported')
remarque

L'activation de la variante met à niveau le protocole d'écriture de la table. Cela pourrait affecter la compatibilité avec les clients Delta Lake externes. Voir Compatibilité des fonctionnalités et protocoles de Delta Lake.

Limitations

La prise en charge du type de données VARIANT présente les limitations suivantes :

  • Vous ne pouvez pas utiliser de colonnes de variante pour partitionner une table.
  • Une colonne variante ne peut pas être une clé de clustering pour une table.
  • Vous ne pouvez pas utiliser de colonnes variantes avec les clauses GROUP BY ou ORDER BY.
  • Vous ne pouvez pas appeler DISTINCT sur une colonne de type variant.
  • Vous ne pouvez pas utiliser les opérateurs d'ensemble SQL (INTERSECT, UNION, EXCEPT) avec les colonnes de type variant.
  • Vous ne pouvez pas utiliser la génération de colonnes pour créer une colonne variante.
  • Les colonnes variantes ne prennent pas en charge les statistiques minValues ou maxValues.
  • Une colonne variante ne peut pas contenir une valeur supérieure à 128 Mio (16 Mio dans Databricks Runtime 17.1 et versions antérieures).