Fabric Data-engineer ing en Azure Synapse Spark vergelijken
Deze vergelijking tussen Fabric Data-engineer ing en Azure Synapse Spark biedt een overzicht van de belangrijkste functies en een uitgebreide analyse in verschillende categorieën, waaronder Spark-pools, configuratie, bibliotheken, notebooks en Spark-taakdefinities.
In de volgende tabel worden Azure Synapse Spark en Fabric Spark in verschillende categorieën vergeleken:
Categorie | Azure Synapse Spark | Fabric Spark |
---|---|---|
Spark-pools | Spark-pool - - |
Aangepaste pool voor starterspool / V-Order Hoge gelijktijdigheid |
Spark-configuraties | Poolniveau Niveau van notebook- of Spark-taakdefinitie |
Omgevingsniveau Niveau van notebook- of Spark-taakdefinitie |
Spark-bibliotheken | Pakketten op werkruimteniveau Pakketten op poolniveau Inlinepakketten |
- Omgevingsbibliotheken Inlinebibliotheken |
Resources | Notebook (Python, Scala, Spark SQL, R, .NET) Spark-taakdefinitie (Python, Scala, .NET) Synapse-gegevenspijplijnen Pijplijnactiviteiten (notebook, SJD) |
Notebook (Python, Scala, Spark SQL, R) Spark-taakdefinitie (Python, Scala, R) Data Factory-gegevenspijplijnen Pijplijnactiviteiten (notebook, SJD) |
Gegevens | Primaire opslag (ADLS Gen2) Gegevenslocatie (op basis van cluster/regio) |
Primaire opslag (OneLake) Gegevenslocatie (op basis van capaciteit/regio) |
Metagegevens | Interne Hive Metastore (HMS) Externe HMS (met behulp van Azure SQL DB) |
Interne HMS (lakehouse) - |
Connecties | Connectortype (gekoppelde services) Gegevensbronnen Gegevensbron conn. met werkruimte-id |
Connectortype (DMTS) Gegevensbronnen - |
Beveiliging | RBAC en toegangsbeheer Opslag-ACL's (ADLS Gen2) Privékoppelingen Beheerd VNet (netwerkisolatie) Synapse-werkruimte-identiteit Gegevensexfiltratiebeveiliging (DEP) Servicetags Key Vault (via mssparkutils/gekoppelde service) |
RBAC en toegangsbeheer OneLake RBAC Privékoppelingen Beheerd VNet Werkruimte-identiteit - Servicetags Key Vault (via mssparkutils) |
DevOps | Azure DevOps-integratie CI/CD (geen ingebouwde ondersteuning) |
Azure DevOps-integratie Implementatiepijplijnen |
Ontwikkelaarservaring | IDE-integratie (IntelliJ) Synapse Studio-gebruikersinterface Samenwerking (werkruimten) Livy-API API/SDK mssparkutils |
IDE-integratie (VS Code) Infrastructuurgebruikersinterface Samenwerking (werkruimten en delen) - API/SDK mssparkutils |
Logboekregistratie en controle | Spark Advisor Ingebouwde bewakingspools en -taken (via Synapse Studio) Spark-geschiedenisserver Prometheus/Grafana Log Analytics Opslagaccount Event Hubs |
Spark Advisor Ingebouwde bewakingspools en -taken (via Monitoring Hub) Spark-geschiedenisserver - - - - |
Bedrijfscontinuïteit en herstel na noodgeval (BCDR) | BCDR (gegevens) ADLS Gen2 | BCDR (gegevens) OneLake |
Overwegingen en beperkingen:
DMTS-integratie: u kunt de DMTS niet gebruiken via notebooks en Spark-taakdefinities.
RBAC op workloadniveau: Fabric ondersteunt vier verschillende werkruimterollen. Zie Rollen in werkruimten in Microsoft Fabric voor meer informatie.
Beheerde identiteit: Fabric biedt momenteel geen ondersteuning voor het uitvoeren van notebooks en Spark-taakdefinities met behulp van de werkruimte-id of beheerde identiteit voor Azure KeyVault in notebooks.
CI/CD: U kunt de Fabric-API/SDK en implementatiepijplijnen gebruiken.
Livy-API en hoe u Spark-taken verzendt en beheert: Livy-API staat in de roadmap, maar is nog niet beschikbaar in Fabric. U moet notebooks en Spark-taakdefinities maken met de gebruikersinterface van Fabric.
Spark-logboeken en metrische gegevens: In Azure Synapse kunt u Spark-logboeken en metrische gegevens verzenden naar uw eigen opslag, zoals Log Analytics, blob en Event Hubs. U kunt ook een lijst met Spark-toepassingen voor de werkruimte ophalen uit de API. Momenteel zijn beide mogelijkheden niet beschikbaar in Fabric.
Andere overwegingen:
- JDBC: ondersteuning voor JDBC-verbindingen is momenteel niet beschikbaar in Fabric.
Vergelijking van Spark-pool
In de volgende tabel worden Azure Synapse Spark- en Fabric Spark-pools vergeleken.
Spark-instelling | Azure Synapse Spark | Fabric Spark |
---|---|---|
Livepool (vooraf warme exemplaren) | - | Ja, Starter-pools |
Aangepaste pool | Ja | Ja |
Spark-versies (runtime) | 2.4, 3.1, 3.2, 3.3, 3.4 | 3.3, 3.4, 3.5 |
Automatisch schalen | Ja | Ja |
Dynamische toewijzing van uitvoerders | Ja, tot 200 | Ja, op basis van capaciteit |
Aanpasbare knooppuntgrootten | Ja, 3-200 | Ja, 1 op basis van capaciteit |
Minimale knooppuntconfiguratie | 3 knooppunten | 1 knooppunt |
Knooppuntgrootte van de familie | Geoptimaliseerd voor geheugen, GPU versneld | Geoptimaliseerd geheugen |
Knooppuntgrootte | Small-XXXLarge | Small-XXLarge |
Automatischpause | Ja, aanpasbaar minimum 5 minuten | Ja, niet aan te passen 2 minuten |
Hoge gelijktijdigheid | Nr. | Ja |
V-Order | Nr. | Ja |
Spark autotune | Nr. | Ja |
Systeemeigen uitvoeringsengine | Nr. | Ja |
Gelijktijdigheidslimieten | Vast | Variabele op basis van capaciteit |
Meerdere Spark-pools | Ja | Ja (omgevingen) |
Intelligente cache | Ja | Ja |
API/SDK-ondersteuning | Ja | Ja |
Runtime: Fabric biedt geen ondersteuning voor Spark 2.4-, 3.1- en 3.2-versies. Fabric Spark ondersteunt Spark 3.3 met Delta 2.2 in Runtime 1.1, Spark 3.4 met Delta 2.4 binnen Runtime 1.2 en Spark 3.5 met Delta 3.1 binnen Runtime 1.3.
Automatisch schalen: In Azure Synapse Spark kan de pool maximaal 200 knooppunten schalen, ongeacht de grootte van het knooppunt. In Fabric wordt het maximum aantal knooppunten onderworpen aan de knooppuntgrootte en ingerichte capaciteit. Zie het volgende voorbeeld voor de F64-SKU.
Grootte van Spark-pool Azure Synapse Spark Fabric Spark (aangepaste pool, SKU F64) Klein Min: 3, Max: 200 Min: 1, Max: 32 Gemiddeld Min: 3, Max: 200 Min: 1, Max: 16 Groot Min: 3, Max: 200 Min: 1, Max: 8 X-groot Min: 3, Max: 200 Min: 1, Max: 4 XX-Groot Min: 3, Max: 200 Min: 1, Max: 2 Aanpasbare knooppuntgrootten: In Azure Synapse Spark kunt u maximaal 200 knooppunten gebruiken. In Fabric is het aantal knooppunten dat u in uw aangepaste Spark-pool kunt hebben, afhankelijk van uw knooppuntgrootte en infrastructuurcapaciteit. Capaciteit is een meting van hoeveel rekenkracht u in Azure kunt gebruiken. Een manier om te bedenken is dat twee Spark vCores (een rekenkracht voor Spark) gelijk zijn aan één capaciteitseenheid. Een infrastructuurcapaciteits-SKU F64 heeft bijvoorbeeld 64 capaciteitseenheden, wat gelijk is aan 128 Spark VCores. Als u dus een kleine knooppuntgrootte kiest, kunt u maximaal 32 knooppunten in uw pool hebben (128/4 = 32). Vervolgens is het totaal van vCores in de capaciteit/vCores per knooppuntgrootte = het totale aantal beschikbare knooppunten. Zie Spark Compute voor meer informatie.
Knooppuntgroottefamilie: Fabric Spark-pools ondersteunen voorlopig alleen de familie van geoptimaliseerde knooppuntgrootten voor geheugen. Als u een met GPU versnelde SKU Spark-pool in Azure Synapse gebruikt, zijn deze niet beschikbaar in Fabric.
Knooppuntgrootte: de xx-grote knooppuntgrootte wordt geleverd met 432 GB geheugen in Azure Synapse, terwijl dezelfde knooppuntgrootte 512 GB heeft in Fabric, inclusief 64 vCores. De rest van de knooppuntgrootten (klein tot en met x-groot) hebben dezelfde vCores en geheugen in zowel Azure Synapse als Fabric.
Automatisch onderbreken: als u deze inschakelt in Azure Synapse Spark, wordt de Apache Spark-pool automatisch onderbroken na een opgegeven hoeveelheid niet-actieve tijd. Deze instelling kan worden geconfigureerd in Azure Synapse (minimaal 5 minuten), maar aangepaste pools hebben een niet-aanpasbare standaardduur van 2 minuten in Fabric nadat de sessie is verlopen. De standaardsessieverlooptijd is ingesteld op 20 minuten in Fabric.
Hoge gelijktijdigheid: Fabric ondersteunt hoge gelijktijdigheid in notebooks. Zie de modus Hoge gelijktijdigheid in Fabric Spark voor meer informatie.
Gelijktijdigheidslimieten: Azure Synapse Spark heeft een limiet van 50 gelijktijdige actieve taken per Spark-pool en 200 taken in de wachtrij per Spark-pool. De maximale actieve taken zijn 250 per Spark-pool en 1000 per werkruimte. In Microsoft Fabric Spark definiëren capaciteits-SKU's de gelijktijdigheidslimieten. SKU's hebben verschillende limieten voor maximale gelijktijdige taken die variëren van 1 tot 512. Fabric Spark heeft ook een dynamisch beperkingssysteem op basis van reserve om gelijktijdigheid te beheren en een soepele werking te garanderen, zelfs tijdens piekmomenten. Zie Gelijktijdigheidslimieten en wachtrijen in Microsoft Fabric Spark - en Fabric-capaciteiten voor meer informatie.
Meerdere Spark-pools: als u meerdere Spark-pools wilt hebben, gebruikt u Fabric-omgevingen om een pool te selecteren op notebook of Spark-taakdefinitie. Zie Een omgeving maken, configureren en gebruiken in Microsoft Fabric voor meer informatie.
Notitie
Meer informatie over het migreren van Azure Synapse Spark-pools naar Fabric.
Vergelijking van Spark-configuraties
Spark-configuraties kunnen op verschillende niveaus worden toegepast:
- Omgevingsniveau: deze configuraties worden gebruikt als de standaardconfiguratie voor alle Spark-taken in de omgeving.
- Inlineniveau: Spark-configuraties inline instellen met behulp van notebooks en Spark-taakdefinities.
Hoewel beide opties worden ondersteund in Azure Synapse Spark en Fabric, zijn er enkele overwegingen:
Spark-configuratie | Azure Synapse Spark | Fabric Spark |
---|---|---|
Omgevingsniveau | Ja, pools | Ja, omgevingen |
Inline | Ja | Ja |
Import/export | Ja | Ja (.yml uit omgevingen) |
API/SDK-ondersteuning | Ja | Ja |
Omgevingsniveau: In Azure Synapse kunt u meerdere Spark-configuraties definiëren en deze toewijzen aan verschillende Spark-pools. U kunt dit doen in Fabric met behulp van omgevingen.
Inline: In Azure Synapse ondersteunen zowel notebooks als Spark-taken het koppelen van verschillende Spark-configuraties. In Fabric worden configuraties op sessieniveau aangepast met de
spark.conf.set(<conf_name>, <conf_value>)
instelling. Voor batchtaken kunt u ook configuraties toepassen via SparkConf.Importeren/exporteren: deze optie voor Spark-configuraties is beschikbaar in Fabric-omgevingen.
Andere overwegingen:
- Onveranderbare Spark-configuraties: sommige Spark-configuraties zijn onveranderbaar. Als u het bericht
AnalysisException: Can't modify the value of a Spark config: <config_name>
krijgt, is de betreffende eigenschap onveranderbaar. - FAIR scheduler: FAIR scheduler wordt gebruikt in de modus voor hoge gelijktijdigheid.
- V-Order: V-Order is optimalisatie van schrijftijd die wordt toegepast op de parquet-bestanden die standaard zijn ingeschakeld in Fabric Spark-pools.
- Geoptimaliseerde schrijfbewerking: Geoptimaliseerde schrijfbewerking is standaard uitgeschakeld in Azure Synapse, maar is standaard ingeschakeld voor Fabric Spark.
- Onveranderbare Spark-configuraties: sommige Spark-configuraties zijn onveranderbaar. Als u het bericht
Vergelijking van Spark-bibliotheken
U kunt Spark-bibliotheken op verschillende niveaus toepassen:
- Werkruimteniveau: u kunt deze bibliotheken niet uploaden/installeren naar uw werkruimte en deze later toewijzen aan een specifieke Spark-pool in Azure Synapse.
- Omgevingsniveau: U kunt bibliotheken uploaden/installeren naar een omgeving. Bibliotheken op omgevingsniveau zijn beschikbaar voor alle notebooks en Spark-taakdefinities die in de omgeving worden uitgevoerd.
- Inline: naast bibliotheken op omgevingsniveau kunt u ook inlinebibliotheken opgeven. Bijvoorbeeld aan het begin van een notebooksessie.
Overwegingen:
Spark-bibliotheek | Azure Synapse Spark | Fabric Spark |
---|---|---|
Niveau van de werkruimte | Ja | Nr. |
Omgevingsniveau | Ja, pools | Ja, omgevingen |
Inline | Ja | Ja |
Import/export | Ja | Ja |
API/SDK-ondersteuning | Ja | Ja |
- Andere overwegingen:
- Ingebouwde bibliotheken: Fabric en Azure Synapse delen een gemeenschappelijke kern van Spark, maar ze kunnen enigszins verschillen in verschillende ondersteuning van hun runtimebibliotheken. Normaal gesproken is het gebruik van code compatibel met enkele uitzonderingen. In dat geval hebben gebruikers mogelijk compilatie nodig, de toevoeging van aangepaste bibliotheken en het aanpassen van de syntaxis. Zie hier ingebouwde Fabric Spark-runtimebibliotheken.
Vergelijking van notitieblokken
Notebooks en Spark-taakdefinities zijn primaire code-items voor het ontwikkelen van Apache Spark-taken in Fabric. Er zijn enkele verschillen tussen Azure Synapse Spark-notebooks en Fabric Spark-notebooks:
Notebook-mogelijkheid | Azure Synapse Spark | Fabric Spark |
---|---|---|
Import/export | Ja | Ja |
Sessieconfiguratie | Ja, gebruikersinterface en inline | Ja, ui (omgeving) en inline |
IntelliSense | Ja | Ja |
mssparkutils | Ja | Ja |
Notebook-resources | Nr. | Ja |
Samenwerken | Nr. | Ja |
Hoge gelijktijdigheid | Nr. | Ja |
.NET voor Spark C# | Ja | Nr. |
Ondersteuning voor pijplijnactiviteit | Ja | Ja |
Ingebouwde ondersteuning voor geplande uitvoering | Nr. | Ja |
API/SDK-ondersteuning | Ja | Ja |
mssparkutils: Omdat DMTS-verbindingen nog niet worden ondersteund in Fabric, alleen
getToken
engetSecret
voorlopig worden ondersteund in Fabric voormssparkutils.credentials
.Notebooks-resources: Fabric-notebooks bieden een Unix-achtig bestandssysteem om u te helpen bij het beheren van uw mappen en bestanden. Zie Microsoft Fabric-notebooks gebruiken voor meer informatie.
Samenwerken: Het Fabric-notebook is een gezamenlijk item dat ondersteuning biedt voor meerdere gebruikers die hetzelfde notitieblok bewerken. Zie Microsoft Fabric-notebooks gebruiken voor meer informatie.
Hoge gelijktijdigheid: In Fabric kunt u notebooks koppelen aan een sessie met hoge gelijktijdigheid. Deze optie is een alternatief voor gebruikers die ThreadPoolExecutor gebruiken in Azure Synapse. Zie De modus Voor hoge gelijktijdigheid configureren voor Fabric-notebooks voor meer informatie.
.NET voor Spark C#: Fabric biedt geen ondersteuning voor .NET Spark (C#). We raden echter aan dat gebruikers met bestaande workloads die zijn geschreven in C# of F#, migreren naar Python of Scala.
Ingebouwde ondersteuning voor geplande uitvoering: Fabric ondersteunt geplande uitvoeringen voor notebooks.
Andere overwegingen:
- U kunt functies in een notebook gebruiken die alleen worden ondersteund in een specifieke versie van Spark. Houd er rekening mee dat Spark 2.4 en 3.1 niet worden ondersteund in Fabric.
- Als uw notebook of Spark-taak een gekoppelde service met verschillende gegevensbronverbindingen of koppelpunten gebruikt, moet u uw Spark-taken wijzigen om alternatieve methoden te gebruiken voor het verwerken van verbindingen met externe gegevensbronnen en sinks. Gebruik Spark-code om verbinding te maken met gegevensbronnen met behulp van beschikbare Spark-bibliotheken.
Vergelijking van Spark-taakdefinities
Belangrijke overwegingen voor spark-taakdefinities :
Spark-taakmogelijkheid | Azure Synapse Spark | Fabric Spark |
---|---|---|
PySpark | Ja | Ja |
Scala | Ja | Ja |
.NET voor Spark C# | Ja | Nr. |
SparkR | Nr. | Ja |
Import/export | Ja (gebruikersinterface) | Nee |
Ondersteuning voor pijplijnactiviteit | Ja | Ja |
Ingebouwde ondersteuning voor geplande uitvoering | Nr. | Ja |
Beleid opnieuw proberen | Nr. | Ja |
API/SDK-ondersteuning | Ja | Ja |
Spark-taken: u kunt uw .py/. R/JAR-bestanden. Fabric ondersteunt SparkR. Een Spark-taakdefinitie ondersteunt referentiebestanden, opdrachtregelargumenten, Spark-configuraties en lakehouse-verwijzingen.
Importeren/exporteren: In Azure Synapse kunt u op json gebaseerde Spark-taakdefinities importeren/exporteren vanuit de gebruikersinterface. Deze functie is nog niet beschikbaar in Fabric.
.NET voor Spark C#: Fabric biedt geen ondersteuning voor .NET Spark (C#). Het is echter raadzaam dat gebruikers met bestaande workloads die zijn geschreven in C# of F#, migreren naar Python of Scala.
Ingebouwde ondersteuning voor geplande uitvoering: Fabric ondersteunt geplande uitvoeringen voor een Spark-taakdefinitie.
Beleid voor opnieuw proberen: met deze optie kunnen gebruikers voor onbepaalde tijd gestructureerde streamingtaken van Spark uitvoeren.
Notitie
Meer informatie over het migreren van Spark-taakdefinities van Azure Synapse naar Fabric.
Vergelijking van Hive Metastore (HMS)
Verschillen en overwegingen in Hive MetaStore (HMS):
HMS-type | Azure Synapse Spark | Fabric Spark |
---|---|---|
Interne HMS | Ja | Ja (lakehouse) |
Externe HMS | Ja | Nr. |
- Externe HMS: Fabric biedt momenteel geen ondersteuning voor een Catalogus-API en toegang tot een externe Hive Metastore (HMS).
Notitie
Meer informatie over het migreren van HMS-metagegevens van de Azure Synapse Spark-catalogus naar Fabric.
Gerelateerde inhoud
- Meer informatie over migratieopties voor Spark-pools, configuraties, bibliotheken, notebooks en Spark-taakdefinities
- Gegevens en pijplijnen migreren
- Metagegevens van Hive Metastore migreren