Låg blandningssammanslagning i Azure Databricks
Kommentar
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 låg shuffle-sammanslagning ger bättre prestanda genom att bearbeta oförändrade rader i ett separat, mer effektiviserat bearbetningsläge, i stället för att bearbeta dem tillsammans med de ändrade raderna. Därför minskas mängden blandade data avsevärt, vilket leder till bättre prestanda. Låg blandningssammanslagning minskar också behovet av att användarna kör kommandot OPTIMIZE ZORDER BY igen när de har utfört en MERGE
åtgärd.
Optimerade prestanda
Många MERGE
arbetsbelastningar uppdaterar bara ett relativt litet antal rader i en tabell. Delta-tabeller kan dock bara uppdateras per fil. MERGE
När kommandot 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 datalayout
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 blandningssammanslagning försöker bevara den befintliga datalayouten för de oförändrade posterna, inklusive Z-orderoptimering på bästa sätt. Med låg blandningssammanslagning försämras därför prestandan för åtgärder i en Delta-tabell långsammare efter att ett eller flera MERGE
kommandon har körts.
Kommentar
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 OPTIMIZE
eller OPTIMERA ZORDER BY-kommandon .
Tillgänglighet
Låg blandningssammanslagning är aktiverad som standard i Databricks Runtime 10.4 och senare. I tidigare Databricks Runtime-versioner som stöds kan det aktiveras genom att ställa in konfigurationen spark.databricks.delta.merge.enableLowShuffle
på true
. Den här flaggan har ingen effekt i Databricks Runtime 10.4 och senare.