Sdílet prostřednictvím


REORG TABLE

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 11.3 LTS a vyšší

Přeuspořádejte tabulku Delta Lake tak, že přepíšete soubory pro vymazání obnovitelně odstraněných dat, jako jsou například data sloupců vynechaná funkcí ALTER TABLE DROP COLUMN.

Syntaxe

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

Pro verze Databricks Runtime starší než 15.4 TABLE je povinné klíčové slovo.

Poznámka:

  • APPLY (PURGE) Přepíše pouze soubory, které obsahují obnovitelně odstraněná data.
  • APPLY (UPGRADE) může přepsat všechny soubory.
  • REORG TABLE je idempotentní, což znamená, že pokud se spustí dvakrát ve stejné datové sadě, druhé spuštění nemá žádný vliv.
  • Po spuštění APPLY (PURGE)můžou ve starých souborech stále existovat obnovitelně odstraněná data. Pomocí funkce VAKUA můžete fyzicky odstranit staré soubory.

Parametry

  • table_name

    Identifikuje existující tabulku Delta. Název nesmí obsahovat dočasnou specifikaci ani specifikaci možností.

  • WHEREpredikát

    V případě APPLY (PURGE)přeuspořádá soubory, které odpovídají danému predikátu oddílu. Podporují se pouze filtry zahrnující atributy klíče oddílu.

  • APPLY (PURGE)

    Určuje, že účelem přepsání souboru je vyprázdnit obnovitelně odstraněná data. Viz Odstranění metadat pouze k vynucení přepsání dat.

  • APPLY (UPGRADE UNIFORM ( ICEBERG_COMPAT_VERSION = version ))

    Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 14.3 a vyšší

    Určuje, že účelem přepsání souboru je upgradovat tabulku na danou verzi Icebergu. version musí být buď 1 nebo 2.

Příklady

> 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));