Vergleich von Fabric-Datentechnik und Azure Synapse Spark
Dieser Vergleich zwischen Fabric-Datentechnik und Azure Synapse Spark bietet eine Zusammenfassung der wichtigsten Features und eine eingehende Analyse verschiedener Kategorien, darunter Spark-Pools, Konfiguration, Bibliotheken, Notebooks und Spark-Auftragsdefinitionen.
In der folgenden Tabelle werden Azure Synapse Spark und Fabric Spark in verschiedenen Kategorien verglichen:
Kategorie | Azure Synapse Spark | Fabric Spark |
---|---|---|
Spark-Pools | Spark-Pool - - |
Starterpool / Benutzerdefinierter Pool V-Reihenfolge Hohe Parallelität |
Spark-Konfigurationen | Poolebene Notebook- oder Spark-Auftragsdefinitionsebene |
Umgebungsebene Ebene Notebook oder Spark-Auftragsdefinition |
Spark-Bibliotheken | Pakete auf Arbeitsbereichsebene Pakete auf Poolebene Inlinepakete |
- Umgebungsbibliotheken Inlinebibliotheken |
Ressourcen | Notebook (Python, Scala, Spark SQL, R, .NET) Spark-Auftragsdefinition (Python, Scala, .NET) Synapse-Datenpipelines Pipelineaktivitäten (Notebook, SJD) |
Notebook (Python, Scala, Spark SQL, R) Spark-Auftragsdefinition (Python, Scala, R) Data Factory-Datenpipelines Pipelineaktivitäten (Notebook, SJD) |
Daten | Primärer Speicher (ADLS Gen2) Data Residency (cluster-/regionsbasiert) |
Primärer Speicher (OneLake) Datenresidenz (kapazitäts-/regionsbasiert) |
Metadaten | Interner Hive-Metastore (HMS) Externer HMS (mit Azure SQL-Datenbank) |
Interner HMS (Lakehouse) - |
Verbindungen | Connectortyp (verknüpfte Dienste) Datenquellen Datenquellenconnector mit Arbeitsbereichsidentität |
Connectortyp (DMTS) Datenquellen - |
Sicherheit | RBAC und Zugriffssteuerung Speicher-ACLs (ADLS Gen2) Private Links Verwaltetes VNet (Netzwerkisolation) Synapse-Arbeitsbereichsidentität Schutz vor Datenexfiltration (Data Exfiltration Protection, DEP) Diensttags Key Vault (über mssparkutils/verknüpfter Dienst) |
RBAC und Zugriffssteuerung OneLake RBAC Private Links Verwaltetes VNet Arbeitsbereich-Identität - Diensttags Key Vault (über mssparkutils) |
DevOps | Azure DevOps-Integration CI/CD (keine integrierte Unterstützung) |
Azure DevOps-Integration Bereitstellungspipelines |
Entwicklungsumgebung | IDE-Integration (IntelliJ) Synapse Studio-Benutzeroberfläche Zusammenarbeit (Arbeitsbereiche) Livy-API API/SDK mssparkutils |
IDE-Integration (VS Code) Fabric-Benutzeroberfläche Zusammenarbeit (Arbeitsbereiche und Freigabe) - API/SDK mssparkutils |
Protokollierung und Überwachung | Spark Advisor Integrierte Überwachungspools und -aufträge (über Synapse Studio) Spark-Verlaufsserver Prometheus/Grafana Log Analytics Speicherkonto Event Hubs |
Spark Advisor Integrierte Überwachungspools und -aufträge (über Überwachungshub) Spark-Verlaufsserver - - - - |
Business Continuity & Disaster Recovery (BCDR) | BCDR (Daten) ADLS Gen2 | BCDR (Daten) OneLake |
Überlegungen und Einschränkungen:
DMTS-Integration: Sie können die DMTS nicht über Notebooks und Spark-Auftragsdefinitionen verwenden.
RBAC auf Workloadebene: Fabric unterstützt vier verschiedene Arbeitsbereichsrollen. Weitere Informationen finden Sie unter Rollen in Arbeitsbereichen in Microsoft Fabric.
Verwaltete Identität: Derzeit unterstützt Fabric das Ausführen von Notebooks und Spark-Auftragsdefinitionen nicht mithilfe der Arbeitsbereichsidentität oder der verwalteten Identität für Azure KeyVault in Notebooks.
CI/CD: Sie können die Fabric-API bzw. das Fabric-SDK und Bereitstellungspipelines verwenden.
Livy-API und Übermittlung und Verwaltung von Spark-Aufträgen: Die Livy-API befindet sich in der Roadmap, ist aber noch nicht in Fabric verfügbar. Sie müssen Notebooks und Spark-Auftragsdefinitionen über die Fabric-Benutzeroberfläche erstellen.
Spark-Protokolle und -Metriken: In Azure Synapse können Sie Spark-Protokolle und Metriken an Ihren eigenen Speicher ausgeben, z. B. Log Analytics, Blobs und Event Hubs. Sie können auch eine Liste der Spark-Anwendungen für den Arbeitsbereich über die API abrufen. Derzeit sind beide Funktionen in Fabric nicht verfügbar.
Weitere Überlegungen:
- JDBC: JDBC-Verbindungen werden in Fabric derzeit noch nicht unterstützt.
Spark-Pools im Vergleich
In der folgenden Tabelle werden Azure Synapse Spark- und Fabric Spark-Pools verglichen.
Spark-Einstellung | Azure Synapse Spark | Fabric Spark |
---|---|---|
Livepool (Aufwärminstanzen) | - | Ja, Starterpools |
Benutzerdefinierter Pool | Ja | Ja |
Spark-Versionen (Runtime) | 2.4, 3.1, 3.2, 3.3, 3.4 | 3.3, 3.4, 3.5 |
Autoscale | Ja | Ja |
Dynamische Zuordnung von Executors | Ja, bis zu 200 | Ja, basierend auf der Kapazität |
Anpassbare Knotengrößen | Ja, 3 bis 200 | Ja, einsbasierend je nach Kapazität |
Minimale Knotenkonfiguration | 3 Knoten | 1 Knoten |
Knotengröße (Familie) | Arbeitsspeicheroptimiert, GPU-beschleunigt | Arbeitsspeicheroptimiert |
Knotengröße | S bis XXXL | S bis XXL |
Automatisches Anhalten | Ja, anpassbar, mindestens 5 Minuten | Ja, nicht anpassbar, 2 Minuten |
Hohe Parallelität | Nein | Ja |
V-Reihenfolge | Nein | Ja |
Spark Autotune | Nein | Ja |
Native Ausführungsengine | No | Ja |
Parallelitätslimits | Fest | Variabel, basierend auf Kapazität |
Mehrere Spark-Pools | Ja | Ja (Umgebungen) |
Intelligenter Cache | Ja | Ja |
API-/SDK-Unterstützung | Ja | Ja |
Runtime: Die Spark-Versionen 2.4, 3.1 und 3.2 werden von Fabric nicht unterstützt. Fabric Spark unterstützt Spark 3.3 mit Delta 2.2 innerhalb von Runtime 1.1, Spark 3.4 mit Delta 2.4 innerhalb von Runtime 1.2 und Spark 3.5 mit Delta 3.1 innerhalb von Runtime 1.3.
Autoskalierung: In Azure Synapse Spark kann der Pool unabhängig von der Knotengröße auf bis zu 200 Knoten hochskaliert werden. In Fabric hängt die maximale Anzahl der Knoten von der Knotengröße und der bereitgestellten Kapazität ab. Sehen Sie sich das folgende Beispiel für die F64-SKU an.
Spark-Poolgröße Azure Synapse Spark Fabric Spark (benutzerdefinierter Pool, SKU „F64“) Small Min.: 3, Max.: 200 Min.: 1, Max.: 32 Medium Min.: 3, Max.: 200 Min.: 1, Max.: 16 Groß Min.: 3, Max.: 200 Min.: 1, Max.: 8 XL Min.: 3, Max.: 200 Min.: 1, Max.: 4 XX-Large Min.: 3, Max.: 200 Min.: 1, Max.: 2 Anpassbare Knotengrößen: In Azure Synapse Spark können Sie auf bis zu 200 Knoten hochskalieren. In Fabric hängt die Anzahl der Knoten, die in Ihrem benutzerdefinierten Spark-Pool vorhanden sein können, von der Knotengröße und der Fabric-Kapazität ab. Die Kapazität ist ein Maß dafür, wie viel Rechenleistung Sie in Azure verwenden können. Sie können sich das etwa so vorstellen, dass zwei virtuelle Spark-Kerne (eine Einheit der Rechenleistung für Spark) einer Kapazitätseinheit entsprechen. Beispielsweise verfügt die Fabric-Kapazitäts-SKU „F64“ über 64 Kapazitätseinheiten, was 128 virtuellen Spark-Kernen entspricht. Wenn Sie also eine kleine Knotengröße auswählen, können bis zu 32 Knoten in Ihrem Pool vorhanden sein (128÷4 = 32). Wenn Sie dann die Gesamtanzahl der virtuellen Kerne in der Kapazität durch die virtuellen Kerne pro Knotengröße teilen, erhalten Sie die Gesamtanzahl der verfügbaren Knoten. Weitere Informationen finden Sie unter Spark-Compute.
Knotengrößenfamilie: Fabric Spark-Pools unterstützen derzeit nur arbeitsspeicheroptimierte Knoten. Wenn Sie einen Spark-Pool vom Typ „GPU-beschleunigte SKU“ in Azure Synapse verwenden, sind sie in Fabric nicht verfügbar.
Knotengröße: XXL-Knoten haben 432 GB Arbeitsspeicher in Azure Synapse, während die gleiche Knotengröße in Fabric 512 GB einschließlich 64 virtueller Kerne hat. Die restlichen Knotengrößen (S bis XL) besitzen in Azure Synapse und Fabric gleich viele virtuelle Kerne und gleich viel Arbeitsspeicher.
Automatisches Anhalten: Wenn diese Option in Azure Synapse Spark aktiviert ist, wird der Apache Spark-Pool nach einer bestimmten Leerlaufzeit automatisch angehalten. Diese Einstellung kann in Azure Synapse (mindestens 5 Minuten) konfiguriert werden, aber benutzerdefinierte Pools haben eine nicht anpassbare Dauer von 2 Minuten für das automatische Anhalten in Fabric nach Ablauf der Sitzung. In Fabric ist die Ablaufzeit für Sitzungen standardmäßig auf 20 Minuten festgelegt.
Hohe Parallelität: Fabric unterstützt hohe Parallelität in Notebooks. Weitere Informationen finden Sie unter Modus für hohe Parallelität in Fabric Spark.
Grenzwerte für Parallelität: Hinsichtlich der Parallelität hat Azure Synapse Spark eine Grenze von 50 gleichzeitig ausgeführten Aufträgen und 200 Warteschlangenaufträgen pro Spark-Pool. Es können maximal 250 Aufträge pro Spark-Pool und 1000 Aufträge pro Arbeitsbereich aktiv sein. In Microsoft Fabric Spark definieren Kapazitäts-SKUs die Parallelitätsgrenzwerte. SKUs haben unterschiedliche Grenzwerte für maximal gleichzeitige Aufträge, die zwischen 1 und 512 liegen. Außerdem verfügt Fabric Spark über ein dynamisches, reservebasiertes Drosselungssystem, um Parallelität zu verwalten und auch bei Auslastungsspitzen einen reibungslosen Betrieb zu gewährleisten. Weitere Informationen finden Sie unter Parallelitätsgrenzwerte und Warteschlangen in Microsoft Fabric Spark und Fabric-Kapazitäten.
Mehrere Spark-Pools: Wenn Sie mehrere Spark-Pools benötigen, verwenden Sie Fabric-Umgebungen, um einen Pool nach Notebook oder Spark-Auftragsdefinition auszuwählen. Weitere Informationen finden Sie unter Erstellen, Konfigurieren und Verwenden einer Umgebung in Microsoft Fabric.
Hinweis
Erfahren Sie, wie Sie Azure Synapse Spark-Pools zu Fabric migrieren.
Spark-Konfigurationen im Vergleich
Spark-Konfigurationen können auf verschiedenen Ebenen angewendet werden:
- Umgebungsebene: Diese Konfigurationen werden als Standardkonfiguration für alle Spark-Aufträge in der Umgebung verwendet.
- Inlineebene: Legen Sie Spark-Konfigurationen mithilfe von Notebooks und Spark-Auftragsdefinitionen inline fest.
Obwohl beide Optionen in Azure Synapse Spark und Fabric unterstützt werden, gibt es einiges zu beachten:
Spark-Konfiguration | Azure Synapse Spark | Fabric Spark |
---|---|---|
Umgebungsebene | Ja, Pools | Ja, Umgebungen |
Inline | Ja | Ja |
Import/Export | Ja | Ja (YML-Datei aus Umgebungen) |
API-/SDK-Unterstützung | Ja | Ja |
Umgebungsebene: In Azure Synapse können Sie mehrere Spark-Konfigurationen definieren und diese verschiedenen Spark-Pools zuweisen. In Fabric können Sie hierfür Umgebungen verwenden.
Inline: In Azure Synapse unterstützen sowohl Notebooks als auch Spark-Aufträge das Anfügen verschiedener Spark-Konfigurationen. In Fabric werden Konfigurationen auf Sitzungsebene mit der Einstellung
spark.conf.set(<conf_name>, <conf_value>)
angepasst. Für Batchaufträge können Sie Konfigurationen auch über SparkConf anwenden.Import/Export: Diese Option für Spark-Konfigurationen ist in Fabric-Umgebungen verfügbar.
Weitere Überlegungen:
- Unveränderliche Spark-Konfigurationen: Einige Spark-Konfigurationen sind unveränderlich. Wenn die Meldung
AnalysisException: Can't modify the value of a Spark config: <config_name>
angezeigt wird, ist die betreffende Eigenschaft unveränderlich. - FAIR-Scheduler: Der FAIR-Scheduler wird im Modus für hohe Parallelität verwendet.
- V-Reihenfolge: Die V-Reihenfolge ist eine Optimierung zur Schreibzeit, die in Fabric Spark-Pools standardmäßig auf Parquet-Dateien angewendet wird.
- Optimiertes Schreiben: Optimiertes Schreiben ist in Azure Synapse standardmäßig deaktiviert, aber für Fabric Spark standardmäßig aktiviert.
- Unveränderliche Spark-Konfigurationen: Einige Spark-Konfigurationen sind unveränderlich. Wenn die Meldung
Hinweis
Erfahren Sie mehr über das Migrieren von Spark-Konfigurationen von Azure Synapse zu Fabric.
Spark-Bibliotheken im Vergleich
Spark-Bibliotheken können auf verschiedenen Ebenen angewendet werden:
- Arbeitsbereichsebene: Sie können diese Bibliotheken nicht in Ihren Arbeitsbereich hochladen oder dort installieren und sie später einem bestimmten Spark-Pool in Azure Synapse zuweisen.
- Umgebungsebene: Sie können Bibliotheken in eine Umgebung hochladen oder sie dort installieren. Bibliotheken auf Umgebungsebene sind für alle Notebooks und Spark-Auftragsdefinitionen verfügbar, die in der Umgebung ausgeführt werden.
- Inline: Zusätzlich zu Bibliotheken auf Umgebungsebene können Sie auch Inlinebibliotheken angeben, zum Beispiel am Anfang einer Notebooksitzung.
Überlegungen:
Spark-Bibliothek | Azure Synapse Spark | Fabric Spark |
---|---|---|
Arbeitsbereichsebene | Ja | Nein |
Umgebungsebene | Ja, Pools | Ja, Umgebungen |
Inline | Ja | Ja |
Import/Export | Ja | Ja |
API-/SDK-Unterstützung | Ja | Ja |
- Weitere Überlegungen:
- Integrierte Bibliotheken: Fabric und Azure Synapse teilen einen gemeinsamen Spark-Kern, die unterstützten Runtimebibliotheken können sich jedoch geringfügig unterscheiden. In der Regel ist Code mit einigen Ausnahmen kompatibel. In diesem Fall müssen Benutzer*innen möglicherweise eine Kompilierung durchführen, benutzerdefinierte Bibliotheken hinzufügen oder die Syntax anpassen. Weitere Informationen zu integrierten Fabric Spark-Runtimebibliotheken finden Sie hier.
Hinweis
Erfahren Sie, wie Sie Azure Synapse Spark-Bibliotheken zu Fabric migrieren.
Notebooks im Vergleich
Notebooks und Spark-Auftragsdefinitionen sind primäre Codeelemente für die Entwicklung von Apache Spark-Aufträgen in Fabric. Es gibt einige Unterschiede zwischen Azure Synapse Spark-Notebooks und Fabric Spark-Notebooks:
Notebookfunktion | Azure Synapse Spark | Fabric Spark |
---|---|---|
Import/Export | Ja | Ja |
Sitzungskonfiguration | Ja, Benutzeroberfläche und inline | Ja, Benutzeroberfläche (Umgebung) und inline |
IntelliSense | Ja | Ja |
mssparkutils | Ja | Ja |
Notebookressourcen | Nein | Ja |
Zusammenarbeiten | Nein | Ja |
Hohe Parallelität | Nein | Ja |
.NET für Spark (C#) | Ja | Nein |
Unterstützung für Pipelineaktivitäten | Ja | Ja |
Integrierte Unterstützung für geplante Ausführungen | Nein | Ja |
API-/SDK-Unterstützung | Ja | Ja |
mssparkutils: Da DMTS-Verbindungen in Fabric noch nicht unterstützt werden, werden derzeit nur
getToken
undgetSecret
in Fabric fürmssparkutils.credentials
unterstützt.Notebookressourcen: Fabric-Noteboos bieten ein Unix-ähnliches Dateisystem, das Ihnen bei der Verwaltung Ihrer Ordner und Dateien hilft. Weitere Informationen finden Sie unter Verwenden von Microsoft Fabric-Notebooks.
Zusammenarbeit: Das Fabric-Notebook ist ein Element für Zusammenarbeit, das die Bearbeitung desselben Notebooks durch mehrere Benutzer*innen unterstützt. Weitere Informationen finden Sie unter Verwenden von Microsoft Fabric-Notebooks.
Hohe Parallelität: In Fabric können Sie Notebooks an eine Sitzung mit hoher Parallelität anfügen. Diese Option ist eine Alternative für Benutzer*innen, die ThreadPoolExecutor in Azure Synapse verwenden. Weitere Informationen finden Sie unter Konfigurieren des Modus für hohe Parallelität für Fabric-Notebooks.
.NET für Spark C#: Fabric unterstützt .NET Spark (C#) nicht. Es wird jedoch empfohlen, vorhandene Workloads, die in C# oder F# geschrieben wurden, zu Python oder Scala zu migrieren.
Integrierte Unterstützung für geplante Ausführungen: Fabric unterstützt geplante Ausführungen für Notebooks.
Weitere Überlegungen:
- Sie können Features innerhalb eines Notebooks verwenden, die nur in einer bestimmten Version von Spark unterstützt werden. Denken Sie daran, dass Spark 2.4 und 3.1 in Fabric nicht unterstützt werden.
- Wenn Ihr Notebook oder Spark-Auftrag einen verknüpften Dienst mit unterschiedlichen Datenquellenverbindungen oder Bereitstellungspunkten verwendet, sollten Sie Ihre Spark-Aufträge so ändern, dass alternative Methoden zum Verarbeiten von Verbindungen mit externen Datenquellen und -senken verwendet werden. Verwenden Sie Spark-Code, um mithilfe verfügbarer Spark-Bibliotheken eine Verbindung mit Datenquellen herzustellen.
Hinweis
Erfahren Sie mehr über das Migrieren von Notebooks von Azure Synapse zu Fabric.
Spark-Auftragsdefinitionen im Vergleich
Wichtige Überlegungen zur Spark-Auftragsdefinition:
Spark-Auftragsfunktion | Azure Synapse Spark | Fabric Spark |
---|---|---|
PySpark | Ja | Ja |
Scala | Ja | Ja |
.NET für Spark (C#) | Ja | Nein |
SparkR | Nein | Ja |
Import/Export | Ja (Benutzeroberfläche) | Nein |
Unterstützung für Pipelineaktivitäten | Ja | Ja |
Integrierte Unterstützung für geplante Ausführungen | Nein | Ja |
Wiederholungsrichtlinien | Nein | Ja |
API-/SDK-Unterstützung | Ja | Ja |
Spark-Aufträge: Sie können Ihre PY-, R- und JAR-Dateien verwenden. Fabric unterstützt SparkR. Eine Spark-Auftragsdefinition unterstützt Verweisdateien, Befehlszeilenargumente, Spark-Konfigurationen und Lakehouseverweise.
Import/Export: In Azure Synapse können Sie JSON-basierte Spark-Auftragsdefinitionen über die Benutzeroberfläche importieren oder exportieren. Dieses Feature ist in Fabric noch nicht verfügbar.
.NET für Spark C#: Fabric unterstützt .NET Spark (C#) nicht. Es wird jedoch empfohlen, vorhandene Workloads, die in C# oder F# geschrieben wurden, zu Python oder Scala zu migrieren.
Integrierte Unterstützung für geplante Ausführungen: Fabric unterstützt geplante Ausführungen für Spark-Auftragsdefinitionen.
Wiederholungsrichtlinien: Diese Option ermöglicht Benutzer*innen das unbegrenzte Ausführen von strukturierten Spark-Streamingaufträgen.
Hinweis
Erfahren Sie mehr über das Migrieren von Spark-Auftragsdefinitionen von Azure Synapse zu Fabric.
Hive-Metastores (HMS) im Vergleich
Hive-MetaStore (HMS): Unterschiede und Überlegungen
HMS-Typ | Azure Synapse Spark | Fabric Spark |
---|---|---|
Interner HMS | Ja | Ja (Lakehouse) |
Externer HMS | Ja | Nein |
- Externer HMS: Fabric unterstützt derzeit keine Katalog-API und keinen Zugriff auf einen externen Hive-Metastore (HMS).
Hinweis
Erfahren Sie, wie Sie Katalogmetadaten eines Azure Synapse Spark-HMS zu Fabric migrieren.
Zugehöriger Inhalt
- Erfahren Sie mehr über Migrationsoptionen für Spark-Pools, Konfigurationen, Bibliotheken, Notebooks und die Spark-Auftragsdefinitionen.
- Migrieren von Daten und Pipelines
- Migrieren von Hive-Metastore-Metadaten