Del via


Sammenlign Fabric Dataudvikler ing og Azure Synapse Spark

Denne sammenligning mellem Fabric Dataudvikler ing og Azure Synapse Spark indeholder en oversigt over vigtige funktioner og en dybdegående analyse på tværs af forskellige kategorier, som omfatter Spark-puljer, konfiguration, biblioteker, notesbøger og Spark-jobdefinitioner.

I følgende tabel sammenlignes Azure Synapse Spark og Fabric Spark på tværs af forskellige kategorier:

Kategori Azure Synapse Spark Stof spark
Spark-bassiner Spark-pool
-
-
Startpulje / - brugerdefineret pulje
V-rækkefølge
Høj samtidighed
Spark-konfigurationer Puljeniveau
Definitionsniveau for notesbog eller Spark-job
Miljøniveau
Definitionsniveau for notesbog eller Spark-job
Spark-biblioteker Pakker på arbejdsområdeniveau
Pakker på gruppeniveau
Indbyggede pakker
-
Miljøbiblioteker
Indbyggede biblioteker
Ressourcer Notesbog (Python, Scala, Spark SQL, R, .NET)
Spark-jobdefinition (Python, Scala, .NET)
Synapse-datapipelines
Pipelineaktiviteter (notesbog, SJD)
Notesbog (Python, Scala, Spark SQL, R)
Spark-jobdefinition (Python, Scala, R)
Data Factory-datapipelines
Pipelineaktiviteter (notesbog, SJD)
Data Primært lager (ADLS Gen2)
Dataopbevaring (klynge/områdebaseret)
Primært lager (OneLake)
Dataopbevaring (kapacitet/områdebaseret)
Metadata Intern hive-metastore (HMS)
Ekstern HMS (ved hjælp af Azure SQL DB)
Intern HMS (lakehouse)
-
Forbindelser Forbindelsestype (sammenkædede tjenester)
Datakilder
Datakildekonn. med arbejdsområdeidentitet
Forbindelsestype (DMTS)
Datakilder
-
Sikkerhed RBAC og adgangskontrol
AdLS Gen2 (Lager ACL'er)
Private Links
Administreret VNet (netværksisolation)
Synapse-arbejdsområdeidentitet
Data Exfiltration Protection (DEP)
Tjenestekoder
Key Vault (via mssparkutils/linked service)
RBAC og adgangskontrol
OneLake RBAC
Private Links
Administreret VNet
Arbejdsområdeidentitet
-
Tjenestekoder
Key Vault (via mssparkutils)
DevOps Azure DevOps-integration
CI/CD (ingen indbygget understøttelse)
Azure DevOps-integration
Udrulningspipelines
Udvikleroplevelse IDE-integration (IntelliJ)
Brugergrænsefladen i Synapse Studio
Samarbejde (arbejdsområder)
Livy API
API/SDK
mssparkutils
IDE-integration (VS Code)
Stofbrugergrænseflade
Samarbejde (arbejdsområder og deling)
-
API/SDK
mssparkutils
Logføring og overvågning Spark Advisor
Indbyggede overvågningspuljer og job (via Synapse Studio)
Spark-oversigtsserver
Prometheus/Grafana
Log Analytics
Lagerkonto
Event Hubs
Spark Advisor
Indbyggede overvågningspuljer og job (via overvågningshub)
Spark-oversigtsserver
-
-
-
-
Forretningskontinuitet og it-katastrofeberedskab (BCDR) BCDR (data) ADLS Gen2 BCDR (data) OneLake

Overvejelser og begrænsninger:

  • DMTS-integration: Du kan ikke bruge DMTS via notesbøger og Spark-jobdefinitioner.

  • RBAC på arbejdsbelastningsniveau: Fabric understøtter fire forskellige arbejdsområderoller. Du kan få flere oplysninger under Roller i arbejdsområder i Microsoft Fabric.

  • Administreret identitet: Fabric understøtter i øjeblikket ikke kørsel af notesbøger og Spark-jobdefinitioner ved hjælp af arbejdsområdets identitet eller administrerede identitet for Azure KeyVault i notesbøger.

  • CI/CD: Du kan bruge Fabric API/SDK og udrulningspipelines.

  • Livy API, og hvordan du indsender og administrerer Spark-job: Livy API er i køreplanen, men endnu ikke eksponeret i Fabric. Du skal oprette notesbøger og Spark-jobdefinitioner med fabric-brugergrænsefladen.

  • Spark-logge og -målepunkter: I Azure Synapse kan du sende Spark-logge og -målepunkter til dit eget lager, f.eks. Log Analytics, blob og Event Hubs. Du kan også få en liste over Spark-programmer til arbejdsområdet fra API'en. I øjeblikket er begge disse funktioner ikke tilgængelige i Fabric.

  • Andre overvejelser:

    • JDBC: Understøttelse af JDBC-forbindelse er i øjeblikket ikke tilgængelig i Fabric.

Sammenligning af Spark-bassin

I følgende tabel sammenlignes Azure Synapse Spark- og Fabric Spark-puljer.

Spark-indstilling Azure Synapse Spark Stof spark
Livebassin (førvarme forekomster) - Ja, startpuljer
Brugerdefineret pulje Ja Ja
Spark-versioner (runtime) 2.4, 3.1, 3.2, 3.3, 3.4 3.3, 3.4, 3.5
Automatisk skalering Ja Ja
Dynamisk allokering af eksekutorer Ja, op til 200 Ja, baseret på kapacitet
Justerbare nodestørrelser Ja, 3-200 Ja, 1-baseret på kapacitet
Mindste nodekonfiguration 3 noder 1 node
Nodestørrelsesfamilie Hukommelse optimeret, GPU-accelereret Hukommelsesoptimeret
Nodestørrelse Lille XXXLarge Lille XXLarge
Autopause Ja, minimum 5 minutter, der kan tilpasses Ja, ikke-brugerdefineret 2 minutter
Høj samtidighed Nej Ja
V-rækkefølge Nej Ja
Spark autotune Nej Ja
Oprindeligt eksekveringsprogram Nej Ja
Samtidighedsgrænser Løst Variabel baseret på kapacitet
Flere Spark-puljer Ja Ja (miljøer)
Intelligent cache Ja Ja
API/SDK-understøttelse Ja Ja
  • Kørsel: Fabric understøtter ikke Spark 2.4-, 3.1- og 3.2-versioner. Fabric Spark understøtter Spark 3.3 med Delta 2.2 inden for Runtime 1.1, Spark 3.4 med Delta 2.4 inden for Runtime 1.2 og Spark 3.5 med Delta 3.1 inden for Runtime 1.3.

  • Autoskalering: I Azure Synapse Spark kan puljen skalere op til 200 noder uanset nodestørrelsen. I Fabric er det maksimale antal noder underlagt nodestørrelsen og den klargjorte kapacitet. Se følgende eksempel for F64 SKU'en.

    Spark-bassinstørrelse Azure Synapse Spark Fabric Spark (brugerdefineret pool, SKU F64)
    Lille Min.: 3, maks.: 200 Min.: 1, maks.: 32
    Mellem Min.: 3, maks.: 200 Min.: 1, maks.: 16
    Stor Min.: 3, maks.: 200 Min.: 1, maks.: 8
    X-stor Min.: 3, maks.: 200 Min.: 1, maks.: 4
    XX-stor Min.: 3, maks.: 200 Min.: 1, maks.: 2
  • Justerbare nodestørrelser: I Azure Synapse Spark kan du gå op til 200 noder. I Fabric afhænger antallet af noder, du kan have i din brugerdefinerede Spark-pool, af din nodestørrelse og Fabric-kapacitet. Kapacitet er en måling af, hvor meget beregningskraft du kan bruge i Azure. En måde at tænke på det på er, at to Spark vCores (en enhed med beregningskraft til Spark) er lig med én kapacitetsenhed. En Fabric Capacity SKU F64 har f.eks. 64 kapacitetsenheder, hvilket svarer til 128 Spark VCores. Så hvis du vælger en lille nodestørrelse, kan du have op til 32 noder i din pool (128/4 = 32). Derefter er det samlede antal vCores i kapaciteten/vCores pr. nodestørrelse = det samlede antal tilgængelige noder. Du kan få flere oplysninger under Spark Compute.

  • Nodestørrelsesfamilie: Fabric Spark-puljer understøtter kun hukommelsesoptimeret nodestørrelsesfamilie indtil videre. Hvis du bruger en GPU-accelereret SKU Spark-pool i Azure Synapse, er de ikke tilgængelige i Fabric.

  • Nodestørrelse: Den xx store nodestørrelse leveres med 432 GB hukommelse i Azure Synapse, mens den samme nodestørrelse har 512 GB i Fabric, herunder 64 vCores. Resten af nodestørrelserne (små til og med x store) har de samme vCores og hukommelse i både Azure Synapse og Fabric.

  • Automatisk pause: Hvis du aktiverer den i Azure Synapse Spark, stopper Apache Spark-gruppen automatisk midlertidigt efter en angivet mængde inaktiv tid. Denne indstilling kan konfigureres i Azure Synapse (minimum 5 minutter), men brugerdefinerede puljer har en ikke-brugerdefineret standardtid på 2 minutter i Fabric, når sessionen udløber. Standardsessionens udløb er angivet til 20 minutter i Fabric.

  • Høj samtidighed: Fabric understøtter høj samtidighed i notesbøger. Du kan få flere oplysninger under Tilstanden Høj samtidighed i Fabric Spark.

  • Samtidighedsgrænser: Med hensyn til samtidighed har Azure Synapse Spark en grænse på 50 samtidige kørende job pr. Spark-gruppe og 200 køinddelte job pr. Spark-gruppe. De maksimale aktive job er 250 pr. Spark-gruppe og 1000 pr. arbejdsområde. I Microsoft Fabric Spark definerer kapacitets-SKU'er samtidighedsgrænserne. SKU'er har forskellige grænser for maks. samtidige job, der spænder fra 1 til 512. Fabric Spark har også et dynamisk reservebaseret begrænsningssystem til at administrere samtidighed og sikre problemfri drift selv i spidsbelastningstider. Du kan få flere oplysninger under Samtidighedsgrænser og -kø i Microsoft Fabric Spark - og Fabric-kapaciteter.

  • Flere Spark-puljer: Hvis du vil have flere Spark-puljer, skal du bruge Fabric-miljøer til at vælge en pulje efter notesbog eller Spark-jobdefinition. Du kan få flere oplysninger under Opret, konfigurer og brug et miljø i Microsoft Fabric.

Sammenligning af Spark-konfigurationer

Spark-konfigurationer kan anvendes på forskellige niveauer:

  • Miljøniveau: Disse konfigurationer bruges som standardkonfiguration for alle Spark-job i miljøet.
  • Indbygget niveau: Angiv Spark-konfigurationer indbygget ved hjælp af notesbøger og Spark-jobdefinitioner.

Selvom begge indstillinger understøttes i Azure Synapse Spark og Fabric, er der nogle overvejelser:

Spark-konfiguration Azure Synapse Spark Stof spark
Miljøniveau Ja, puljer Ja, miljøer
Inline Ja Ja
Importér/eksportér Ja Ja (.yml fra miljøer)
API/SDK-understøttelse Ja Ja
  • Miljøniveau: I Azure Synapse kan du definere flere Spark-konfigurationer og tildele dem til forskellige Spark-puljer. Det kan du gøre i Fabric ved hjælp af miljøer.

  • Indbygget: I Azure Synapse understøtter både notesbøger og Spark-job vedhæftning af forskellige Spark-konfigurationer. I Fabric tilpasses konfigurationer på sessionsniveau med indstillingen spark.conf.set(<conf_name>, <conf_value>) . I forbindelse med batchjob kan du også anvende konfigurationer via SparkConf.

  • Import/eksport: Denne indstilling for Spark-konfigurationer er tilgængelig i Fabric-miljøer.

  • Andre overvejelser:

    • Uforanderlige Spark-konfigurationer: Nogle Spark-konfigurationer er uforanderlige. Hvis du får vist meddelelsen AnalysisException: Can't modify the value of a Spark config: <config_name>, er den pågældende egenskab uforanderlig.
    • FAIR scheduler: FAIR scheduler bruges i høj samtidighedstilstand.
    • V-Order: V-Order er skrivetidsoptimering anvendt på parketfiler, der som standard er aktiveret i Fabric Spark-puljer.
    • Optimeret skrivning: Optimeret skrivning er som standard deaktiveret i Azure Synapse, men aktiveret som standard for Fabric Spark.

Sammenligning af Spark-biblioteker

Du kan anvende Spark-biblioteker på forskellige niveauer:

  • Arbejdsområdeniveau: Du kan ikke uploade/installere disse biblioteker til dit arbejdsområde og senere tildele dem til en bestemt Spark-gruppe i Azure Synapse.
  • Miljøniveau: Du kan uploade/installere biblioteker til et miljø. Biblioteker på miljøniveau er tilgængelige for alle notesbøger og Spark-jobdefinitioner, der kører i miljøet.
  • Indbygget: Ud over biblioteker på miljøniveau kan du også angive indbyggede biblioteker. Det kan f.eks. være i starten af en notesbogsession.

Overvejelser:

Spark-bibliotek Azure Synapse Spark Stof spark
Arbejdsområdeniveau Ja Nej
Miljøniveau Ja, puljer Ja, miljøer
Inline Ja Ja
Importér/eksportér Ja Ja
API/SDK-understøttelse Ja Ja
  • Andre overvejelser:
    • Indbyggede biblioteker: Fabric og Azure Synapse deler en fælles kerne af Spark, men de kan variere en smule i forskellige understøttelser af deres kørselsbiblioteker. Brug af kode er typisk kompatibel med nogle undtagelser. I dette tilfælde kan brugerne have brug for kompilering, tilføjelse af brugerdefinerede biblioteker og justering af syntaks. Se indbyggede Fabric Spark-kørselsbiblioteker her.

Sammenligning af notesbog

Notesbøger og Spark-jobdefinitioner er primære kodeelementer til udvikling af Apache Spark-job i Fabric. Der er nogle forskelle mellem Azure Synapse Spark-notesbøger og Fabric Spark-notesbøger:

Notesbogfunktionalitet Azure Synapse Spark Stof spark
Importér/eksportér Ja Ja
Konfiguration af session Ja, brugergrænseflade og indbygget Ja, brugergrænseflade (miljø) og indbygget
IntelliSense Ja Ja
mssparkutils Ja Ja
Notesbogressourcer Nej Ja
Samarbejd Nej Ja
Høj samtidighed Nej Ja
.NET til Spark C# Ja Nej
Understøttelse af pipelineaktivitet Ja Ja
Indbygget understøttelse af planlagt kørsel Nej Ja
API/SDK-understøttelse Ja Ja
  • mssparkutils: Da DMTS-forbindelser endnu ikke understøttes i Fabric, er det kun getToken og getSecret understøttes indtil videre i Fabric for mssparkutils.credentials.

  • Ressourcer til notesbøger: Fabric-notesbøger indeholder et Unix-lignende filsystem, der kan hjælpe dig med at administrere dine mapper og filer. Du kan få flere oplysninger under Sådan bruger du Microsoft Fabric-notesbøger.

  • Samarbejd: Fabric-notesbogen er et samarbejdselement, der understøtter, at flere brugere redigerer den samme notesbog. Du kan få flere oplysninger under Sådan bruger du Microsoft Fabric-notesbøger.

  • Høj samtidighed: I Fabric kan du knytte notesbøger til en session med høj samtidighed. Denne indstilling er et alternativ til brugere, der bruger ThreadPoolExecutor i Azure Synapse. Du kan få flere oplysninger under Konfigurer tilstanden med høj samtidighed for Fabric-notesbøger.

  • .NET til Spark C#: Fabric understøtter ikke .NET Spark (C#). Vi anbefaler dog, at brugere med eksisterende arbejdsbelastninger, der er skrevet i C# eller F#, migrerer til Python eller Scala.

  • Indbygget understøttelse af planlagt kørsel: Fabric understøtter planlagte kørsler for notesbøger.

  • Andre overvejelser:

    • Du kan bruge funktioner i en notesbog, der kun understøttes i en bestemt version af Spark. Husk, at Spark 2.4 og 3.1 ikke understøttes i Fabric.
    • Hvis din notesbog eller Spark-job bruger en sammenkædet tjeneste med forskellige datakildeforbindelser eller tilslutningspunkter, skal du ændre dine Spark-job, så du kan bruge alternative metoder til håndtering af forbindelser til eksterne datakilder og vaske. Brug Spark-kode til at oprette forbindelse til datakilder ved hjælp af tilgængelige Spark-biblioteker.

Sammenligning af definition af Spark-job

Vigtige overvejelser i forbindelse med definitionen af Spark-job:

Spark-jobfunktionalitet Azure Synapse Spark Stof spark
PySpark Ja Ja
Scala Ja Ja
.NET til Spark C# Ja Nej
SparkR Nej Ja
Importér/eksportér Ja (brugergrænseflade) Nr.
Understøttelse af pipelineaktivitet Ja Ja
Indbygget understøttelse af planlagt kørsel Nej Ja
Politikker for Forsøg igen Nej Ja
API/SDK-understøttelse Ja Ja
  • Spark-job: Du kan medbringe dine .py/. R/jar-filer. Fabric understøtter SparkR. En Spark-jobdefinition understøtter referencefiler, kommandolinjeargumenter, Spark-konfigurationer og lakehouse-referencer.

  • Import/eksport: I Azure Synapse kan du importere/eksportere json-baserede Spark-jobdefinitioner fra brugergrænsefladen. Denne funktion er endnu ikke tilgængelig i Fabric.

  • .NET til Spark C#: Fabric understøtter ikke .NET Spark (C#). Anbefalingen er dog, at brugere med eksisterende arbejdsbelastninger, der er skrevet i C# eller F#, migrerer til Python eller Scala.

  • Indbygget understøttelse af planlagt kørsel: Fabric understøtter planlagte kørsler for en Spark-jobdefinition.

  • Forsøg politikker igen: Denne indstilling giver brugerne mulighed for at køre Spark-strukturerede streamingjob på ubestemt tid.

Sammenligning af Hive Metastore (HMS)

Forskelle og overvejelser i forbindelse med Hive MetaStore (HMS):

HMS-type Azure Synapse Spark Stof spark
Intern HMS Ja Ja (lakehouse)
Ekstern HMS Ja Nej
  • Ekstern HMS: Fabric understøtter i øjeblikket ikke en Katalog-API og adgang til en ekstern Hive Metastore (HMS).