Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik:
Databricks SQL
Databricks Runtime
OPTIMIZE optimalizálja a Delta Lake-adatok elrendezését. Optimalizálhatja az adatok egy részhalmazát, vagy oszlop szerint csoportosíthatja az adatokat. Ha nem adja meg a rendezést, és a tábla nem használ folyékony fürtözést, a Delta Lake elvégzi a dobozok csomagolásának optimalizálását.
Szintaxis
OPTIMIZE table_name [FULL] [WHERE predicate]
[ZORDER BY (col_name1 [, ...] ) ]
Feljegyzés
A dobozcsomagolás optimalizálása idempotens: ha kétszer futtatja ugyanazon az adatkészleten, a második futtatásnak nincs hatása. Egyenletesen kiegyensúlyozott adatfájlokat hoz létre a lemez méretétől függően, de nem feltétlenül a fájlonkénti uplok számát. A két mérték leggyakrabban korrelál.
A Z-Ordering nem idempotens, hanem növekményesen működik. A Z-Ordering időtartama nem garantáltan csökken több futtatás során. Ha azonban nem lett új adat hozzáadva egy csak Z-Ordered nevű partícióhoz, a Z-Ordering ismételt futtatása a partíción nincs hatással. A Z-Ordering egyenletesen kiegyensúlyozott adatfájlokat hoz létre a csuplok száma tekintetében, de nem feltétlenül lemezen lévő adatméretet. A két mérték leggyakrabban korrelál, de az optimalizált feladatidők eltérése akkor fordulhat elő, ha eltérnek egymástól.
Feljegyzés
A Databricks Runtime használatakor a kimeneti fájl méretének szabályozásához állítsa be a Spark-konfigurációtspark.databricks.delta.optimize.maxFileSize. Az alapértelmezett érték 1073741824 (1 GB).
104857600 A beállítás 100 MB-ra állítja a fájlméretet.
Paraméterek
-
Egy meglévő Delta-táblát azonosít. A név nem tartalmazhat időbeli specifikációt vagy beállításspecifikációt.
FULLA következőkre vonatkozik:
a Databricks Runtime 16.0 és újabb verziók eseténA tábla összes adatfájljának átírása. A következőhöz használható
OPTIMIZE table_name FULL:- Optimalizálja a teljes táblázatot, beleértve a korábban fürtözött adatokat is ( folyékony fürtözést használó táblák esetében).
- A meglévő adatfájlokat csomagolja újra, amikor a
delta.parquet.compression.codectulajdonság használatával megváltoztatja a tábla tömörítési kodekjét.
A tömörítési kodek módosítása után a meglévő adatok újracsomagolásához futtassa a következőt
OPTIMIZE table_name FULL:-- Change compression codec ALTER TABLE table_name SET TBLPROPERTIES ('delta.parquet.compression.codec' = 'ZSTD'); -- Recompress all existing data files OPTIMIZE table_name FULL;Ha egy táblában lévő fájlok egy részhalmazát szeretné optimalizálni, és engedélyezve van a folyékony fürtözés, kombináljon
FULLegyWHEREpredikátummal (Databricks Runtime 18.1 vagy újabb). Csak egyetlen fürtoszlop egyszerű tartomány-predikátumai támogatottak. A fájl akkor szerepel a fájlban, ha tartományának bármely része átfedésben van a predikátummal. Tartalmaz például egy tartománytOPTIMIZE events FULL WHERE date > 15tartalmazó fájlt,(col_min = 10, col_max = 20)mert a fájl tartománya átfedésben van a predikátummal.WHEREOptimalizálja a partíció/fürtözési predikátumnak megfelelő sorok részhalmazát. Csak a partíció/ fürtszolgáltatás kulcsattribútumainak szűrői támogatottak.
Folyékony fürtözést használó táblák esetén használja
OPTIMIZE table_name FULL WHERE predicateinkább a (Databricks Runtime 18.1 vagy újabb) elemet.ZORDER BYFeljegyzés
A Databricks a Z-rendezés helyett az összes új táblához javasolja a folyékony fürtözést. Lásd: Táblákhoz folyékony klaszterezés használata.
Az oszlopinformációkat ugyanabban a fájlkészletben rendezi. A Delta Lake adat-kihagyási algoritmusai a közös helység használatával csökkentik az olvasandó adatok mennyiségét. Vesszővel tagolt listaként több oszlopot is megadhat, de a közös helység hatékonysága minden további oszlop esetében csökken.
Ez a záradék folyékony fürtözést használó táblákon nem használható.
Példák
> OPTIMIZE events;
> OPTIMIZE events FULL;
> -- Partitioned table
> OPTIMIZE events WHERE date >= '2017-01-01';
> -- Table with liquid clustering enabled (DBR 18.1 and above)
> OPTIMIZE events FULL WHERE date >= '2025-01-01';
> OPTIMIZE events
WHERE date >= current_timestamp() - INTERVAL 1 day
ZORDER BY (eventType);
További információ: Adatfájlelrendezés optimalizálása.