Confrontare Ingegneria dei dati in Fabric e Spark in Azure Synapse
Questo confronto tra Ingegneria dei dati in Fabric e Spark in Azure Synapse offre un riepilogo delle funzionalità principali e un'analisi approfondita tra varie categorie, tra cui pool di Spark, configurazione, cataloghi, notebook e definizioni dei processi Spark.
La tabella seguente confronta Spark in Azure Synapse e Spark in Fabric in categorie diverse:
Categoria | Spark in Azure Synapse | Spark in Fabric |
---|---|---|
Pool di Spark | Pool di Spark - - |
Pool di avvio / Pool personalizzato V-Order Concorrenza elevata |
Configurazioni di Spark | Livello pool Livello notebook o 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 inline |
- Cataloghi ambiente Cataloghi inline |
Risorse | Notebook (Python, Scala, Spark SQL, R, .NET) Definizione del processo Spark (Python, Scala, .NET) Pipeline dati di Synapse Attività della pipeline (notebook, SJD) |
Notebook (Python, Scala, Spark SQL, R) Definizione del processo Spark (Python, Scala, R) Pipeline di Data Factory di Azure Attività della pipeline (notebook, SJD) |
Dati | Archiviazione primaria (ADLS Gen2) Residenza dei dati (basata su cluster/area) |
Archiviazione primaria (OneLake) Residenza dei dati (basata su capacità/area) |
Metadati UFX | Metastore Hive interno (HMS) HMS esterno (usando Azure SQL DB) |
HMS interno (lakehouse) - |
Connessioni | Tipo di connettore (servizi collegati) Origini dati Origine dati coll. con identità dell'area di lavoro |
Tipo di connettore (sistema di gestione e verifica dati) Origini dati - |
Sicurezza | Controllo degli accessi in base al ruolo e controllo di accesso ACL di archiviazione (ADLS Gen2) Collegamenti privati Rete virtuale gestita (isolamento rete) Identità area di lavoro di Synapse Protezione dall'esfiltrazione di dati (DEP) Tag di servizio Insieme di credenziali delle chiavi (via mssparkutils/servizio collegato) |
Controllo degli accessi in base al ruolo e controllo di accesso Controllo degli accessi in base al ruolo di OneLake Collegamenti privati Rete virtuale gestita Identità dell'area di lavoro - Tag di servizio Insieme di credenziali delle chiavi (via mssparkutils) |
DevOps | Integrazione di Azure DevOps CI/CD (nessun supporto predefinito) |
Integrazione di Azure DevOps Pipeline di distribuzione |
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/SDK mssparkutils |
Registrazione e monitoraggio | Consulente Spark Pool e processi di monitoraggio predefiniti (tramite Synapse Studio) Server cronologia Spark Prometheus/Grafana Analisi dei log Account di archiviazione Hub eventi di |
Consultente Spark Pool e processi di monitoraggio predefiniti (tramite l'Hub di monitoraggio) Server cronologia Spark - - - - |
Continuità aziendale e ripristino di emergenza (BCDR) | ADLS Gen2 BCDR (dati) | OneLake di BCDR (dati) |
Considerazioni e limitazioni:
Integrazione sistema di gestione e verifica dati: non è possibile usare il sistema di gestione e verifica dati tramite notebook e definizioni dei processi Spark.
Controllo degli accessi in base al ruolo a livello del carico di lavoro: Fabric supporta quattro ruoli diversi dell'area di lavoro. Per altre informazioni, vedere Ruoli nelle aree di lavoro in Microsoft Fabric.
Identità gestita: attualmente Fabric non supporta l'esecuzione di notebook e definizioni di processi Spark usando l'identità dell'area di lavoro o l'identità gestita per Azure KeyVault nei notebook.
CI/CD: è possibile usare l'API/SDK dell'infrastruttura e le pipeline di distribuzione.
API Livy e come inviare e gestire processi Spark: l'API Livy è nella roadmap ma non è ancora esposta in Fabric. È necessario creare dei notebook e delle definizioni di processi Spark con l'interfaccia utente di Fabric.
Log e metriche di Spark: in Azure Synapse è possibile generare log e metriche Spark nella propria risorsa di archiviazione, come ad esempio Analisi dei log, BLOB e Hub eventi. È anche possibile ottenere un elenco di applicazioni Spark per l'area di lavoro dall'API. Attualmente, in Fabric non è disponibile nessuna di queste capacità.
Altre considerazioni:
- JDBC: il supporto del collegamento JDBC non è attualmente disponibile in Fabric.
Confronto tra pool di Spark
La tabella seguente confronta i pool di Spark di Azure Synapse e Spark per Fabric.
Impostazioni di Spark | Spark in Azure Synapse | Spark in Fabric |
---|---|---|
Pool live (istanze per "preriscaldare") | - | Sì, Pool di avvio |
Pool personalizzato | Sì | Sì |
Versioni di Spark (runtime) | 2.4, 3.1, 3.2, 3.3, 3.4 | 3.3, 3.4, 3.5 |
Scalabilità automatica | Sì | Sì |
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 la memoria |
Dimensioni nodo | Small-XXXLarge | Small-XXLarge |
Sospensione automatica | Sì, personalizzabile per un minimo di 5 minuti | Sì, non personalizzabile per 2 minuti |
Concorrenza elevata | No | Sì |
V-Order | No | Sì |
Ottimizzazione automatica di Spark | No | Sì |
Motore di esecuzione nativo | No | Sì |
Limiti di concorrenza | Fisso | Variabile basata sulla capacità |
Molteplici pool di Spark | Sì | Sì (ambienti) |
Cache intelligente | Sì | Sì |
Supporto API o SDK | Sì | Sì |
Runtime: Fabric non supporta le versioni di Spark 2.4, 3.1 e 3.2. Fabric Spark supporta Spark 3.3 con Delta 2.2 in Runtime 1.1, Spark 3.4 con Delta 2.4 in Runtime 1.2 e Spark 3.5 con Delta 3.1 in Runtime 1.3.
Scalabilità automatica: nello Spark in Azure Synapse il pool può aumentare fino a 200 nodi indipendentemente dalle dimensioni del nodo. In Fabric il numero massimo di nodi è soggetto alle dimensioni del nodo e alla capacità fornita. Vedere l'esempio seguente per lo SKU F64.
Dimensione del pool di Spark Spark in Azure Synapse Spark in Fabric (pool personalizzato, SKU F64) Piccolo Min = 3, Max = 200 Min = 1, Max = 32 Medio Min = 3, Max = 200 Min = 1, Max = 16 Grande 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 Dimensioni dei nodi regolabili: nello Spark in Azure Synapse si può aumentare fino ai 200 nodi. In Fabric il numero di nodi che è possibile avere nel pool di Spark personalizzato dipende dalle dimensioni del nodo e dalla capacità di Fabric. La capacità è una misura della potenza di calcolo che è possibile usare in Azure. Un modo per concepirla è che due vCore di Spark (un'unità di potenza di calcolo per Spark) equivalgono a un'unità di capacità. Ad esempio, uno SKU di capacità di Fabric F64 ha 64 unità di capacità, che equivalgono a 128 vCore di Spark. Pertanto, se si sceglie una dimensione di nodo ridotta, è possibile avere fino a 32 nodi nel pool (128/4 = 32). Quindi, il totale di vCore nella capacità/vCore per ogni dimensione del nodo = numero totale di nodi disponibili. Per altre informazioni, vedere Ambiente di calcolo Spark.
Serie dimensioni dei nodi: per ora i pool di Spark in Fabric supportano solo la serie di dimensioni dei nodi ottimizzate per la memoria. Se si utilizza un pool SKU di Spark accelerato da GPU in Azure Synapse, non sarà disponibile in Fabric.
Dimensioni del nodo: le dimensioni del nodo xx-large sono dotate di 432 GB di memoria in Azure Synapse, mentre la stessa dimensione del nodo ha 512 GB in Fabric, inclusi 64 vCore. Il resto delle dimensioni dei nodi (da piccole a x-large) ha gli stessi vCore e la stessa memoria sia in Azure Synapse che in Fabric.
Sospensione automatica: se la si abilita sullo Spark di Azure Synapse, il pool di Apache Spark verrà sospeso automaticamente dopo un periodo di inattività specificato. Questa impostazione è configurabile in Azure Synapse (minimo 5 minuti), ma i pool personalizzati hanno una durata automatica predefinita non personalizzabile di 2 minuti in Fabric dopo la scadenza della sessione. La scadenza della sessione predefinita è impostata su 20 minuti in Fabric.
Concorrenza elevata: Fabric supporta una concorrenza elevata nei notebook. Per altre informazioni, vedere Modalità di concorrenza elevata su Spark di Fabric.
Limiti di concorrenza: in termini di concorrenza, Spark in Azure Synapse ha un limite di 50 processi di esecuzione simultanei per ogni pool di Spark e 200 processi in coda per ogni pool di Spark. I processi attivi massimi sono 250 ogni pool di Spark e 1000 ogni area di lavoro. Nello Spark di Microsoft Fabric gli SKU di capacità definiscono i limiti di concorrenza. Gli SKU hanno limiti variabili per l'intervallo massimo di processi simultanei compresi tra 1 e 512. Inoltre, Spark in Fabric dispone di un sistema di limitazione basato su riserva dinamica per gestire la concorrenza e garantire un funzionamento uniforme anche durante i periodi di picco di utilizzo. Per altre informazioni, vedere Limiti di concorrenza e accodamento nelle capacità di Microsoft Fabric Spark e Capacità di Fabric.
Più pool di Spark: se si vogliono avere più pool di Spark, usare gli ambienti di Fabric per selezionare un pool in base al notebook o alla definizione del processo Spark. Per altre informazioni, vedere Creare, configurare e usare un ambiente in Microsoft Fabric.
Nota
Informazioni su come eseguire la migrazione dei pool di Spark da Azure Synapse a Fabric.
Confronto tra configurazioni Spark
Le configurazioni Spark possono essere applicate a livelli diversi:
- Livello di ambiente: queste configurazioni vengono usate come configurazione predefinita per tutti i processi Spark nell'ambiente.
- Livello inline: impostare configurazioni Spark inline usando notebook e definizioni di processi Spark.
Sebbene entrambe le opzioni siano supportate da Spark in Azure Synapse e Fabric, devono essere fatte alcune considerazioni:
Configurazione di Spark | Spark in Azure Synapse | Spark in Fabric |
---|---|---|
Livello di ambiente | Sì, pool | Sì, ambienti |
Incorporato | Sì | Sì |
Importazione/Esportazione | Sì | Sì (.yml dagli ambienti) |
Supporto API o SDK | Sì | Sì |
Livello di ambiente: in Azure Synapse è possibile definire più configurazioni Spark e assegnarle a pool di Spark diversi. È possibile eseguire questa operazione in Fabric usando gli ambienti.
Inline: in Azure Synapse, sia i notebook che i processi Spark supportano il collegamento di configurazioni Spark diverse. In Fabric le configurazioni a livello di sessione vengono personalizzate con l'impostazione
spark.conf.set(<conf_name>, <conf_value>)
. Per i processi batch è anche possibile applicare configurazioni tramite SparkConf.Importazione/esportazione: questa opzione per le configurazioni Spark è disponibile negli ambienti di Fabric.
Altre considerazioni:
- Configurazioni Spark non modificabili: alcune configurazioni di Spark non sono modificabili. Se viene visualizzato il messaggio
AnalysisException: Can't modify the value of a Spark config: <config_name>
, la proprietà in questione non è modificabile. - Pianificatore FAIR: il pianificatore FAIR viene usato in modalità di concorrenza elevata.
- V-Order: il V-Order è un'ottimizzazione in fase di scrittura che viene applicata ai file parquet abilitati per impostazione predefinita nei pool di Spark di Fabric.
- Scrittura ottimizzata: la scrittura ottimizzata è disabilitata per impostazione predefinita in Azure Synapse, ma è abilitata per impostazione predefinita per lo Spark Fabric .
- Configurazioni Spark non modificabili: alcune configurazioni di Spark non sono modificabili. Se viene visualizzato il messaggio
Confronto tra cataloghi Spark
È possibile applicare cataloghi Spark a livelli diversi:
- Livello dell'area di lavoro: non è possibile caricare/installare questi cataloghi nell'area di lavoro e assegnarli in un secondo momento a un pool di Spark specifico in Azure Synapse.
- Livello di ambiente: è possibile caricare/installare cataloghi in un ambiente. I cataloghi a livello di ambiente sono disponibili per tutti i notebook e le definizioni dei processi Spark in esecuzione nell'ambiente.
- Inline: oltre ai cataloghi a livello di ambiente è anche possibile specificare cataloghi inline. Ad esempio, all'inizio di una sessione del notebook.
Considerazioni:
Catalogo Spark | Spark in Azure Synapse | Spark in Fabric |
---|---|---|
Livello area di lavoro | Sì | No |
Livello di ambiente | Sì, pool | Sì, ambienti |
Incorporato | Sì | Sì |
Importazione/Esportazione | Sì | Sì |
Supporto API o SDK | Sì | Sì |
- Altre considerazioni:
- Cataloghi predefiniti: Fabric e Azure Synapse condividono la memoria centrale comune di Spark, ma possono differire leggermente nei supporti diversi dei propri cataloghi di runtime. In genere, l'uso del codice è compatibile ma con alcune eccezioni. In tal caso, gli utenti potrebbero aver bisogno della compilazione, dell'aggiunta di cataloghi personalizzati e della modifica della sintassi. Vedere i cataloghi predefiniti di runtime di Spark in Fabric qui.
Nota
Informazioni su come eseguire la migrazione dei cataloghi di Spark da Azure Synapse a 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 i notebook dello Spark di Azure Synapse e i notebook dello Spark di Fabric:
Capacità del notebook | Spark in Azure Synapse | Spark in Fabric |
---|---|---|
Importazione/Esportazione | Sì | Sì |
Configurazione della sessione | Sì, interfaccia utente e inline | Sì, interfaccia utente (ambiente) e inline |
IntelliSense | Sì | Sì |
mssparkutils | Sì | Sì |
Risorse del notebook | No | Sì |
Collaborare | No | Sì |
Concorrenza elevata | No | Sì |
.NET per Spark C# | Sì | No |
Supporto delle attività della pipeline | Sì | Sì |
Supporto predefinito per l'esecuzione pianificata | No | Sì |
Supporto API o SDK | Sì | Sì |
mssparkutils: poiché le connessioni del sistema di gestione e verifica dati non sono ancora supportate in Fabric e, per ora, solo
getToken
egetSecret
sono supportate in Fabric permssparkutils.credentials
.Risorse notebook: i notebook di Fabric offrono un file system simile a Unix per semplificare la gestione delle cartelle e dei file. Per altre informazioni, vedere Come usare i notebook di Microsoft Fabric.
Collaborare: il notebook Fabric è un elemento collaborativo che supporta più utenti che modificano lo stesso notebook. Per altre informazioni, vedere Come usare i notebook di Microsoft Fabric.
Concorrenza elevata: in Fabric è possibile collegare i notebook a una sessione di concorrenza elevata. Questa opzione è un'alternativa per gli utenti che usano ThreadPoolExecutor in Azure Synapse. Per altre informazioni, vedere Configurare la modalità di concorrenza elevata per i notebook di Fabric.
.NET per Spark C#: Fabric non supporta .NET per Spark (C#). Tuttavia, si consiglia agli utenti con carichi di lavoro esistenti scritti in C# o F# di eseguire la migrazione a Python o Scala.
Supporto predefinito per le esecuzioni pianificate: Fabric supporta le esecuzioni pianificate per i notebook.
Altre considerazioni:
- È possibile usare le funzionalità all'interno di un notebook supportato solo in una versione specifica di Spark. Tenere presente che Spark 2.4 e 3.1 non sono supportati in Fabric.
- Se il notebook o il processo Spark usa un servizio collegato con connessioni all'origine dati o punti di montaggio diversi, è necessario modificare i processi Spark in modo da usare metodi alternativi per la gestione delle connessioni a origini dati esterne e sink. Usare il codice Spark per connettersi alle origini dati usando i cataloghi Spark disponibili.
Nota
Informazioni su come eseguire la Migrazione dei notebook da Azure Synapse a Fabric.
Confronto tra definizioni di processi Spark
Considerazioni importanti sulla definizione del processo Spark:
Capacità del processo Spark | Spark in Azure Synapse | Spark in Fabric |
---|---|---|
PySpark | Sì | Sì |
Scala | Sì | Sì |
.NET per Spark C# | Sì | No |
SparkR | No | Sì |
Importazione/Esportazione | Sì (interfaccia utente) | No |
Supporto delle attività della pipeline | Sì | Sì |
Supporto predefinito per l'esecuzione pianificata | No | Sì |
Criteri di ripetizione dei tentativi | No | Sì |
Supporto API o SDK | Sì | Sì |
Processi di Spark: è possibile usare file .py/.R/jar. Fabric supporta SparkR. Una definizione del processo Spark supporta file di riferimento, argomenti della riga di comando, configurazioni Spark e riferimenti lakehouse.
Importazione/esportazione: in Azure Synapse è possibile importare o esportare definizioni del processo Spark basate su JSON dall'interfaccia utente. Questa funzionalità non è ancora disponibile in Fabric.
.NET per Spark C#: Fabric non supporta .NET per Spark (C#). Tuttavia, si consiglia agli utenti con carichi di lavoro esistenti scritti in C# o F# di eseguire la migrazione a Python o Scala.
Supporto predefinito per l'esecuzione pianificata: Fabric supporta le esecuzioni pianificate per una definizione del processo Spark.
Criteri di ripetizione: questa opzione consente agli utenti di eseguire processi di flusso strutturato di Spark a tempo indeterminato.
Nota
Imparare a eseguire la Migrazione delle definizioni del processo Spark da Azure Synapse a Fabric.
Confronto con Metastore Hive (HMS)
Differenze e considerazioni su Hive MetaStore (HMS):
Tipo HMS | Spark in Azure Synapse | Spark in Fabric |
---|---|---|
HMS interno | Sì | Sì (lakehouse) |
HMS esterno | Sì | No |
- HMS esterno: attualmente Fabric non supporta un'API catalogo e l'accesso a un metastore Hive esterno (HMS).
Nota
Imparare a eseguire la migrazione dei metadati HMS del catalogo Spark da Azure Synapse a Fabric.
Contenuto correlato
- Altre informazioni sulle opzioni di migrazione per pool di Spark, configurazioni, cataloghi, notebook e definizioni del processo Spark
- Eseguire la migrazione di pipeline e dati
- Eseguire la migrazione dei metadati metastore Hive