Del via


Sammenlign Fabric Dataingeniør ing og Azure Synapse Spark

Denne sammenligningen mellom Fabric Dataingeniør ing og Azure Synapse Spark gir et sammendrag av viktige funksjoner og en grundig analyse på tvers av ulike kategorier, som inkluderer Spark-bassenger, konfigurasjon, biblioteker, notatblokker og Spark-jobbdefinisjoner.

Tabellen nedenfor sammenligner Azure Synapse Spark og Fabric Spark på tvers av ulike kategorier:

Kategori Azure Synapse Spark Fabric Spark
Spark-bassenger Spark-basseng
-
-
Egendefinert utvalg for startutvalg /
V-ordre
Høy samtidighet
Spark-konfigurasjoner Bassengnivå
Definisjonsnivå for notatblokk eller Spark-jobb
Miljønivå
Definisjonsnivå for notatblokk eller Spark-jobb
Spark-biblioteker Pakker på arbeidsområdenivå
Pakker på bassengnivå
Innebygde pakker
-
Miljøbiblioteker
Innebygde biblioteker
Ressurser Notatblokk (Python, Scala, Spark SQL, R, .NET)
Spark-jobbdefinisjon (Python, Scala, .NET)
Synapse-datasamlebånd
Pipeline-aktiviteter (notatblokk, SJD)
Notatblokk (Python, Scala, Spark SQL, R)
Spark-jobbdefinisjon (Python, Scala, R)
Data Factory-datasamlebånd
Pipeline-aktiviteter (notatblokk, SJD)
Data Primær lagringsplass (ADLS Gen2)
Datalagring (klynge/områdebasert)
Primær lagringsplass (OneLake)
Datalagring (kapasitet/områdebasert)
Metadata Intern Hive Metastore (HMS)
Ekstern HMS (ved hjelp av Azure SQL DB)
Intern HMS (lakehouse)
-
Tilkoblinger Koblingstype (koblede tjenester)
Datakilder
Datakilde-kobling. med arbeidsområdeidentitet
Koblingstype (DMTS)
Datakilder
-
Sikkerhet RBAC og tilgangskontroll
Storage ACLs (ADLS Gen2)
Private koblinger
Administrert VNet (nettverksisolasjon)
Synapsearbeidsområdeidentitet
Data Exfiltration Protection (DEP)
Servicekoder
Key Vault (via mssparkutils/ linked service)
RBAC og tilgangskontroll
OneLake RBAC
Private koblinger
Administrert VNet
Arbeidsområdeidentitet
-
Servicekoder
Key Vault (via mssparkutils)
Utviklingsoperasjoner Azure DevOps-integrering
CI/CD (ingen innebygd støtte)
Azure DevOps-integrering
Utrullingssamlebånd
Utvikleropplevelse IDE-integrasjon (IntelliJ)
Synapse Studio UI
Samarbeid (arbeidsområder)
Livy API
API/SDK
mssparkutils
IDE-integrasjon (VS Code)
Stoffgrensesnitt
Samarbeid (arbeidsområder og deling)
-
API/SDK
mssparkutils
Logging og overvåking Spark Advisor
Innebygde overvåkingsutvalg og jobber (gjennom Synapse Studio)
Spark-loggserver
Prometheus/Grafana
Logganalyse
Lagringskonto
Event Hubs
Spark Advisor
Innebygde overvåkingsutvalg og jobber (gjennom overvåkingshub)
Spark-loggserver
-
-
-
-
Forretningskontinuitet og nødutvinning (BCDR) BCDR (data) ADLS Gen2 BCDR (data) OneLake

Vurderinger og begrensninger:

  • DMTS-integrering: Du kan ikke bruke DMTS via notatblokker og Spark-jobbdefinisjoner.

  • RBAC på arbeidsbelastningsnivå: Fabric støtter fire forskjellige arbeidsområderoller. Hvis du vil ha mer informasjon, kan du se Roller i arbeidsområder i Microsoft Fabric.

  • Administrert identitet: Fabric støtter for øyeblikket ikke kjøring av notatblokker og Spark-jobbdefinisjoner ved hjelp av arbeidsområdeidentiteten eller den administrerte identiteten for Azure KeyVault i notatblokker.

  • CI/CD: Du kan bruke Fabric API/SDK og utrullingssamlebånd.

  • Livy API og hvordan du sender inn og administrerer Spark-jobber: Livy API er i veikartet, men ikke eksponert ennå i Fabric. Du må opprette notatblokker og Spark-jobbdefinisjoner med stoffgrensesnittet.

  • Spark-logger og -måledata: I Azure Synapse kan du avgi Spark-logger og -måledata til din egen lagringsplass, for eksempel Log Analytics, blob og Event Hubs. Du kan også få en liste over Spark-programmer for arbeidsområdet fra API-en. For øyeblikket er begge disse funksjonene ikke tilgjengelige i Fabric.

  • Andre hensyn:

    • JDBC: JDBC-tilkoblingsstøtte er for øyeblikket ikke tilgjengelig i Fabric.

