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.
Kommentar
Lär dig hur du migrerar Azure Synapse Spark-pooler till Infrastrukturresurser.
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.
-
Oföränderliga Spark-konfigurationer: Vissa Spark-konfigurationer är oföränderliga. Om du får meddelandet
Kommentar
Lär dig hur du migrerar Spark-konfigurationer från Azure Synapse till Infrastrukturresurser.
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.
Kommentar
Lär dig hur du migrerar Azure Synapse Spark-bibliotek till Infrastrukturresurser.
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
ochgetSecret
stöds för tillfället i Infrastrukturresurser förmssparkutils.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.
Kommentar
Lär dig hur du migrerar notebook-filer från Azure Synapse till Infrastrukturresurser.
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.
Kommentar
Lär dig hur du migrerar Spark-jobbdefinitioner från Azure Synapse till Fabric.
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).
Kommentar
Lär dig hur du migrerar Azure Synapse Spark-katalog-HMS-metadata till Infrastrukturresurser.
Relaterat innehåll
- Läs mer om migreringsalternativ för Spark-pooler, konfigurationer, bibliotek, notebook-filer och Spark-jobbdefinitioner
- Migrera data och pipelines
- Migrera Metadata för Hive-metaarkiv