Megosztás a következőn keresztül:


Alacsony shuffle merge az Azure Databricksben

Jegyzet

Az alacsony shuffle merge általánosan elérhető (GA) a Databricks Runtime 10.4 lTS és újabb verziókban, valamint a Databricks Runtime 9.1 LTS-ben nyilvános előzetes verziójú. A Databricks azt javasolja, hogy az előzetes verziójú ügyfelek migráljanak a Databricks Runtime 10.4 LTS vagy újabb verziójára.

A MERGE paranccsal egyszerre végezhet frissítéseket, beszúrásokat és törléseket egy Delta Lake-táblából. Az Azure Databricks optimalizált MERGE implementációval rendelkezik, amely jelentősen javítja a teljesítményt a gyakori számítási feladatokhoz az shuffle műveletek számának csökkentésével.

A kevesebb keveréssel járó egyesítésű Databricks jobb teljesítményt nyújt azáltal, hogy a nem módosított sorokat egy külön, egyszerűbb feldolgozási módban kezeli, ahelyett, hogy a módosított sorokkal együtt dolgozná fel őket. Ennek eredményeképpen az elegyített adatok mennyisége jelentősen csökken, ami jobb teljesítményt eredményez. Az alacsony shuffle merge emellett csökkenti a OPTIMIZE ZORDER BY parancs újrafuttatásának szükségességét a MERGE művelet végrehajtása után.

Optimalizált teljesítmény

Sok MERGE számítási feladat csak viszonylag kis számú sort frissít egy táblában. A Delta-táblák azonban csak fájlonként frissíthetők. Amikor a MERGE parancsnak frissítenie vagy törölnie kell egy adott fájlban tárolt kis számú sort, akkor az összes többi sort is fel kell dolgoznia és újra kell írnia, amelyek ugyanabban a fájlban vannak tárolva, annak ellenére, hogy ezek a sorok nincsenek módosítva. Az alacsony shuffle merge optimalizálja a nem módosított sorok feldolgozását. Korábban ugyanúgy dolgozták fel őket, mint a módosított sorokat, és több shuffle fázison és költséges számításokon adták át őket. Alacsony eltolásos egyesítés esetén a nem módosított sorok feldolgozására nem kerül sor eltolások, költséges feldolgozás vagy egyéb többletterhelés alkalmazása nélkül.

Optimalizált adatelrendezés

A gyorsabb futtatás mellett a kisebb átkeverési egyesítés a későbbi műveleteknek is előnyére válik. A korábbi MERGE implementáció miatt a nem módosított adatok adatelrendezése teljesen megváltozott, ami alacsonyabb teljesítményt eredményezett a későbbi műveleteknél. Az alacsony shuffle merge megpróbálja megőrizni a nem módosított rekordok meglévő adatelrendezését, beleértve Z-rendelés optimalizálási a legjobb munkamennyiség alapján. Ezért az alacsony egyesítéssel a Delta-táblák műveleteinek teljesítménye lassabban csökken egy vagy több MERGE parancs futtatása után.

Jegyzet

Az alacsony shuffle merge megkísérli megőrizni az adatelrendezést a nem módosított meglévő adatokon. Előfordulhat, hogy a frissített vagy újonnan beszúrt adatok adatelrendezése nem optimális, ezért továbbra is szükség lehet a OPTIMIZE vagy OPTIMIZE ZORDER BY parancsok futtatására.

Elérhetőség

Az alacsony shuffle merge alapértelmezés szerint engedélyezve van a Databricks Runtime 10.4 és újabb verziókban. A korábban támogatott Databricks Runtime-verziókban a konfigurációs spark.databricks.delta.merge.enableLowShuffletruebeállításával engedélyezhető. Ez a jelző nincs hatással a Databricks Runtime 10.4-ben és újabb verziókban.