Spark pool-sammenligning

Tabellen nedenfor sammenligner Azure Synapse Spark- og Fabric Spark-bassenger.

Spark-innstilling Azure Synapse Spark Fabric Spark
Live pool (pre-varme forekomster) - Ja, Start-bassenger
Egendefinert utvalg Ja Ja
Spark-versjoner (kjøretid) 2.4, 3.1, 3.2, 3.3, 3.4 3.3, 3.4, 3.5
Autoskaler Ja Ja
Dynamisk tildeling av eksekutorer Ja, opptil 200 Ja, basert på kapasitet
Justerbare nodestørrelser Ja, 3-200 Ja, 1-basert på kapasitet
Minimum nodekonfigurasjon 3 noder 1 node
Nodestørrelsesfamilie Minneoptimalisert, GPU akselerert Optimalisert minne
Nodestørrelse Small-XXXLarge Small-XXLarge
Autopause Ja, kan tilpasses minimum 5 minutter Ja, ikke-customizable 2 minutter
Høy samtidighet Nei Ja
V-ordre Nei Ja
Spark autotune Nei Ja
Opprinnelig kjøringsmotor Nei Ja
Samtidighetsgrenser Fast Variabel basert på kapasitet
Flere Spark-bassenger Ja Ja (miljøer)
Intelligent hurtigbuffer Ja Ja
Støtte for API/SDK Ja Ja
  • Kjøretid: Stoff støtter ikke Spark 2.4-, 3.1- og 3.2-versjoner. Fabric Spark støtter Spark 3.3 med Delta 2.2 i Runtime 1.1, Spark 3.4 med Delta 2.4 i Runtime 1.2 og Spark 3.5 med Delta 3.1 i Runtime 1.3.

  • Autoskala: I Azure Synapse Spark kan utvalget skalere opptil 200 noder uavhengig av nodestørrelsen. I Fabric utsettes maksimalt antall noder for nodestørrelse og klargjort kapasitet. Se følgende eksempel for F64 SKU.

    Spark pool-størrelse Azure Synapse Spark Stoff gnist (egendefinert basseng, SKU F64)
    Liten Min: 3, Maks: 200 Min: 1, Maks: 32
    Middels Min: 3, Maks: 200 Min: 1, Maks: 16
    Stor Min: 3, Maks: 200 Min: 1, Maks: 8
    X-Large Min: 3, Maks: 200 Min: 1, Maks: 4
    XX-Large Min: 3, Maks: 200 Min: 1, Maks: 2
  • Justerbare nodestørrelser: I Azure Synapse Spark kan du gå opptil 200 noder. I Fabric er antall noder du kan ha i det egendefinerte Spark-bassenget avhengig av nodestørrelsen og stoffkapasiteten. Kapasitet er et mål på hvor mye datakraft du kan bruke i Azure. En måte å tenke på det på er at to Spark vCores (en enhet med datakraft for Spark) er lik én kapasitetsenhet. En SKU F64 for stoffkapasitet har for eksempel 64 kapasitetsenheter, som tilsvarer 128 Spark VCores. Så hvis du velger en liten nodestørrelse, kan du ha opptil 32 noder i bassenget (128/4 = 32). Deretter vil summen av vCores i kapasitet/vCores per nodestørrelse = totalt antall noder som er tilgjengelige. Hvis du vil ha mer informasjon, kan du se Spark-databehandling.

  • Nodestørrelsesfamilie: Fabric Spark-bassenger støtter bare minneoptimalisert nodestørrelse for øyeblikket. Hvis du bruker et GPU-akselerert SKU Spark-basseng i Azure Synapse, er de ikke tilgjengelige i Fabric.

  • Nodestørrelse: Den xx-store nodestørrelsen leveres med 432 GB minne i Azure Synapse, mens samme nodestørrelse har 512 GB i Fabric, inkludert 64 vCores. Resten av nodestørrelsene (små til x-store) har samme vCores og minne i både Azure Synapse og Fabric.

  • Automatisk pause: Hvis du aktiverer den i Azure Synapse Spark, stanses Apache Spark-utvalget automatisk etter en angitt mengde inaktiv tid. Denne innstillingen kan konfigureres i Azure Synapse (minimum 5 minutter), men egendefinerte utvalg har en ikke-tilgjengelig standard autopausevarighet på 2 minutter i Fabric etter at økten utløper. Standard utløp av økt er satt til 20 minutter i Fabric.

  • Høy samtidighet: Stoff støtter høy samtidighet i notatblokker. Hvis du vil ha mer informasjon, kan du se Modus for høy samtidighet i Fabric Spark.

  • Samtidighetsgrenser: Når det gjelder samtidighet, har Azure Synapse Spark en grense på 50 samtidige kjørejobber per Spark-basseng og 200 jobber i kø per Spark-basseng. Maksimalt antall aktive jobber er 250 per Spark-utvalg og 1000 per arbeidsområde. I Microsoft Fabric Spark definerer kapasitets-SKU-er samtidighetsgrensene. SKU-er har varierende begrensninger på maksimale samtidige jobber som varierer fra 1 til 512. Fabric Spark har også et dynamisk reservebasert begrensningssystem for å administrere samtidighet og sikre jevn drift selv i perioder med høy trafikk. Hvis du vil ha mer informasjon, kan du se Concurrency-grenser og køer i Microsoft Fabric Spark and Fabric-kapasiteter.

  • Flere Spark-bassenger: Hvis du vil ha flere Spark-bassenger, kan du bruke Stoffmiljøer til å velge et utvalg etter notatblokk eller Spark-jobbdefinisjon. Hvis du vil ha mer informasjon, kan du se Opprette, konfigurere og bruke et miljø i Microsoft Fabric.

