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.enableLowShuffletrue. Den här flaggan har ingen effekt i Databricks Runtime 10.4 och senare.