Alacsony shuffle merge az Azure Databricksben

Feljegyzés

Az alacsony shuffle merge általánosan elérhető a Databricks Runtime 10.4 lTS és újabb verziókban , valamint a Databricks Runtime 9.1 LTS nyilvános előzetes verziójában . 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 egyidejű frissítéseket, beszúrásokat és törléseket hajthat végre egy Delta Lake-táblából. Az Azure Databricks optimalizált implementációval MERGE 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.

Az alacsony egyesítésű Databricks jobb teljesítményt nyújt a nem módosított sorok külön, egyszerűbb feldolgozási módban történő feldolgozásával, ahelyett, hogy a módosított sorokkal együtt dolgozták 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 azt is csökkenti, hogy a felhasználóknak újra kell futtatniuk az OPTIMIZE ZORDER BY parancsot egy 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. Ha a MERGE parancsnak frissítenie vagy törölnie kell egy adott fájlban tárolt kis számú sort, akkor az ugyanabban a fájlban tárolt összes többi sort is feldolgoznia és újra kell írnia, még akkor is, ha 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 sorrendű egyesítés esetén a nem módosított sorokat a rendszer ehelyett shuffles, költséges feldolgozás vagy egyéb többletterhelés nélkül dolgozza fel.

Optimalizált adatelrendezés

A gyorsabb futtatás mellett az alacsony egyesítési egyesítés a későbbi műveletekre is hatással van. 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 a Z-rendelés optimalizálását a legjobb munkamennyiség alapján. Ezért az alacsony shuffle merge esetén a Delta-táblák műveleteinek teljesítménye lassabban csökken egy vagy több MERGE parancs futtatása után.

Feljegyzés

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 ZORDER BY parancsok futtatására vagy optimalizálá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ó 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.