Share via


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, Spark-Auftragsdefinition)
Notebook (Python, Scala, Spark SQL, R)
Spark-Auftragsdefinition (Python, Scala, R)
Data Factory-Datenpipelines
Pipelineaktivitäten (Notebook)
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 (experimentell)
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
Parallelitätslimits Fest Variabel, basierend auf Kapazität
Mehrere Spark-Pools Ja Ja (Umgebungen)
Intelligenter Cache Ja Ja
API-/SDK-Unterstützung Ja Nein
  • 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 in Runtime 1.1, Spark 3.4 mit Delta 2.4 in Runtime 1.2 und Spark 3.5 mit Delta 3.0 in 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 Nein
  • 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.

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 No
  • 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.

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 und getSecret in Fabric für mssparkutils.credentials unterstützt. mssparkutils.env wird noch nicht unterstützt.

  • Notebook-Ressourcen: Die Notebook-Umgebung in Fabric bietet 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 Nein
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.

  • Unterstützung von Pipelineaktivitäten: Datenpipelines in Fabric enthalten noch keine Aktivitäten von Spark-Auftragsdefinitionen. Sie können geplante Ausführungen verwenden, wenn Sie Ihren Spark-Auftrag regelmäßig ausführen möchten.

  • 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.

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).