Del via


Apache Spark Runtimes i Stoff

Microsoft Fabric Runtime er en Azure-integrert plattform basert på Apache Spark som muliggjør utførelse og administrasjon av datateknikk og datavitenskapsopplevelser. Den kombinerer viktige komponenter fra både interne og åpne kildekilder, noe som gir kundene en omfattende løsning. For enkelhetskraft refererer vi til Microsoft Fabric Runtime drevet av Apache Spark som Fabric Runtime.

Viktige komponenter i Fabric Runtime:

  • Apache Spark – et kraftig distribuert databehandlingsbibliotek med åpen kildekode som muliggjør store databehandlings- og analyseoppgaver. Apache Spark tilbyr en allsidig plattform med høy ytelse for datateknikk og datavitenskapsopplevelser.

  • Delta Lake – et lagringslag med åpen kildekode som gir ACID-transaksjoner og andre funksjoner for datapålitelighet til Apache Spark. Delta Lake er integrert i Fabric Runtime og forbedrer databehandlingsfunksjonene og sikrer datakonsekvens på tvers av flere samtidige operasjoner.

  • Native Execution Engine - er en transformativ forbedring for Apache Spark-arbeidsbelastninger, og tilbyr betydelige ytelsesgevinster ved å utføre Spark-spørringer direkte på lakehouse infrastruktur. Integrert sømløst krever det ingen kodeendringer og unngår leverandørlåsing, og støtter både Parquet- og Delta-formater på tvers av Apache Spark-API-er i Runtime 1.3 (Spark 3.5). Denne motoren øker spørringshastigheten opptil fire ganger raskere enn tradisjonell OSS Spark, som vist av TPC-DS 1TB-referanseverdien, noe som reduserer driftskostnadene og forbedrer effektiviteten på tvers av ulike dataoppgaver , inkludert datainntak, ETL, analyse og interaktive spørringer. Bygget på Metas Velox og Intels Apache Gluten, optimaliserer den ressursbruken samtidig som den håndterer ulike databehandlingsscenarioer.

  • Standardnivåpakker for Java/Scala,Python og R – pakker som støtter ulike programmeringsspråk og miljøer. Disse pakkene installeres og konfigureres automatisk, slik at utviklere kan bruke sine foretrukne programmeringsspråk for databehandlingsoppgaver.

  • Microsoft Fabric Runtime er bygget på et robust operativsystem med åpen kildekode, noe som sikrer kompatibilitet med ulike maskinvarekonfigurasjoner og systemkrav.

Nedenfor finner du en omfattende sammenligning av viktige komponenter, inkludert Apache Spark-versjoner, støttede operativsystemer, Java, Scala, Python, Delta Lake og R, for Apache Spark-baserte kjøretider i Microsoft Fabric-plattformen.

Tips

Bruk alltid den nyeste, generelt tilgjengelige (GA) runtime-versjonen for produksjonsarbeidsmengden din, som for øyeblikket er Runtime 1.3.

Komponent Kjøretid 1.2 Kjøretid 1.3 Kjøretid 2.0
utgivelsestrinn EOSA allmenn tilgjengelighet Eksperimentell (forhåndsvisning)
Apache Spark-versjonen 3.4.1 3.5.5 4.0.0
Operativsystem Mariner 2.0 Mariner 2.0 Mariner 3.0
Java-versjon 11 11 21
Scala-versjonen 2.12.17 2.12.17 2.13.16
Python-versjon 3.10 3.11 3.12.11
Delta Lake-versjonen 2.4.0 3,2 4.0.0

Besøk Runtime 1.2, Runtime 1.3 eller Runtime 2.0 for å utforske detaljer, nye funksjoner, forbedringer og migreringsscenarier for den spesifikke runtime-versjonen.

Stoffoptimaliseringer

Både Spark-motoren og Delta Lake-implementeringene i Microsoft Fabric inneholder plattformspesifikke optimaliseringer og funksjoner. Disse funksjonene er utformet for å bruke opprinnelige integreringer i plattformen. Det er viktig å være oppmerksom på at alle disse funksjonene kan deaktiveres for å oppnå standard Spark- og Delta Lake-funksjonalitet. Fabric Runtimes for Apache Spark omfatter:

  • Den komplette åpen kildekode-versjonen av Apache Spark.
  • En samling med nesten 100 innebygde, distinkte forbedringer for spørringsytelse. Disse forbedringene inkluderer funksjoner som partisjonsbufring (aktivering av filsystempartisjonsbufferen for å redusere metalagerkall) og Krysskobling til projeksjon av skalarunderspørring.
  • Innebygd intelligent hurtigbuffer.

I Fabric Runtime for Apache Spark og Delta Lake finnes det opprinnelige forfatterfunksjoner som tjener to viktige formål:

  • De tilbyr differensiert ytelse for å skrive arbeidsbelastninger, noe som optimaliserer skriveprosessen.
  • De er standard til V-Order-optimalisering av Delta Parquet-filer. Delta Lake V-Order optimalisering er avgjørende for å levere overlegen leseytelse på tvers av alle Fabric-motorer. Hvis du vil ha en dypere forståelse av hvordan den fungerer og hvordan du administrerer den, kan du se den dedikerte artikkelen om tabelloptimalisering for Delta Lake og V-Order.

Støtte for flere kjøretider

Fabric støtter flere kjøretider, noe som gir brukerne fleksibilitet til sømløst å bytte mellom dem, noe som minimerer risikoen for inkompatibilitet eller forstyrrelser.

Som standard bruker alle nye arbeidsområder den nyeste GA-versjonen, som for øyeblikket er Runtime 1.3.