Spark-konfigurasjonssammenligning

Spark-konfigurasjoner kan brukes på ulike nivåer:

  • Miljønivå: Disse konfigurasjonene brukes som standardkonfigurasjon for alle Spark-jobber i miljøet.
  • Innebygd nivå: Angi spark-konfigurasjoner innebygd ved hjelp av notatblokker og Spark-jobbdefinisjoner.

Selv om begge alternativene støttes i Azure Synapse Spark og Fabric, er det noen hensyn:

Spark-konfigurasjon Azure Synapse Spark Fabric Spark
Miljønivå Ja, bassenger Ja, miljøer
Innebygd Ja Ja
Import/eksport Ja Ja (.yml fra miljøer)
Støtte for API/SDK Ja Ja
  • Miljønivå: I Azure Synapse kan du definere flere Spark-konfigurasjoner og tilordne dem til forskjellige Spark-bassenger. Du kan gjøre dette i Fabric ved hjelp av miljøer.

  • Innebygd: I Azure Synapse støtter både notatblokker og Spark-jobber å legge til forskjellige Spark-konfigurasjoner. Konfigurasjoner på øktnivå i Fabric tilpasses med spark.conf.set(<conf_name>, <conf_value>) innstillingen. For satsvise jobber kan du også bruke konfigurasjoner via SparkConf.

  • Import/eksport: Dette alternativet for Spark-konfigurasjoner er tilgjengelig i stoffmiljøer.

  • Andre hensyn:

    • Uforanderlige Spark-konfigurasjoner: Noen Spark-konfigurasjoner er uforanderlige. Hvis du får meldingen AnalysisException: Can't modify the value of a Spark config: <config_name>, er den aktuelle egenskapen uforanderlig.
    • FAIR scheduler: FAIR scheduler brukes i høy samtidighetsmodus.
    • V-order: V-Order er skrivetidsoptimalisering som brukes på parkettfilene som er aktivert som standard i Fabric Spark-bassenger.
    • Optimalisert skriving: Optimalisert skriving er deaktivert som standard i Azure Synapse, men aktivert som standard for Fabric Spark.

Spark-biblioteksammenligning

Du kan bruke Spark-biblioteker på ulike nivåer:

  • Arbeidsområdenivå: Du kan ikke laste opp/installere disse bibliotekene i arbeidsområdet og senere tilordne dem til et bestemt Spark-utvalg i Azure Synapse.
  • Miljønivå: Du kan laste opp/installere biblioteker til et miljø. Biblioteker på miljønivå er tilgjengelige for alle notatblokker og Spark-jobbdefinisjoner som kjører i miljøet.
  • Innebygd: I tillegg til biblioteker på miljønivå kan du også angi innebygde biblioteker. For eksempel i begynnelsen av en notatblokkøkt.

Vurderinger:

Spark-bibliotek Azure Synapse Spark Fabric Spark
Arbeidsområdenivå Ja Nei
Miljønivå Ja, bassenger Ja, miljøer
Innebygd Ja Ja
Import/eksport Ja Ja
Støtte for API/SDK Ja Ja
  • Andre hensyn:
    • Innebygde biblioteker: Fabric og Azure Synapse deler en felles kjerne av Spark, men de kan variere litt i forskjellig støtte fra sine kjøretidsbiblioteker. Vanligvis er bruk av kode kompatibel med noen unntak. I så fall kan det hende at brukerne trenger kompilering, tillegg av egendefinerte biblioteker og justering av syntaks. Se innebygde Fabric Spark runtime-biblioteker her.

Notatblokksammenligning

