Scegliere tra i notebook Python e PySpark in Microsoft Fabric

Con l'introduzione di notebook Python leggeri in Microsoft Fabric, i clienti hanno ora due opzioni affidabili per la creazione e la scalabilità dei flussi di lavoro di analisi: Notebook Python e Notebook PySpark. Sebbene entrambi forniscano un'interfaccia notebook familiare, differiscono in modo significativo per la gestione delle risorse di calcolo, della scalabilità e dell'efficienza dei costi.

Fabric semplifica il processo di selezione o transizione tra tipi di notebook, consentendo ai professionisti dei dati di ottimizzare l'agilità, le prestazioni e il budget. Questa guida è progettata per valutare quale notebook è più adatto alle esigenze correnti e come evolvere l'approccio man mano che i carichi di lavoro aumentano di complessità e scalabilità. Il "pool di avvio" fornisce un contenitore di calcolo pre-riscaldamento che consente l'avvio quasi immediato per i notebook Python o PySpark.

Matrice di decisioni rapide - Scegliere veloce

Ideale per la selezione rapida in base al tipo di carico di lavoro.

Usare questo riferimento generale per determinare rapidamente il tipo di notebook più adatto per i modelli di carico di lavoro comuni. Questa tabella è ideale per la pianificazione iniziale e le revisioni dell'architettura.

Sceneggiatura Notebook consigliato
Include librerie DuckDB e Polars preinstallate Python Notebook
Dati di dimensione piccola o media (adatti alla memoria) Notebook Python (o PySpark in un cluster Spark a nodo singolo)
Esplorazione rapida e creazione di prototipi Notebook Python (o PySpark in un cluster Spark a nodo singolo)
Set di dati di grandi dimensioni (10 GB+) che superano la memoria Notebook PySpark
Flussi di lavoro di dati complessi o pipeline ETL Notebook PySpark
Esecuzione parallela o ad alta simultaneità Notebook PySpark
Richiede le API native di Spark (MLlib, SQL, Streaming) Notebook PySpark

Riepilogo rapido degli scenari chiave - Confronto approfondito

Usare questa tabella di confronto strutturata per comprendere i compromessi architetturali e operativi tra i tipi di notebook. Ideale per le valutazioni di progettazione o la pianificazione dell'implementazione.

Esecuzione e prestazioni

Sceneggiatura Notebook Python (macchina virtuale a 2 core) Notebook PySpark (elaborazione Spark)
Ora di avvio Il pool di avvio predefinito viene inizializzato in circa 5 secondi, mentre il pool su richiesta richiede circa 3 minuti. L'avvio varia da circa 5 secondi (pool di avvio) a diversi minuti (cluster Spark su richiesta).
Trasformazioni rapide e chiamate API Ideale per set di dati di piccole e medie dimensioni (fino a 1 GB) Ottimizzato per set di dati di grandi dimensioni tramite l'esecuzione vettorializzata.
Carichi di lavoro moderati Non ottimizzata per le dimensioni dei dati che si avvicinano alla saturazione della memoria Scalabilità efficiente tramite il calcolo distribuito.
Gestione di set di dati di grandi dimensioni Limitato dalla memoria a nodo singolo. Può faticare con la scalabilità. L'elaborazione distribuita garantisce una gestione scalabile di carichi di lavoro da più GB a TB.
High-Concurrency Esecuzione Parallelismo manuale in stile FIFO per notebook Concorrenza gestita dal sistema con supporto per l'esecuzione parallela.
Personalizzazione e ridimensionamento delle risorse Calcolo fisso (macchina virtuale a 2 core); non viene ridimensionata automaticamente. Gli utenti possono aumentare manualmente il numero di istanze utilizzando le funzioni %%config entro il notebook. Allocazione flessibile delle risorse; supporta la scalabilità automatica e le configurazioni spark personalizzate.

Flusso di lavoro e orchestrazione

