Dinamikus fájlmetszet

A dinamikus fájlmetszet jelentősen javíthatja számos lekérdezés teljesítményét a Delta Lake-táblákon. A lekérdezésoptimalizáló dinamikus fájlmetszetet aktivál a szűrőkivonatokat vagy WHERE záradékokat tartalmazó lekérdezések esetében. A dinamikus fájlszűrés a MERGE, UPDATE és DELETE utasításokban Photon-kompatibilis számítási környezetet igényel. A SELECT utasítások esetében a Photon átfogóbb és megbízhatóbb dinamikus fájlszűrést biztosít. Photon nélkül a dinamikus fájlkizárás továbbra is alkalmazható a SELECT utasításokra, a lekérdezés formájától és a végrehajtási tervtől függően.

A fájlok dinamikus törlése különösen hatékony a nem particionált táblák vagy a nem particionált oszlopokon történő illesztések esetében. A dinamikus fájlmetszés teljesítményhatása gyakran korrelál az adatok fürtözésével, ezért érdemes lehet a folyékony fürtözést alkalmazni az előny maximalizálása érdekében. Lásd: Táblákhoz folyékony klaszterezés használata.

A dinamikus fájlritkítás hátterét és alkalmazási eseteit lásd a Gyorsabb SQL-lekérdezések a Delta Lake-en dinamikus fájlritkítással című részben.

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 szerint true): Az a fő zászló, amely az optimalizálót a szűrők leküldésére irányítja. Ha falseértékre van állítva, a dinamikus fájlmetszet nem lesz érvényben.
  • spark.databricks.optimizer.deltaTableSizeThreshold (az alapértelmezett érték 10,000,000,000 bytes (10 GB)): Az összekapcsolás átszúró oldalán a Delta tábla minimális méretét (bájtban) jelöli, amely a dinamikus fájl lemetszéséhez szükséges. Ha a mintavételi oldal nem túl nagy, valószínűleg nem érdemes alkalmazni a szűrőket, és egyszerűen csak beolvashatjuk a teljes táblát. A Delta-tábla méretét a DESCRIBE DETAIL table_name parancs futtatásával, majd a sizeInBytes oszlop megjelenítésével találja meg.
  • spark.databricks.optimizer.deltaTableFilesThreshold (az alapértelmezett érték 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 DESCRIBE DETAIL table_name parancs futtatásával, majd a numFiles oszlop megjelenítésével találja meg.