Partager via


REORG TABLE

S’applique à : coche marquée oui Databricks SQL coche marquée oui Databricks Runtime 11.3 LTS et versions ultérieures

Réorganisez une table Delta Lake en réécrivant des fichiers pour vider les données supprimées de manière réversible, par exemple les données de colonne supprimées par ALTER TABLE DROP COLUMN.

Syntaxe

REORG [ TABLE ] table_name { [ WHERE predicate ] APPLY ( PURGE ) |
                             APPLY ( UPGRADE UNIFORM ( ICEBERG_COMPAT_VERSION = version ) } )

Pour les versions de Databricks Runtime antérieures à la version 15.4 TABLE est un mot clé obligatoire.

Remarque

  • APPLY (PURGE) réécrit uniquement les fichiers qui contiennent des données supprimées de manière réversible.
  • APPLY (UPGRADE) peut réécrire tous les fichiers.
  • REORG TABLE est idempotent, ce qui signifie que s’il exécuté deux fois sur le même jeu de données, la deuxième exécution n’aura aucun effet.
  • Après avoir exécuté APPLY (PURGE), les données supprimées de manière réversible peuvent toujours exister dans les anciens fichiers. Vous pouvez exécuter VACUUM pour supprimer physiquement les anciens fichiers.

Paramètres

  • table_name

    Identifie une table Delta existante. Le nom ne doit pas inclure de spécification temporelle ou de spécification d’options.

  • WHEREprédicat

    Pour APPLY (PURGE), réorganise les fichiers qui correspondent au prédicat de partition donné. Seuls les filtres impliquant des attributs de clé de partition sont pris en charge.

  • APPLY (PURGE)

    Spécifie que l’objectif de la réécriture des fichiers est de vider les données supprimées de manière réversible. Consultez Supprimer uniquement les métadonnées pour forcer la réécriture des données.

  • APPLY (UPGRADE UNIFORM ( ICEBERG_COMPAT_VERSION = version ))

    S’applique à : coche marquée oui Databricks SQL case marquée oui Databricks Runtime 14.3 et versions ultérieures

    Spécifie que l’objectif de la réécriture de fichier est de mettre à niveau la table vers la version iceberg donnée. version doit être 1 ou 2.

Exemples

> REORG TABLE events APPLY (PURGE);

> REORG TABLE events WHERE date >= '2022-01-01' APPLY (PURGE);

> REORG TABLE events
    WHERE date >= current_timestamp() - INTERVAL '1' DAY
    APPLY (PURGE);

> REORG TABLE events APPLY (UPGRADE UNIFORM(ICEBERG_COMPAT_VERSION=2));