Dela via


Jämför Fabric Dataingenjör ing och Azure Synapse Spark

Den här jämförelsen mellan Fabric Dataingenjör ing och Azure Synapse Spark innehåller en sammanfattning av viktiga funktioner och en djupgående analys i olika kategorier, bland annat Spark-pooler, konfiguration, bibliotek, notebook-filer och Spark-jobbdefinitioner.

I följande tabell jämförs Azure Synapse Spark och Fabric Spark mellan olika kategorier:

Kategori Azure Synapse Spark Fabric Spark
Spark-pooler Spark-pool
-
-
Anpassad pool för startpool /
V-order
Hög samtidighet
Spark-konfigurationer Poolnivå
Definitionsnivå för notebook- eller Spark-jobb
Miljönivå
Definitionsnivå för notebook- eller Spark-jobb
Spark-bibliotek Paket på arbetsytenivå
Paket på poolnivå
Infogade paket
-
Miljöbibliotek
Infogade bibliotek
Resurser Notebook (Python, Scala, Spark SQL, R, .NET)
Spark-jobbdefinition (Python, Scala, .NET)
Synapse-datapipelines
Pipelineaktiviteter (notebook-fil, SJD)
Notebook (Python, Scala, Spark SQL, R)
Spark-jobbdefinition (Python, Scala, R)
Data Factory-datapipelines
Pipelineaktiviteter (notebook-fil, SJD)
Data Primär lagring (ADLS Gen2)
Datahemvist (kluster/regionbaserad)
Primär lagring (OneLake)
Datahemvist (kapacitet/regionbaserad)
Metadata Internt Hive-metaarkiv (HMS)
Extern HMS (med Azure SQL DB)
Intern HMS (lakehouse)
-
anslutningar Anslutningstyp (länkade tjänster)
Datakällor
Datakällans conn. med arbetsyteidentitet
Anslutningstyp (DMTS)
Datakällor
-
Säkerhet RBAC och åtkomstkontroll
ACL:er för lagring (ADLS Gen2)
Privata länkar
Hanterat virtuellt nätverk (nätverksisolering)
Synapse-arbetsyteidentitet
Dataexfiltreringsskydd (DEP)
Tjänsttaggar
Key Vault (via mssparkutils/länkad tjänst)
RBAC och åtkomstkontroll
OneLake RBAC
Privata länkar
Hanterat virtuellt nätverk
Arbetsyteidentitet
-
Tjänsttaggar
Key Vault (via notebookutils)
DevOps Azure DevOps-integrering
CI/CD (inget inbyggt stöd)
Azure DevOps-integrering
Distributionspipelines
Utvecklarupplevelse IDE-integrering (IntelliJ)
Synapse Studio-användargränssnitt
Samarbete (arbetsytor)
Livy API
API/SDK
mssparkutils
IDE-integrering (VS Code)
Användargränssnitt för infrastrukturresurser
Samarbete (arbetsytor och delning)
Livy API
API/SDK
notebooktutils
Loggning och övervakning Spark Advisor
Inbyggda övervakningspooler och jobb (via Synapse Studio)
Spark-historikserver
Prometheus/Grafana
Log Analytics
Lagringskonto
Event Hubs
Spark Advisor
Inbyggda övervakningspooler och jobb (via övervakningshubben)
Spark-historikserver
-
Log Analytics
Lagringskonto
Event Hubs
Affärskontinuitet och haveriberedskap (BCDR) BCDR (data) ADLS Gen2 BCDR (data) OneLake

Överväganden och begränsningar:

  • DMTS-integrering: Du kan inte använda DMTS via notebook-filer och Spark-jobbdefinitioner.

  • RBAC på arbetsbelastningsnivå: Infrastrukturresurser stöder fyra olika arbetsyteroller. Mer information finns i Roller i arbetsytor i Microsoft Fabric.

  • Hanterad identitet: För närvarande har Fabric inte stöd för att köra notebook-filer och Spark-jobbdefinitioner med hjälp av arbetsytans identitet eller hanterade identitet för Azure KeyVault i notebook-filer.

  • CI/CD: Du kan använda Infrastruktur-API/SDK och distributionspipelines.

  • Andra överväganden:

    • JDBC: JDBC-anslutningsstöd är för närvarande inte tillgängligt i Infrastrukturresurser.

Jämförelse av Spark-pool

I följande tabell jämförs Azure Synapse Spark- och Fabric Spark-pooler.

