Høj samtidighedstilstand for Lakehouse-operationer i Microsoft Fabric

Høj samtidighedsmode er Spark-sessionsdeling for lakehouse-drift. I stedet for at starte en separat Spark-session for hver operation, kører Fabric flere kompatible operationer i én delt session. Denne tilgang er mest relevant, når operationer udføres på Spark, for eksempel når du indlæser filer i en tabel eller forhåndsviser tabeldata.

Uden høj samtidighedstilstand (sessionsdeling) kan en preview-operation holde en Spark-session i op til 20 minutter (for eksempel når SQL-analyse-endpointet ikke er tilgængeligt). Ved mindre kapaciteter reducerer denne begrænsning samtidighed og øger ventetiden på andre operationer. Ved at bruge høj samtidighedstilstand deler kompatible operationer én Spark-session.

Denne adfærd er især mærkbar i arbejdsområder, der bruger Managed Virtual Networks, hvor den indledende Spark-opstart kan tage længere tid. I disse tilfælde kan en første tabelindlæsning tage tre til fem minutter at starte, men efterfølgende indlæsninger eller forhåndsvisningsoperationer kan starte om cirka fem sekunder, når de kører under samme bruger og arbejdsområde.

Fordele

Høj samtidighedsmode forbedrer ydeevne og effektivitet for lakehouse-drift:

Personalegode Description
Optimeret beregningsbrug Op til fem Lakehouse-operationer kan køre i én delt Spark-session, hvilket sænker kapacitetspresset.
Hurtigere starttider Genbrug af sessioner reducerer Spark-opstartslatens, især i arbejdsområder med netværkssikkerhedsfunktioner som private forbindelser.
Forbedret pris-ydelse Kun den indledende Spark-session bliver faktureret. Efterfølgende operationer, der deler den session, faktureres ikke separat.
Højere fælles forløb Flere Lakehouse-operationer kan køre samtidig uden at blokere andre arbejdsbyrder, hvilket især er nyttigt ved mindre kapaciteter.

Hvordan høj samtidighedstilstand fungerer

I høj samtidighedsmode kan en enkelt Spark-session have op til fem uafhængige søhus-jobs samtidig. Hvert job kører i en isoleret REPL-kerne i Spark-applikationen, hvilket sikrer variabel og eksekveringsisolering på tværs af operationer.

Denne tilgang genbruger eksisterende Spark-sessioner til nye lakehouse-jobs uden at skabe ekstra sessioner, hvilket forbedrer opstartstid, gennemstrømning og samlet beregningsudnyttelse.

Notat

For lakehouse-load- og preview-operationer er høj samtidighedstilstand automatisk, når operationen kører på Spark – der er ingen per-operation toggle i Fabric-portalen. Til sammenligning konfigurerer workspace-indstillinger og notebooks høj samtidighed for notebooks og pipelines. For detaljer, se Konfigurér høj samtidighedstilstand for Fabric-notebooks.

Når høj samtidighedstilstand deler sessioner

For at høj samtidighedstilstand kan gælde, skal følgende betingelser være opfyldt:

  • Den samme bruger udløser operationerne.
  • Operationerne kører i det samme arbejdsområde.

Sessionsdeling af scopes til brugeren og arbejdsområdet – ikke til en individuel Lakehouse. Indlæsnings- og forhåndsvisningsoperationer, som den samme bruger kører i samme arbejdsområde, kan genbruge en enkelt delt Spark-session, selv når de målretter forskellige Lakehouses eller startes fra forskellige elementer.

Notat

Sessioner deles ikke mellem skema-aktiverede og ikke-skema-lakehouses. På grund af katalogforskelle mellem disse lakehouse-typer kører deres operationer i separate delte sessioner, selv når brugeren og arbejdsområdet er det samme.

Når disse betingelser er opfyldt, grupperes og udføres lakehouse-operationerne automatisk under en delt Spark-session.

Eksempelflow

Følgende eksempel viser, hvordan sessionsdeling fungerer. Du udfører en load-to-table-operation på et lakehouse-bord, som starter en Spark-session i høj samtidighedstilstand. Mens den session er aktiv, kan du forhåndsvise en anden tabel eller indlæse en anden fil. Disse efterfølgende operationer genbruger den samme Spark-session og kører samtidig i separate REPLs inden for Spark-applikationen, mens Fabric fortsætter med at overvåge sessionsdeling og ressourceallokering.

I dette eksempel genbruges Spark-ressourcer effektivt, hvilket gør det muligt at udføre flere lakehouse-opgaver hurtigere og til lavere omkostninger.

Overvejelser og begrænsninger

Da en enkelt Spark-session deles på tværs af en brugers lakehouse-operationer i et arbejdsområde, skal du huske følgende adfærd:

  • Sletning af et element kan annullere operationer, der tilhører andre elementer. Den delte session er forbundet med det element, der startede den. Hvis du sletter det element, mens sessionen er aktiv, bliver sessionen annulleret. Alle Load-tabel eller forhåndsvisningsoperationer fra andre elementer, der deler samme session, annulleres samtidig. Denne adfærd er en forventet konsekvens af at dele én session pr. bruger og arbejdsområde.
  • En aflyst operation kan blive efterladt ufuldstændig. Hvis en Load-tabeloperation annulleres, før den er færdig, kan måltabellen muligvis ikke afspejle den fulde belastning. Load table-skrivninger bruger Deltas atomic commits, så en annulleret load ikke ødelægger data, der allerede er i tabellen. Dog er det ikke garanteret, at læsset er fuldført. Kør operationen igen for at bringe bordet tilbage til den tilsigtede tilstand.
  • Løb igen for at komme dig. Gentag Load-tabel-operationen mod samme kilde og mål er den anbefalede gendannelsesvej efter en uventet sessionsannullering.

Overvåg delte sessioner

Du kan følge sessioner med høj samtidighed i overvågningshubben. Når en Lakehouse-operation (såsom tabelindlæsning eller forhåndsvisning) bruger en Spark-session med høj samtidighed, vises aktiviteten med dette navngivningsmønster: HC_<lakehouse_name>_<operation_id>.

Denne navngivningskonvention hjælper dig hurtigt med at identificere, hvilke aktiviteter der kører i High Concurrency-tilstand.

Skærmbillede af overvågningshubben, der viser en aktivitet med høj samleje i Lakehouse.

For at se de specifikke operationer, der kører i den delte session, vælg aktivitetsnavnet (for eksempel HC_lakehouse_Etc) i Overvågningshubben, og åbn derefter detaljevisningen.

I detaljevisningen kan du se de enkelte jobs køre i den høje samtidighedssession. Denne liste viser tabelniveau-operationer, såsom "Load table," hvilket bekræfter, at flere jobs deler én Spark-applikationskontekst.

Skærmbillede af den detaljerede jobvisning, der viser flere Load-tabeloperationer inden for en enkelt session.

Fakturering og kapacitetspåvirkning

Sessioner med høj samtidighed giver målbare pris-præstationsgevinster:

  • Kun den indledende Spark-session, der starter den delte applikation, faktureres.
  • Efterfølgende lakehouse-drift, der deler den session, medfører ikke yderligere fakturering.
  • Kapacitetsmålinger afspejler forbruget i forhold til det initierende job, hvilket reducerer det samlede computerforbrug.

Denne model forbedrer prisydelse pr. kapacitetsenhed, især for arbejdsbelastninger med hyppig belastning eller preview-operationer.