Condividi tramite


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
Versioni di Spark (runtime) 2.4, 3.1, 3.2, 3.3, 3.4 3.3, 3.4, 3.5
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 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
V-Order No
Ottimizzazione automatica di Spark No
Motore di esecuzione nativo No
Limiti di concorrenza Fisso Variabile basata sulla capacità
Molteplici pool di Spark Sì (ambienti)
Cache intelligente
Supporto API o SDK
  • 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
Importazione/Esportazione Sì (.yml dagli ambienti)
Supporto API o SDK
  • 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 .

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 No
Livello di ambiente Sì, pool Sì, ambienti
Incorporato
Importazione/Esportazione
Supporto API o SDK
  • 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
Configurazione della sessione Sì, interfaccia utente e inline Sì, interfaccia utente (ambiente) e inline
IntelliSense
mssparkutils
Risorse del notebook No
Collaborare No
Concorrenza elevata No
.NET per Spark C# No
Supporto delle attività della pipeline
Supporto predefinito per l'esecuzione pianificata No
Supporto API o SDK
  • mssparkutils: poiché le connessioni del sistema di gestione e verifica dati non sono ancora supportate in Fabric e, per ora, solo getToken e getSecret sono supportate in Fabric per mssparkutils.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
Scala
.NET per Spark C# No
SparkR No
Importazione/Esportazione Sì (interfaccia utente) No
Supporto delle attività della pipeline
Supporto predefinito per l'esecuzione pianificata No
Criteri di ripetizione dei tentativi No
Supporto API o SDK
  • 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.

Confronto con Metastore Hive (HMS)

Differenze e considerazioni su Hive MetaStore (HMS):

Tipo HMS Spark in Azure Synapse Spark in Fabric
HMS interno Sì (lakehouse)
HMS esterno No
  • HMS esterno: attualmente Fabric non supporta un'API catalogo e l'accesso a un metastore Hive esterno (HMS).