Spark-inställning Azure Synapse Spark Fabric Spark
Livepool (förvärmd instans) - Ja, startpooler
Anpassad pool Ja Ja
Spark-versioner (runtime) 2.4, 3.1, 3.2, 3.3, 3.4 3.3, 3.4, 3.5
Automatisk skalning Ja Ja
Dynamisk allokering av köre Ja, upp till 200 Ja, baserat på kapacitet
Justerbara nodstorlekar Ja, 3-200 Ja, 1 baserat på kapacitet
Minsta nodkonfiguration 3 noder 1 nod
Nodstorleksfamilj Minnesoptimerad, GPU accelererad Minnesoptimerad
Nodstorlek Small-XXXLarge Small-XXLarge
Autopausera Ja, anpassningsbart minst 5 minuter Ja, oförlåtlig 2 minuter
Hög samtidighet Nej Ja
V-order Nej Ja
Autotune för Spark Nej Ja
Intern körningsmotor Nej Ja
Samtidighetsgränser Åtgärdat Variabel baserat på kapacitet
Flera Spark-pooler Ja Ja (miljöer)
Intelligent cache Ja Ja
Stöd för API/SDK Ja Ja
  • Körning: Infrastrukturresurser stöder inte Spark 2.4-, 3.1- och 3.2-versioner. Fabric Spark stöder Spark 3.3 med Delta 2.2 i Runtime 1.1, Spark 3.4 med Delta 2.4 inom Runtime 1.2 och Spark 3.5 med Delta 3.1 inom Runtime 1.3.

  • Autoskalning: I Azure Synapse Spark kan poolen skala upp till 200 noder oavsett nodstorlek. I Infrastruktur utsätts det maximala antalet noder för nodstorlek och etablerad kapacitet. Se följande exempel för F64 SKU.

    Storlek på Spark-pool Azure Synapse Spark Fabric Spark (anpassad pool, SKU F64)
    Litet Min: 3, Max: 200 Min: 1, Max: 32
    Medium Min: 3, Max: 200 Min: 1, Max: 16
    Stort Min: 3, Max: 200 Min: 1, Max: 8
    X-Large Min: 3, Max: 200 Min: 1, Max: 4
    XX-Large Min: 3, Max: 200 Min: 1, Max: 2
  • Justerbara nodstorlekar: I Azure Synapse Spark kan du gå upp till 200 noder. I Infrastruktur beror antalet noder som du kan ha i din anpassade Spark-pool på nodstorleken och infrastrukturkapaciteten. Kapacitet är ett mått på hur mycket databehandlingskraft du kan använda i Azure. Ett sätt att tänka på det är att två virtuella Spark-kärnor (en enhet för beräkningskraft för Spark) är lika med en kapacitetsenhet. En SKU F64 för infrastrukturkapacitet har till exempel 64 kapacitetsenheter, vilket motsvarar 128 virtuella Spark-kärnor. Så om du väljer en liten nodstorlek kan du ha upp till 32 noder i poolen (128/4 = 32). Sedan totalt antal virtuella kärnor i kapaciteten/virtuella kärnor per nodstorlek = totalt antal tillgängliga noder. Mer information finns i Spark-beräkning.

  • Nodstorleksfamilj: Infrastruktur spark-pooler stöder endast minnesoptimerad nodstorleksfamilj för tillfället. Om du använder en GPU-accelererad SKU Spark-pool i Azure Synapse är de inte tillgängliga i Fabric.

  • Nodstorlek: Den xx-stora nodstorleken levereras med 432 GB minne i Azure Synapse, medan samma nodstorlek har 512 GB i Infrastrukturresurser, inklusive 64 virtuella kärnor. Resten av nodstorlekarna (små till x stora) har samma virtuella kärnor och minne i både Azure Synapse och Fabric.

  • Automatisk pausning: Om du aktiverar den i Azure Synapse Spark pausas Apache Spark-poolen automatiskt efter en angiven inaktivitetstid. Den här inställningen kan konfigureras i Azure Synapse (minst 5 minuter), men anpassade pooler har en oförlåtlig standardtid för autopaus på 2 minuter i Infrastruktur när sessionen upphör att gälla. Standardsessionens förfallodatum är inställt på 20 minuter i Infrastrukturresurser.

  • Hög samtidighet: Infrastrukturresurser stöder hög samtidighet i notebook-filer. Mer information finns i Läge för hög samtidighet i Fabric Spark.

  • Samtidighetsgränser: När det gäller samtidighet har Azure Synapse Spark en gräns på 50 samtidiga jobb som körs per Spark-pool och 200 köade jobb per Spark-pool. De maximala aktiva jobben är 250 per Spark-pool och 1 000 per arbetsyta. I Microsoft Fabric Spark definierar kapacitets-SKU:er samtidighetsgränserna. SKU:er har olika gränser för maximalt antal samtidiga jobb som sträcker sig från 1 till 512. Dessutom har Fabric Spark ett dynamiskt reservbaserat begränsningssystem för att hantera samtidighet och säkerställa smidig drift även under tider med hög användning. Mer information finns i Samtidighetsgränser och köer i Microsoft Fabric Spark - och Fabric-kapaciteter.

  • Flera Spark-pooler: Om du vill ha flera Spark-pooler använder du Infrastrukturmiljöer för att välja en pool efter notebook- eller Spark-jobbdefinition. Mer information finns i Skapa, konfigurera och använda en miljö i Microsoft Fabric.