Sceneggiatura Notebook Python (macchina virtuale a 2 core) Notebook PySpark (elaborazione Spark)
Orchestrazione API Efficace per l'orchestrazione leggera e i flussi di controllo, in particolare le integrazioni basate su REST/gRPC Meno ottimale per le attività di orchestrazione di base a causa di un sovraccarico di avvio e distribuzione più lungo.
DAG ETL complessi Limitata all'esecuzione di attività sequenziale (FIFO) su un singolo nodo, senza supporto per l'elaborazione parallela. Supporta l'esecuzione di attività simultanee all'interno di dag usando FlFO o la pianificazione FAlR, consentendo un'elaborazione parallela efficiente per flussi di lavoro ETL complessi.

Supporto della piattaforma e della libreria

Sceneggiatura Notebook Python (macchina virtuale a 2 core) Notebook PySpark (elaborazione Spark)
Accesso alla libreria Supporto della libreria Python avanzata in più runtime; Tuttavia, l'accesso limitato alle librerie native di Spark potrebbe richiedere l'integrazione manuale. Supporta completamente MLlib, Spark SQL, PySpark e Spark Streaming.
Gestione di Delta Lake Il runtime di Notebook Python include le librerie deltas e duckdb preinstallate, consentendo sia la lettura che la scrittura di dati di Delta Lake. Tuttavia, alcune funzionalità di Delta Lake potrebbero ancora non essere supportate. Completamente supportato con compatibilità nativa.

Prontezza per la Produzione e l'Impresa

Sceneggiatura Notebook Python (macchina virtuale a 2 core) Notebook PySpark (elaborazione Spark)
Gestione produzione Funzionalità di produzione limitate; Non supporta variabili di ambiente. Supporto per i flussi di lavoro di produzione con variabili di ambiente, gestione delle librerie tramite elementi di ambiente e distribuzione basata su elementi.

Considerazioni sul costo

Sceneggiatura Notebook Python (macchina virtuale a 2 core) Notebook PySpark (elaborazione Spark)
Profilo di costo Costo iniziale inferiore (minimo 2 vCore); ideale per carichi di lavoro leggeri e ad hoc. Costo iniziale più alto (minimo 4 vCore); progettato per carichi di lavoro scalabili di livello aziendale. La scalabilità automatica può ridurre i costi, con conseguente riduzione del costo totale di proprietà (TCO).

Quando usare Python e PySpark Notebooks

I notebook Fabric offrono flessibilità per un'ampia gamma di utenti e carichi di lavoro. Questa sezione consente di valutare il tipo di notebook più adatto alle esigenze correnti e future.

Usare notebook Python per un'iterazione rapida, un'analisi conveniente e uno sviluppo interattivo. Sono ideali per set di dati più piccoli e includono il supporto nativo per librerie come DuckDB e Polars.

Usare Notebook PySpark per il calcolo distribuito, i flussi di lavoro ETL di livello di produzione o gli scenari in cui elevata concorrenza e le API native di Spark sono essenziali.

Scegliere Notebook Python quando:

  • È necessario un avvio rapido (in genere entro pochi secondi) su un contenitore leggero a 2 core.
  • Se ridurre al minimo i costi di calcolo è una priorità: per l'analisi interattiva o i micro-processi pianificati.
  • Si vuole accedere immediatamente alle librerie installabili pip e a DuckDB e Polars preinstallati.
  • È necessario eseguire il test in diverse versioni di runtime di Python.
  • I dati si adattano comodamente alla memoria di un singolo nodo.

Scegliere Notebook PySpark Quando:

  • I carichi di lavoro superano i limiti di memoria o calcolo di un singolo nodo.
  • È necessario che i pool di concorrenza elevata eseguano lavori paralleli nei notebook.
  • Stai orchestrando complessi pipeline ETL con la pianificazione FAIR o FIFO.
  • Ci si basa su API native di Spark, ad esempio MLlib, Spark SQL o Spark Streaming.
  • Sono necessarie funzionalità di livello di produzione, ad esempio variabili di ambiente e gestione delle librerie basate su elementi.

Differenze principali a colpo d'occhio - Riferimento conciso

Vedere Glossario alla fine di questa guida per le definizioni di termini come VORDER, NEE e Items-Based Library Management.

