Dela via


Låg shuffle-sammanfogning på Azure Databricks

Not

Låg blandningssammanslagning är allmänt tillgänglig (GA) i Databricks Runtime 10.4 lTS och senare och i offentlig förhandsversion i Databricks Runtime 9.1 LTS. Databricks rekommenderar att förhandsversionskunder migrerar till Databricks Runtime 10.4 LTS eller senare.

Kommandot MERGE används för att utföra samtidiga uppdateringar, infogningar och borttagningar från en Delta Lake-tabell. Azure Databricks har en optimerad implementering av MERGE som förbättrar prestanda avsevärt för vanliga arbetsbelastningar genom att minska antalet shuffle-åtgärder.

Databricks low-shuffle-sammanslagning ger bättre prestanda genom att behandla oförändrade rader i ett separat, mer effektivt bearbetningsläge, i stället för att behandla dem tillsammans med de ändrade raderna. Därför minskas mängden blandade data avsevärt, vilket leder till bättre prestanda. Låg shuffle-merge-process minskar också behovet av att användarna kör om kommandot OPTIMIZE ZORDER BY efter att de har utfört en MERGE-åtgärd.

Optimerad prestanda

Många MERGE arbetsuppgifter uppdaterar bara ett relativt litet antal rader i en tabell. Delta-tabeller kan dock bara uppdateras per fil. När kommandot MERGE behöver uppdatera eller ta bort ett litet antal rader som lagras i en viss fil måste det också bearbeta och skriva om alla återstående rader som lagras i samma fil, även om dessa rader är oförändrade. Låg blandningssammanslagning optimerar bearbetningen av oförändrade rader. Tidigare bearbetades de på samma sätt som ändrade rader, vilket skickade dem genom flera shuffle-steg och dyra beräkningar. I låg blandningssammanslagning bearbetas de oförändrade raderna i stället utan blandningar, dyr bearbetning eller andra extra kostnader.

Optimerad data-layout

Förutom att vara snabbare att köra, gynnar låg shuffle-sammanslagning även efterföljande åtgärder. Den tidigare MERGE implementeringen gjorde att datalayouten för oförändrade data ändrades helt, vilket resulterade i lägre prestanda för efterföljande åtgärder. Låg omblandningssammanslagning försöker bevara den befintliga datalayouten för de oförändrade posterna, inklusive Z-orderoptimering på bästa möjliga sätt. Med låg grad av sammanslagning av shuffle försämras därför prestandan för operationer på en Delta-tabell långsammare efter att ett eller flera MERGE-kommandon har körts.

Not

Låg blandningssammanslagning försöker bevara datalayouten på befintliga data som inte har ändrats. Datalayouten för uppdaterade eller nyligen infogade data kanske inte är optimal, så det kan fortfarande vara nödvändigt att köra kommandona OPTIMIZE eller OPTIMIZE ZORDER BY.

Tillgänglighet

Låg omblandningssammanslagning är aktiverad som standardinställning i Databricks Runtime 10.4 och senare. I tidigare Versioner av Databricks Runtime som stöds kan det aktiveras genom att konfigurera konfigurationen spark.databricks.delta.merge.enableLowShuffle till true. Den här flaggan har ingen effekt i Databricks Runtime 10.4 och senare.