Hvis du vil endre kjøretidsversjonen på arbeidsområdenivå, kan du gå til Innstillinger for arbeidsområde>Innstillinger for datateknikk/vitenskap>Spark-innstillinger. Velg ønsket kjøretidsversjon fra de tilgjengelige alternativene på fanen Miljø. Velg Lagre for å bekrefte valget.

Skjermbilde som viser hvor man velger kjøretidsversjon for arbeidsplassinnstillinger.

Når du har gjort denne endringen, vil alle systemopprettede elementer i arbeidsområdet, inkludert Lakehouses, SJDs og Notebooks, fungere ved hjelp av den nylig valgte kjøretidsversjonen på arbeidsområdenivå fra neste Spark-økt. Hvis du for øyeblikket bruker en notatblokk med en eksisterende økt for en jobb eller en lakehouse-relatert aktivitet, fortsetter Spark-økten som den er. Fra og med neste økt eller jobb brukes imidlertid den valgte kjøretidsversjonen.

I tillegg, for å endre kjøretid på gjenstandsnivå Environment , opprett et nytt miljøobjekt eller åpne et eksisterende, under rullegardinmenyen for runtime , velg ønsket versjon fra de tilgjengelige alternativene, velg Save og deretter Publish endringene dine. Deretter kan du bruke dette Environment elementet med din Notebook eller Spark Job Definition.

Skjermbilde som viser hvor man velger runtime-versjon for miljøobjektet.

Konsekvensene av kjøretidsendringer på Spark-innstillinger

Generelt sett tar vi sikte på å overføre alle Spark-innstillinger. Hvis vi imidlertid identifiserer at Spark-innstillingen ikke er kompatibel med Runtime B, utsteder vi en advarsel og avstår fra å implementere innstillingen.

Endring av kjøretid for Spark-innstillinger.

Konsekvensene av kjøretidsendringer på bibliotekbehandling

Generelt sett er vår tilnærming å overføre alle biblioteker fra Runtime A til Runtime B, inkludert både offentlige og egendefinerte kjøretider. Hvis Python- og R-versjonene forblir uendret, skal bibliotekene fungere som de skal. For Jars er det imidlertid en betydelig sannsynlighet for at de ikke fungerer på grunn av endringer i avhengigheter, og andre faktorer som endringer i Scala, Java, Spark og operativsystemet.

Brukeren er ansvarlig for å oppdatere eller erstatte biblioteker som ikke fungerer med Runtime B. Hvis det oppstår en konflikt, som betyr at Runtime B inkluderer et bibliotek som opprinnelig var definert i Runtime A, prøver vårt bibliotekstyringssystem å skape nødvendig avhengighet for Runtime B basert på brukerens innstillinger. Byggeprosessen mislykkes imidlertid hvis det oppstår konflikt. I feilloggen kan brukere se hvilke biblioteker som forårsaker konflikter og foreta justeringer i versjonene eller spesifikasjonene.

Endring av kjøretid for bibliotekadministrasjon.

Oppgrader Delta Lake-protokollen

Delta Lake-funksjoner er alltid bakoverkompatible, slik at tabeller som er opprettet i en lavere Delta Lake-versjon, sømløst kan samhandle med høyere versjoner. Men når visse funksjoner aktiveres (for eksempel ved bruk delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) av metode), kan fremoverkompatibilitet med lavere Delta Lake-versjoner bli kompromittert. I slike tilfeller er det viktig å endre arbeidsbelastninger som refererer til de oppgraderte tabellene for å justere med en Delta Lake-versjon som opprettholder kompatibilitet.

Hver Delta-tabell er knyttet til en protokollspesifikasjon, og definerer funksjonene den støtter. Applikasjoner som samhandler med tabellen, enten for lesing eller skriving, er avhengige av denne protokollspesifikasjonen for å avgjøre om de er kompatible med tabellens funksjonssett. Hvis en applikasjon mangler evnen til å håndtere en funksjon som er oppført som støttet i tabellens protokoll, kan den ikke lese fra eller skrive til den tabellen.

Protokollspesifikasjonen er delt inn i to distinkte komponenter: «lese»-protokollen og «skrive»-protokollen. For mer informasjon, besøk siden "Hvordan håndterer Delta Lake funksjonskompatibilitet?".

GIF som viser den umiddelbare advarselen når upgradeTableProtocol-metoden brukes.

Brukere kan utføre kommandoen delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) i PySpark-miljøet, og i Spark SQL og Scala. Denne kommandoen gjør det mulig for dem å starte en oppdatering i Delta-tabellen.

Det er viktig å være oppmerksom på at når du utfører denne oppgraderingen, får brukerne en advarsel som angir at oppgradering av Delta-protokollversjonen er en ikke-uopprettelig prosess. Dette betyr at når oppdateringen er utført, kan den ikke angres.

Oppgraderinger av protokollversjoner kan potensielt påvirke kompatibiliteten til eksisterende Delta Lake-tabelllesere, skrivere eller begge deler. Derfor er det tilrådelig å fortsette med forsiktighet og oppgradere protokollversjonen bare når det er nødvendig, for eksempel når du tar i bruk nye funksjoner i Delta Lake.

Viktig!

For å lære mer om hvilke protokollversjoner og funksjoner som er kompatible på tvers av alle Microsoft Fabric-opplevelser, les Delta Lake table format interoperability.

Skjermbilde som viser advarselen ved oppgradering av delta lake-protokollen.

I tillegg bør brukere bekrefte at alle nåværende og fremtidige produksjonsarbeidsbelastninger og prosesser er kompatible med Delta Lake-tabeller ved hjelp av den nye protokollversjonen for å sikre en sømløs overgang og forhindre potensielle forstyrrelser.