Questa sezione fornisce un riferimento rapido per le differenze tecniche e architetturali fondamentali tra i notebook Python e PySpark.

Categoria Python Notebook Notebook PySpark
Runtime di calcolo Contenitore leggero (macchina virtuale a 2 core) Cluster Spark (pool a nodo singolo o a concorrenza elevata)
Ora di avvio Avvio immediato (secondi tramite il pool di avvio) L'avvio varia da circa 5 secondi (tramite pool di avvio) a diversi minuti (quando si usano cluster Spark su richiesta).
Profilo di costo Costo inferiore; ideale per attività brevi e prototipi Costo più alto; adatto per carichi di lavoro scalabili e a esecuzione prolungata
Controllo delle versioni di Python/Spark Più versioni di Python disponibili Associato a una versione specifica del runtime di Spark
Librerie personalizzate pip install + cartelle delle risorse comando pip install + cartelle delle risorse + elemento ambienti
Funzionalità Di Fabric Spark Accesso limitato alle funzionalità del motore Spark Accesso completo: NEE, Autotune, VORDER, Vegas Cache
Compatibilità Delta Lake Parzialmente compatibile; potenziali problemi di prestazioni Completamente supportato e ottimizzato

Evoluzione del carico di lavoro: da Python a PySpark

I Fabric Notebooks sono progettati per crescere mano a mano che aumenta la complessità del carico di lavoro. Questa sezione illustra come ridimensionare la strategia notebook dalla semplice esplorazione all'elaborazione dei dati distribuita.

Fase Notebook consigliato Condizione di attivazione
Inizio Notebook Python (2 core) Carichi di lavoro interattivi di piccole dimensioni
Aumentare le prestazioni Notebook Python (passaggio manuale a una macchina virtuale di dimensioni maggiori) Avvicinamento dei limiti di memoria o CPU
Scalabilità orizzontale Notebook PySpark (passaggio manuale al pool di Spark) Necessità di calcolo distribuito o esecuzione parallela

Suggerimento

Quando si passa a PySpark, assicurarsi che il codice usi la sintassi compatibile con Spark. Convalidare i carichi di lavoro nell'ambiente Spark prima della distribuzione nell'ambiente di produzione.

Riassunto

I notebook Python supportano operazioni del kernel, ad esempio l'interruzione e il riavvio del kernel, che accelerano lo sviluppo interattivo. Sono ideali per l'analisi rapida e conveniente di set di dati di piccole e medie dimensioni ed eccellere nella creazione di prototipi, sperimentazione e attività pianificate leggere.

Con l'aumento del volume dei dati e della complessità, i notebook PySpark offrono le funzionalità di potenza di calcolo distribuite e di livello di produzione necessarie per l'analisi aziendale su larga scala. La scelta del notebook appropriato è un processo in continua evoluzione. Iniziare con l'opzione più semplice che soddisfa le esigenze correnti e la scalabilità man mano che aumenta il panorama dei dati.

Fare riferimento al glossario nella pagina finale per le spiegazioni di termini come NEE, VORDER e Las Vegas Cache.

Glossario dei termini

  • Item-Based Gestione librerie: gestisce pacchetti versionati e librerie di produzione all'interno dell'elemento Environment.
  • Compatibilità Delta Lake: supporto tra ambienti per le tabelle Delta; completamente supportato in PySpark.
  • FAIR Scheduling: un criterio di pianificazione che alloca le risorse in modo equo tra i job Spark simultanei.
  • Pianificazione FIFO: ordine di esecuzione First-In-First-Out per la programmazione dei lavori.
  • NEE (Motore di esecuzione nativo): motore di query ottimizzato univoco per Fabric Spark.
  • Pool di Spark: una risorsa di calcolo condivisa per l'esecuzione di carichi di lavoro Spark distribuiti.
  • VORDER: ottimizzazione del fabric per i percorsi di esecuzione delle query vettorializzati.
  • Accelerazione vettorializzata: elabora i dati in batch usando operazioni vettoriali per ottenere prestazioni più veloci.
  • Vegas Cache: una cache in memoria che velocizza l'accesso ripetuto ai dati Spark.