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.