Notatblokker og Spark-jobbdefinisjoner er primære kodeelementer for utvikling av Apache Spark-jobber i Fabric. Det er noen forskjeller mellom Azure Synapse Spark-notatblokker og Fabric Spark-notatblokker:

Notatblokkfunksjonalitet Azure Synapse Spark Fabric Spark
Import/eksport Ja Ja
Øktkonfigurasjon Ja, brukergrensesnitt og innebygd Ja, brukergrensesnitt (miljø) og innebygd
IntelliSense Ja Ja
mssparkutils Ja Ja
Notatblokkressurser Nei Ja
Samarbeid Nei Ja
Høy samtidighet Nei Ja
.NET for Spark C# Ja Nei
Støtte for datasamlebåndaktivitet Ja Ja
Innebygd støtte for planlagt kjøring Nei Ja
Støtte for API/SDK Ja Ja
  • mssparkutils: Fordi DMTS-tilkoblinger ikke støttes i Fabric ennå, støttes bare getToken for getSecret øyeblikket i Fabric for mssparkutils.credentials.

  • Notatblokker-ressurser: Stoffnotatblokker gir et Unix-lignende filsystem som hjelper deg med å administrere mapper og filer. Hvis du vil ha mer informasjon, kan du se Slik bruker du Microsoft Fabric-notatblokker.

  • Samarbeid: Fabric-notatblokken er et samarbeidselement som støtter flere brukere som redigerer samme notatblokk. Hvis du vil ha mer informasjon, kan du se Slik bruker du Microsoft Fabric-notatblokker.

  • Høy samtidighet: I Fabric kan du legge ved notatblokker i en økt med høy samtidighet. Dette alternativet er et alternativ for brukere som bruker ThreadPoolExecutor i Azure Synapse. Hvis du vil ha mer informasjon, kan du se Konfigurere modus for høy samtidighet for Fabric-notatblokker.

  • .NET for Spark C#: Fabric støtter ikke .NET Spark (C#). Vi anbefaler imidlertid at brukere med eksisterende arbeidsbelastninger skrevet i C# eller F# overfører til Python eller Scala.

  • Innebygd støtte for planlagt kjøring: Stoff støtter planlagte kjøringer for notatblokker.

  • Andre hensyn:

    • Du kan bruke funksjoner i en notatblokk som bare støttes i en bestemt versjon av Spark. Husk at Spark 2.4 og 3.1 ikke støttes i Fabric.
    • Hvis notatblokken eller Spark-jobben bruker en koblet tjeneste med ulike datakildetilkoblinger eller monteringspunkter, bør du endre Spark-jobbene til å bruke alternative metoder for å håndtere tilkoblinger til eksterne datakilder og vasker. Bruk Spark-kode til å koble til datakilder ved hjelp av tilgjengelige Spark-biblioteker.

Spark-jobbdefinisjonssammenligning

Viktige vurderinger for Spark-jobbdefinisjon :

Spark-jobbfunksjonalitet Azure Synapse Spark Fabric Spark
PySpark Ja Ja
Scala Ja Ja
.NET for Spark C# Ja Nei
SparkR Nei Ja
Import/eksport Ja (brukergrensesnitt) Nei
Støtte for datasamlebåndaktivitet Ja Ja
Innebygd støtte for planlagt kjøring Nei Ja
Retningslinjer for å prøve på nytt Nei Ja
Støtte for API/SDK Ja Ja
  • Spark-jobber: Du kan ta med .py/. R/jar-filer. Stoffet støtter SparkR. En Spark-jobbdefinisjon støtter referansefiler, kommandolinjeargumenter, Spark-konfigurasjoner og lakehouse-referanser.

  • Import/eksport: I Azure Synapse kan du importere/eksportere jsonbaserte Spark-jobbdefinisjoner fra brukergrensesnittet. Denne funksjonen er ikke tilgjengelig ennå i Fabric.

  • .NET for Spark C#: Fabric støtter ikke .NET Spark (C#). Anbefalingen er imidlertid at brukere med eksisterende arbeidsbelastninger skrevet i C# eller F# overfører til Python eller Scala.

  • Innebygd planlagt kjørestøtte: Fabric støtter planlagte kjøringer for en Spark-jobbdefinisjon.

  • Prøv policyer på nytt: Dette alternativet gjør det mulig for brukere å kjøre Spark-strukturerte strømmingsjobber på ubestemt tid.

Hive Metastore (HMS) sammenligning

Hive MetaStore (HMS) forskjeller og vurderinger:

HMS type Azure Synapse Spark Fabric Spark
Intern HMS Ja Ja (lakehouse)
Ekstern HMS Ja Nei
  • Ekstern HMS: Fabric støtter for øyeblikket ikke en katalog-API og tilgang til en ekstern Hive Metastore (HMS).