Condividi tramite


Confrontare l'ingegneria dei dati di Fabric e Azure Synapse Spark

Questo articolo confronta Azure Synapse Spark e Fabric Spark tra pool di Spark, configurazioni, librerie, notebook e definizioni di processi Spark (SJD).

Per una vista incentrata su Delta Lake e Lakehouse (inclusi i formati di tabella predefiniti e le impostazioni predefinite di runtime), vedere Tabelle Lakehouse e Delta Lake.

Categoria Azure Synapse Spark Fabric Spark
Pool di Spark Pool di Spark
-
-
Piscina di avvio (pre-riscaldata) / Pool personalizzato
V-Order
Concorrenza elevata
Configurazioni di Spark Livello pool
Livello del notebook o livello di definizione del processo Spark
Livello di ambiente
Livello Notebook o Definizione del processo Spark
Librerie di Spark Pacchetti a livello di area di lavoro
Pacchetti a livello di pool
Pacchetti in linea
-
Librerie di ambiente
Librerie inline
Risorse Notebook (Python, Scala, Spark SQL, R, .NET)
Definizione del lavoro Spark (Python, Scala, .NET)
Pipeline di Synapse
Attività della pipeline (notebook, definizione del processo Spark)
Notebook (Python, Scala, Spark SQL, R)
Definizione del processo Spark (Python, Scala, R)
Pipeline di Data Factory
Attività della pipeline (taccuino, configurazione del lavoro Spark)
Dati Storage primario (ADLS Gen2)
Residenza dei dati (basata su cluster/area)
Storage primario (OneLake)
Residenza dei dati (basata su capacità/area)
Metadati Metastore Hive interno (HMS)
HMS esterno (con Azure SQL DB)
HMS interno (lakehouse)
-
Connessioni Tipo di connettore (servizi collegati)
Fonti dati
Origine dati connessione con identità dell'area di lavoro
Tipo di connettore (Servizi di spostamento dati e trasformazione)
Fonti dati
-
Sicurezza Controllo degli accessi in base al ruolo e controllo degli accessi
Storage ACL (ADLS Gen2)
Collegamenti privati
Rete virtuale gestita (VNet) per l'isolamento di rete
Identità dell'area di lavoro di Synapse
Protezione dall'esfiltrazione di dati (DEP)
Tag di servizio
Key Vault (tramite mssparkutils/servizio collegato)
RBAC e controllo degli accessi
RBAC di OneLake
Collegamenti privati
Rete virtuale gestita
Identità dell'area di lavoro
Regole del firewall IP dell'area di lavoro
Protezione dell'accesso in uscita
Tag di servizio
Key Vault (tramite notebookutils)
DevOps integrazione di Azure DevOps
CI/CD (nessun supporto predefinito)
integrazione di Azure DevOps
Pipeline di distribuzione
Fabric CLI e estensione Azure DevOps Pipelines
Esperienza sviluppatore Integrazione dell'IDE (IntelliJ)
interfaccia utente di Synapse Studio
Collaborazione (aree di lavoro)
API Livy
API/SDK
mssparkutils
Integrazione dell'IDE (VS Code)
Interfaccia utente di Fabric
Collaborazione (aree di lavoro e condivisione)
API Livy
API/SDK
notebookutils
Registrazione e monitoraggio Consulente Tecnico Spark
Pool e processi di monitoraggio integrati (tramite Synapse Studio)
Server cronologia Spark
Prometheus/Grafana
Analisi dei log
account di archiviazione
Event Hubs
Consultente Spark
Pool e lavori di monitoraggio integrati (tramite l'Hub di monitoraggio)
Server di cronologia di Spark
-
Log Analytics
Account di archiviazione
Centri eventi
App Metriche di Capacità
Continuità aziendale e ripristino di emergenza (BCDR) ADLS Gen2 BCDR (dati) OneLake dati di BCDR

Quando scegliere: usare Fabric Spark per l'analisi unificata con OneLake storage, pipelines CI/CD predefiniti e scalabilità basata sulla capacità. Usare Azure Synapse Spark quando sono necessari pool con accelerazione GPU, connessioni Hive Metastore esterne o JDBC.

Limitazioni principali in Fabric

  • DMTS nei notebook: i servizi di spostamento e trasformazione dei dati non possono essere usati nei notebook o nelle specifiche dei processi Spark
  • Identità gestita per Key Vault: non supportati nei notebook
  • Metastore Hive esterno: non supportato
  • Pool con accelerazione GPU: non disponibile
  • .NET per Spark (C#): non supportato

Più considerazioni sul Fabric

Confronto tra pool di Spark

La tabella seguente confronta i pool Azure Synapse Spark e i pool Fabric Spark.

Impostazioni di Spark Azure Synapse Spark Fabric Spark
Pool live (istanze pre-riscaldate) - Sì, pool iniziale
Pool personalizzato
Versioni Spark (ambiente di esecuzione) 2.4, 3.1, 3.2, 3.3, 3.4 3.4, 3.5, 4.0
Scalabilità automatica
Allocazione dinamica di executor Sì, fino a 200 Sì, in base alla capacità
Dimensioni regolabili dei nodi Sì, 3-200 Sì, 1 in base alla capacità
Configurazione minima dei nodi 3 nodi 1 nodo
Famiglia di dimensioni del nodo Ottimizzato per la memoria, con accelerazione GPU Ottimizzato per le prestazioni della memoria
Dimensioni nodo Piccolo-XXXLarge Small-XXLarge
Sospensione automatica Sì, personalizzabile per un minimo di 5 minuti Sì, non personalizzabile 2 minuti
Concorrenza elevata No
V-Order No
Ottimizzazione automatica di Spark No
Motore di esecuzione nativo No
Limiti di concorrenza Corretto Variabile basata sulla capacità
Molteplici pool di Spark Sì (ambienti)
Cache intelligente
Supporto API o SDK
  • Runtime: Fabric non supporta Spark 3.3 e versioni precedenti. Fabric Spark supporta Spark 3.4 con Delta 2.4 in Runtime 1.2, Spark 3.5 con Delta 3.1 in Runtime 1.3 e Spark 4.0 con Delta 4.0 in Runtime 2.0.

Quando scegliere: usare i pool di Spark di Fabric per l'avvio rapido (pool di avvio), processi a nodo singolo, sessioni ad alta concorrenza e ottimizzazione V-Order. Usare Azure Synapse pool quando è necessaria l'accelerazione GPU o la scalabilità fissa fino a 200 nodi.

Informazioni sui modelli di pool di Spark

Azure Synapse e Fabric usano modelli di pool fondamentalmente diversi:

  • Azure Synapse: un pool di Spark è una risorsa di calcolo fissa con un numero massimo di nodi. Ogni processo (notebook o definizione del processo Spark) crea un cluster nel pool. Il pool definisce il limite superiore di nodi disponibili in tutti gli artifatti in esecuzione.

  • Infrastruttura: un pool di Spark è un modello di configurazione, non una risorsa di calcolo di backup fissa. Ogni artefatto effettua il provisioning del proprio cluster, ma il ridimensionamento è vincolato dai vCores di capacità, non da una proprietà di dimensione massima del pool. Sessioni ad alta concorrenza consentono agli artifact di condividere la stessa sessione o lo stesso cluster.

Aspetto Azure Synapse Fabric
Che cosa definisce il calcolo totale? Nodi massimi del pool Capacità (vCores + burst)
Che cosa rappresenta la piscina? Limite di calcolo effettivo Modello per la creazione del cluster
Parallelismo limitato da Numero di nodi del pool Capacità totale vCore

Esempio pratico: confronto di concorrenza

La tabella seguente confronta il numero di processi simultanei che possono essere eseguiti in configurazioni diverse, presupponendo una dimensione del cluster pari a 1 driver + 6 ruoli di lavoro (7 nodi, 28 vCore per processo) con nodi di piccole dimensioni (4 vCore ciascuno).

Metrica Synapse (pool a 24 nodi) Infrastruttura F16 (96 vCore Spark) Fabric F32 (192 vCore Spark)
Limite di calcolo 24 nodi 32 vCore × 3 burst = 96 vCore 64 vCore × 3 burst = 192 vCore
Numero massimo di lavori simultanei 3 (usa 21 nodi) 3 (usa 84 vCores) 6 (usano 168 vCore)
Capacità residua 3 nodi 12 vCore 24 vCore
Limite della coda 200 per piscina 16 per capacità 32 per capacità

Per ulteriori informazioni sulla capacità e la concorrenza di Fabric, vedere Limiti e code di concorrenza.

Versioni di runtime di Spark

Versioni supportate di Fabric Spark:

Fabric non supporta Spark 2.4, 3.1 o 3.2.

Dimensioni regolabili dei nodi

Azure Synapse pool di Spark aumentano fino a 200 nodi indipendentemente dalle dimensioni del nodo. In Fabric, il numero massimo di nodi dipende dalle dimensioni del nodo e dalla capacità fornita (SKU).

Conversione della capacità del tessuto: 2 vCore Spark = 1 unità di capacità. Formula: vCore totali nella capacità ÷ vCore per ogni dimensione del nodo = numero massimo di nodi disponibili.

Ad esempio, SKU F64 fornisce 64 unità di capacità (128 vCore Spark). La tabella seguente illustra i limiti dei nodi per F64:

Dimensione del pool di Spark Azure Synapse Spark Spark in Fabric (pool personalizzato, SKU F64)
Piccolo (4 vCores) Min = 3, Max = 200 Min = 1, Max = 32
Medio (8 vCores) Min = 3, Max = 200 Min = 1, Max = 16
Grande (16 vCores) Min = 3, Max = 200 Min = 1, Max = 8
X-Large (32 vCore) Min = 3, Max = 200 Min = 1, Max = 4
XX-Large (64 vCore) Min = 3, Max = 200 Min = 1, Max = 2

Per altre informazioni, vedere Ambiente di calcolo Spark.

Dimensioni dei nodi

I pool di Spark di Fabric supportano solo la famiglia di nodi ottimizzata per la memoria. I pool con accelerazione GPU disponibili in Azure Synapse non sono supportati in Fabric.

Confronto delle dimensioni dei nodi (XX-Large):

  • Azure Synapse: 432 GB di memoria
  • Infrastruttura: 512 GB di memoria, 64 vCore

Le dimensioni dei nodi Piccole e X-Large hanno vCore e memoria identici sia in Azure Synapse che in Fabric.

Comportamento di sospensione automatica

Confronto delle impostazioni di autopausa

  • Azure Synapse: timeout di inattività configurabile, minimo 5 minuti
  • Fabric: Autopausa di 2 minuti dopo la scadenza della sessione (non configurabile), il timeout predefinito della sessione è di 20 minuti

Concorrenza elevata

Fabric supporta la modalità di concorrenza elevata per i notebook, consentendo a più utenti di condividere una singola sessione Spark. Azure Synapse non supporta questa funzionalità.

Limiti di concorrenza

Azure Synapse limiti di Spark (fissi):

  • 50 attività simultanee per pool, 200 attività in coda per pool
  • 250 lavori attivi per pool, 1000 per spazio di lavoro

Limiti di Fabric Spark (basati su SKU)

  • I lavori concurrenti variano in base alla capacità dello SKU: da 1 a 512 massimo.
  • La regolazione dinamica basata su riserva amministra i picchi di utilizzo

Per altre informazioni, vedere Limiti di concorrenza e accodamento in Microsoft Fabric Spark.

Molteplici pool di Spark

In Fabric, usare gli ambienti per configurare e selezionare diversi pool di Spark per notebook o definizione di job Spark.

Confronto tra configurazioni Spark

Le configurazioni di Spark si applicano a due livelli:

  • Livello di ambiente: configurazione predefinita per tutti i processi Spark nell'ambiente
  • Livello inline: Configurazione per singola sessione nei notebook o nelle definizioni dei job Spark
Configurazione di Spark Azure Synapse Spark Fabric Spark
Livello di ambiente Sì, pool Sì, ambienti
In linea
Importazione/Esportazione Sì (.yml dai file degli ambienti)
Supporto API o SDK

Quando scegliere: entrambe le piattaforme supportano le configurazioni inline e dell'ambiente. Fabric usa ambienti anziché configurazioni a livello di pool.

  • Sintassi inline: in Fabric usare spark.conf.set(<conf_name>, <conf_value>) per le configurazioni a livello di sessione. Per i processi batch, usare SparkConf.
  • Configurazioni non modificabili: alcune configurazioni di Spark non possono essere modificate. Messaggio di errore: AnalysisException: Can't modify the value of a Spark config: <config_name>
  • V-Order: abilitato per impostazione predefinita in Fabric; Ottimizzazione in fase di scrittura per i file Parquet. Vedere V-Order.
  • Optimized Write: abilitato per impostazione predefinita in Fabric; disabilitato per impostazione predefinita in Azure Synapse.

Confronto tra librerie Spark

Le librerie Spark si applicano a tre livelli:

  • Livello Workspace: disponibile solo in Azure Synapse
  • Livello di ambiente: librerie disponibili per tutti i notebook e le definizioni dei processi Spark nell'ambiente
  • Inline: librerie specifiche della sessione installate all'avvio del notebook
Catalogo Spark Azure Synapse Spark Fabric Spark
Livello spazio di lavoro No
Livello di ambiente Sì, pool Sì, ambienti
In linea
Importazione/Esportazione
Supporto API o SDK

Quando scegliere: entrambe le piattaforme supportano l'ambiente e le librerie inline. Fabric non supporta i pacchetti a livello di area di lavoro.

  • Librerie integrate: Fabric e i runtime di Azure Synapse condividono un core Spark comune, ma presentano differenze nelle versioni delle librerie. È possibile che il codice richieda la ricompilazione o le librerie personalizzate. Vedere Librerie di runtime di Fabric.

Confronto tra notebook

I notebook e le definizioni dei processi Spark sono elementi di codice principali per lo sviluppo di processi Apache Spark in Fabric. Esistono alcune differenze tra notebook Spark Azure Synapse e notebook Spark Fabric:

Capacità del notebook Azure Synapse Spark Fabric Spark
Importazione/Esportazione
Configurazione della sessione Sì. Interfaccia utente e inline Sì. Interfaccia utente (ambiente) e in linea
IntelliSense
mssparkutils
Risorse del notebook No
Collaborare No
Concorrenza elevata No
.NET per Spark C# No
Supporto delle attività della pipeline
Supporto integrato per l'esecuzione pianificata No
Supporto API o SDK

Quando scegliere: usare i notebook di Fabric per la collaborazione, sessioni ad alta concorrenza, programmazione integrata e risorse del notebook. Usare i notebook Azure Synapse se è necessario .NET per Spark (C#).

  • notebookutils.credentials: solo getToken e getSecret sono supportati in Fabric (connessioni DMTS non disponibili).
  • Risorse notebook: Fabric fornisce un file system simile a Unix per la gestione dei file. Vedere Come usare i notebook.
  • Alta concorrenza: alternativa a ThreadPoolExecutor in Azure Synapse. Vedere Configurare la modalità di concorrenza elevata.
  • .NET per Spark: eseguire la migrazione di carichi di lavoro C#/F# a Python o Scala.
  • Servizi collegati: sostituire con le librerie Spark per le connessioni esterne all'origine dati.

Confronto tra definizioni di attività Spark

Considerazioni importanti sulla definizione del job Spark:

Capacità del lavoro Spark Azure Synapse Spark Fabric Spark
PySpark
Scala
.NET per Spark C# No
SparkR No
Importazione/Esportazione Sì (interfaccia utente) No
Supporto delle attività della pipeline
Supporto integrato per l'esecuzione pianificata No
Criteri di ripetizione dei tentativi No
Supporto API o SDK

Quando scegliere: usare le definizioni dei processi Spark di Fabric per il supporto di SparkR, la pianificazione predefinita e i criteri di ripetizione dei tentativi. Usare Azure Synapse se è necessario .NET per Spark (C#) o l'importazione/esportazione basata sull'interfaccia utente.

  • File supportati: .py, . R e .jar file con file di riferimento, argomenti della riga di comando e riferimenti lakehouse.
  • Import/export: importazione/esportazione JSON basata sull'interfaccia utente disponibile solo in Azure Synapse.
  • Criteri di ripetizione dei tentativi: abilitare esecuzioni indefinite per i processi Spark Structured Streaming.
  • .NET per Spark: eseguire la migrazione di carichi di lavoro C#/F# a Python o Scala.

Confronto con Metastore Hive (HMS)

Tipo HMS Azure Synapse Spark Fabric Spark
HMS interno Sì (lakehouse)
HMS esterno No

Quando scegliere: utilizzare Fabric se l'HMS interno basato su lakehouse soddisfa le tue esigenze. Usare Azure Synapse se è necessario un metastore Hive esterno (Azure SQL DB) o accesso al catalogo API.

Nota

Scopri come migrare i metadati HMS del catalogo Spark di Azure Synapse su Fabric.