Jämförelse av Spark-konfigurationer

Spark-konfigurationer kan tillämpas på olika nivåer:

  • Miljönivå: Dessa konfigurationer används som standardkonfiguration för alla Spark-jobb i miljön.
  • Infogad nivå: Ange Spark-konfigurationer infogade med hjälp av notebook-filer och Spark-jobbdefinitioner.

Båda alternativen stöds i Azure Synapse Spark och Fabric, men det finns några saker att tänka på:

Apache Spark-konfiguration Azure Synapse Spark Fabric Spark
Miljönivå Ja, pooler Ja, miljöer
Infogad Ja Ja
Import/export Ja Ja (.yml från miljöer)
Stöd för API/SDK Ja Ja
  • Miljönivå: I Azure Synapse kan du definiera flera Spark-konfigurationer och tilldela dem till olika Spark-pooler. Du kan göra detta i Infrastrukturresurser med hjälp av miljöer.

  • Infogad: I Azure Synapse stöder både notebook-filer och Spark-jobb att ansluta olika Spark-konfigurationer. I Infrastruktur anpassas konfigurationer på sessionsnivå med inställningen spark.conf.set(<conf_name>, <conf_value>) . För batchjobb kan du även använda konfigurationer via SparkConf.

  • Import/export: Det här alternativet för Spark-konfigurationer är tillgängligt i Infrastrukturmiljöer.

  • Andra överväganden:

    • Oföränderliga Spark-konfigurationer: Vissa Spark-konfigurationer är oföränderliga. Om du får meddelandet AnalysisException: Can't modify the value of a Spark config: <config_name>är egenskapen i fråga oföränderlig.
    • FAIR-schemaläggare: FAIR-schemaläggaren används i hög samtidighetsläge.
    • V-Order: V-Order är skrivtidsoptimering som tillämpas på de parquet-filer som är aktiverade som standard i Fabric Spark-pooler.
    • Optimerad skrivning: Optimerad skrivning är inaktiverad som standard i Azure Synapse men aktiverad som standard för Fabric Spark.

Jämförelse av Spark-bibliotek

Du kan använda Spark-bibliotek på olika nivåer:

  • Arbetsytenivå: Du kan inte ladda upp/installera dessa bibliotek till din arbetsyta och senare tilldela dem till en specifik Spark-pool i Azure Synapse.
  • Miljönivå: Du kan ladda upp/installera bibliotek till en miljö. Bibliotek på miljönivå är tillgängliga för alla notebook-filer och Spark-jobbdefinitioner som körs i miljön.
  • Infogad: Förutom bibliotek på miljönivå kan du även ange infogade bibliotek. Till exempel i början av en notebook-session.

Överväganden:

Spark-bibliotek Azure Synapse Spark Fabric Spark
Arbetsytenivå Ja Nej
Miljönivå Ja, pooler Ja, miljöer
Infogad Ja Ja
Import/export Ja Ja
Stöd för API/SDK Ja Ja
  • Andra överväganden:
    • Inbyggda bibliotek: Fabric och Azure Synapse delar en gemensam kärna i Spark, men de kan skilja sig något åt i olika stöd för sina körningsbibliotek. Att använda kod är vanligtvis kompatibelt med vissa undantag. I så fall kan användarna behöva kompilering, tillägg av anpassade bibliotek och justeringssyntax. Se inbyggda Infrastruktur Spark-körningsbibliotek här.

Jämförelse av notebook-filer

Notebook-filer och Spark-jobbdefinitioner är primära kodobjekt för utveckling av Apache Spark-jobb i Infrastrukturresurser. Det finns vissa skillnader mellan Azure Synapse Spark-notebook-filer och Fabric Spark-notebook-filer:

