Dinamikus fájltörlés

A dinamikus fájlmetszet jelentősen javíthatja számos lekérdezés teljesítményét a Delta Lake-táblákon. A dinamikus fájlmetszet különösen hatékony a nem particionált táblák vagy a nem particionált oszlopok illesztései esetében. A dinamikus fájlmetszet teljesítményhatása gyakran összefügg az adatok fürtözésével, ezért érdemes a Z-Ordering használatával maximalizálni az előnyöket.

Fontos

A dinamikus fájlmetszetet a Photon-kompatibilis számítással kell használnia a , UPDATEés DELETE utasítások dinamikus fájlmetszetéhezMERGE. Csak SELECT az utasítások használják a dinamikus fájlmetszetet, ha a Photon nincs használatban.

A dinamikus fájlmetszet háttér- és használati eseteit a Delta Lake gyorsabb SQL-lekérdezései dinamikus fájlmetszettel című témakörben talál.

Konfiguráció

A dinamikus fájlmetszetet a következő Apache Spark-konfigurációs beállítások vezérlik:

  • spark.databricks.optimizer.dynamicFilePruning (alapértelmezés: true): A fő jelző, amely a szűrők leküldésére irányítja az optimalizálót. Ha be van falseállítva, a dinamikus fájlmetszet nem lesz érvényben.
  • spark.databricks.optimizer.deltaTableSizeThreshold (alapértelmezés: 10,000,000,000 bytes (10 GB)): A dinamikus fájlmetszet indításához szükséges illesztés mintavételi oldalán található Delta-tábla minimális méretét (bájtban) jelöli. Ha a mintavételi oldal nem túl nagy, valószínűleg nem érdemes leküldni a szűrőket, és egyszerűen csak beolvashatjuk az egész táblázatot. A Delta-tábla méretét a parancs futtatásával DESCRIBE DETAIL table_name , majd az sizeInBytes oszlop megjelenítésével találja meg.
  • spark.databricks.optimizer.deltaTableFilesThreshold (alapértelmezés: 10): A dinamikus fájlmetszet indításához szükséges illesztés mintavételi oldalán található Delta-tábla fájljainak számát jelöli. Ha a mintavételoldali tábla kevesebb fájlt tartalmaz, mint a küszöbérték, a rendszer nem aktiválja a dinamikus fájlmetszetet. Ha egy tábla csak néhány fájllal rendelkezik, valószínűleg nem érdemes engedélyezni a dinamikus fájlmetszetet. A Delta-tábla méretét a parancs futtatásával DESCRIBE DETAIL table_name , majd az numFiles oszlop megjelenítésével találja meg.