Notebook-funktion Azure Synapse Spark Fabric Spark
Import/export Ja Ja
Sessionskonfiguration Ja, användargränssnitt och infogat Ja, användargränssnitt (miljö) och infogat
IntelliSense Ja Ja
mssparkutils Ja Ja
Notebook-resurser Nej Ja
Samarbeta Nej Ja
Hög samtidighet Nej Ja
.NET för Spark C# Ja Nej
Stöd för pipelineaktivitet Ja Ja
Inbyggt stöd för schemalagd körning Nej Ja
Stöd för API/SDK Ja Ja
  • mssparkutils: Eftersom DMTS-anslutningar inte stöds i Infrastruktur ännu, stöds bara getToken och getSecret stöds för tillfället i Infrastrukturresurser för mssparkutils.credentials.

  • Notebooks-resurser: Infrastrukturanteckningsböcker tillhandahåller ett Unix-liknande filsystem som hjälper dig att hantera dina mappar och filer. Mer information finns i Använda Microsoft Fabric-notebook-filer.

  • Samarbeta: Fabric Notebook är ett samarbetsobjekt som stöder flera användare som redigerar samma notebook-fil. Mer information finns i Använda Microsoft Fabric-notebook-filer.

  • Hög samtidighet: I Infrastrukturresurser kan du koppla notebook-filer till en session med hög samtidighet. Det här alternativet är ett alternativ för användare som använder ThreadPoolExecutor i Azure Synapse. Mer information finns i Konfigurera läge för hög samtidighet för Fabric-notebook-filer.

  • .NET för Spark C#: Fabric stöder inte .NET Spark (C#). Emellertid är rekommendationen att användare med befintliga arbetsuppgifter skrivna i C# eller F# migrerar till Python eller Scala.

  • Inbyggt stöd för schemalagd körning: Infrastrukturresurser stöder schemalagda körningar för notebook-filer.

  • Andra överväganden:

    • Du kan använda funktioner i en notebook-fil som endast stöds i en viss version av Spark. Kom ihåg att Spark 2.4 och 3.1 inte stöds i Infrastrukturresurser.
    • Om ditt notebook- eller Spark-jobb använder en länkad tjänst med olika datakällanslutningar eller monteringspunkter bör du ändra dina Spark-jobb så att de använder alternativa metoder för att hantera anslutningar till externa datakällor och mottagare. Använd Spark-kod för att ansluta till datakällor med hjälp av tillgängliga Spark-bibliotek.

Jämförelse av Spark-jobbdefinition

Viktiga definitionsöverväganden för Spark-jobb :

Spark-jobbfunktion Azure Synapse Spark Fabric Spark
PySpark Ja Ja
Scala Ja Ja
.NET för Spark C# Ja Nej
SparkR Nej Ja
Import/export Ja (användargränssnitt) Nej
Stöd för pipelineaktivitet Ja Ja
Inbyggt stöd för schemalagd körning Nej Ja
Principer för nya försök Nej Ja
Stöd för API/SDK Ja Ja
  • Spark-jobb: Du kan ta med dina .py/. R/jar-filer. Fabric har stöd för SparkR. En Spark-jobbdefinition stöder referensfiler, kommandoradsargument, Spark-konfigurationer och lakehouse-referenser.

  • Import/export: I Azure Synapse kan du importera/exportera json-baserade Spark-jobbdefinitioner från användargränssnittet. Den här funktionen är inte tillgänglig ännu i Fabric.

  • .NET för Spark C#: Fabric stöder inte .NET Spark (C#). Rekommendationen är dock att användare med befintliga arbetsbelastningar som skrivits i C# eller F# migrerar till Python eller Scala.

  • Inbyggt stöd för schemalagd körning: Infrastrukturresurser stöder schemalagda körningar för en Spark-jobbdefinition.

  • Återförsöksprinciper: Med det här alternativet kan användare köra Spark-strukturerade direktuppspelningsjobb på obestämd tid.

Jämförelse av Hive-metaarkiv (HMS)

Skillnader och överväganden för Hive MetaStore (HMS):

HMS-typ Azure Synapse Spark Fabric Spark
Intern HMS Ja Ja (lakehouse)
Extern HMS Ja Nej
  • Externt HMS: Infrastrukturresurser stöder för närvarande inte ett katalog-API och åtkomst till ett externt Hive-metaarkiv (HMS).