Utilizzare l'esperienza con Python nei notebook

Il quaderno Python è una nuova esperienza costruita sopra i quaderni in Fabric. È uno strumento versatile e interattivo progettato per l'analisi dei dati, la visualizzazione e il machine learning. Offre un'esperienza di sviluppo semplice per la scrittura e l'esecuzione di codice Python. Questa funzionalità lo rende uno strumento essenziale per data scientist, analisti e sviluppatori di business intelligence, soprattutto per le attività di esplorazione che non richiedono Big Data e il calcolo distribuito.

Utilizzando un quaderno Python, otteni:

  • Molteplici kernel Python integrati: I notebook Python offrono un ambiente di programmazione puramente Python senza Spark, con tre versioni integrate del kernel Python: Python 3.10, Python 3.11 e Python 3.12. L'ambiente supporta funzionalità native di IPython come iPyWidget e comandi magici.

  • Economico: il nuovo notebook Python offre vantaggi di risparmio sui costi eseguendo in un cluster a nodo singolo con 2 vCore/16 GB di memoria per impostazione predefinita. Questa configurazione garantisce un utilizzo efficiente delle risorse per i progetti di esplorazione dei dati con dimensioni ridotte dei dati.

  • Lakehouse e risorse sono disponibili nativamente: The Fabric lakehouse insieme alle risorse integrate del notebook e le funzionalità complete sono disponibili in Python. Questa funzione permette agli utenti di trasferire facilmente i dati su Python Notebook, basta provare a trascinare e rilasciare per ottenere il codice snippet.

  • Combina la programmazione con T-SQL: il notebook Python offre un modo semplice per interagire con il Data Warehouse e con gli endpoint di analisi SQL in Explorer. Utilizzando notebookutils data connector, puoi facilmente eseguire gli script T-SQL nel contesto di Python.

  • Supporto per le librerie Data Analytic Popular: I notebook Python sono dotati di librerie preinstallate come DuckDB, Polar e Scikit-learn, fornendo un toolkit completo per la manipolazione, l'analisi e il machine learning dei dati.

  • Advanced IntelliSense: Python notebook adotta Pylance come motore IntelliSense, insieme ad altri servizi personalizzati di linguaggio Fabric, con l'obiettivo di fornire esperienza di programmazione all'avanguardia agli sviluppatori di notebook.

  • NotebookUtils e Semantic Link: Potenti toolkit API consentono di usare facilmente le funzionalità di Fabric e Power BI con un approccio code-first.

  • Funzionalità avanzate di visualizzazione: Oltre alle diffuse funzioni 'Table' e 'Chart' per l'anteprima avanzata dei dataframe, supporta anche librerie di visualizzazione come Matplotlib, Seaborn e Plotly. PowerBIClient supporta anche queste librerie per aiutare gli utenti a comprendere meglio i modelli di dati e le informazioni dettagliate.

  • Funzionalità comuni per Fabric Notebook: Tutte le funzionalità a livello di Notebook sono naturalmente applicabili per il notebook Python, come le funzionalità di montaggio, AutoSave, collaborazione, condivisione e gestione dei permessi, integrazione con Git, import/export e altro ancora.

  • funzionalità di data science full stack: il toolkit avanzato con poco codice Data Wrangler, il framework di Machine Learning MLFlow e il potente Copilot sono tutti disponibili nel notebook Python.

Come accedere a un quaderno Python

Dopo aver aperto un quaderno in Fabric, puoi passare a Python nel menu a tendina del linguaggio nella scheda Home e convertire l'intera configurazione del quaderno in Python.

Screenshot che mostra il passaggio a Python dal menu del linguaggio notebook.

La maggior parte delle funzionalità comuni è supportata a livello di notebook. Per saperne di più, consulta Come utilizzare i Fabric notebooks e Sviluppare, eseguire ed gestire i Fabric notebook. Questo articolo elenca alcune capacità chiave specifiche per scenari Python.

Eseguire notebook Python

I notebook Python supportano molteplici metodi di esecuzione dei lavori:

  • Esecuzione interattiva: è possibile eseguire un notebook Python in modo interattivo come un notebook jupyter nativo.
  • Esecuzione pianificata: puoi usare la funzionalità di pianificazione semplificata nella pagina delle impostazioni del notebook per eseguire un notebook Python come processo batch.
  • Esecuzione della pipeline: è possibile orchestrare i notebook Python come attività del notebook in Pipeline. Il processo genera uno snapshot dopo l'esecuzione del lavoro.
  • Esecuzione di riferimento: è possibile usare o notebookutils.notebook.run() per fare riferimento all'esecuzione di notebook Python in un altro notebook Python come processo batch. Il processo genera una snapshot dopo la fine della run di riferimento.
  • %run: Puoi usarlo %run per fare riferimento ed eseguire altri notebook all'interno dello stesso contesto di esecuzione, così puoi chiamare direttamente funzioni e riutilizzare variabili definite in quei notebook. Per altre informazioni, vedere la documentazione su come fare riferimento all'esecuzione di un notebook.
  • Esecuzione dell'API pubblica: è possibile pianificare l'esecuzione del notebook Python con l'API pubblica eseguita dal notebook. L'API Job Scheduler supporta esecuzioni con parametri e la restituzione di valori di uscita dalle esecuzioni del notebook. I valori di uscita possono essere utilizzati per l'orchestrazione condizionale e per segnalare i risultati quando si orchestrano i notebook Python in scenari di automazione e CI/CD. Assicurarsi che le proprietà del linguaggio e del kernel nei metadati del notebook del payload dell'API pubblica siano impostate correttamente. I valori dei parametri passati tramite l'API pubblica sono disponibili per il notebook Python in fase di esecuzione usando il modello di accesso ai parametri standard usato nei notebook di Fabric. Per informazioni dettagliate sulla forma della richiesta per i parametri e sul recupero dei valori di uscita, vedere Gestire ed eseguire notebook in Fabric con API. È possibile monitorare lo stato dell'esecuzione e annullare le istanze del processo tramite l'API del Job Scheduler, completando la funzionalità in-UI Visualizza tutte le esecuzioni.

Note

L'autenticazione del principale del servizio è supportata per la REST API degli Articoli (CRUD per notebook) e l'API di Job Scheduler (esecuzione), abilitando un'automazione sicura non presidiata e CI/CD per i notebook Python. Aggiungere il principale del servizio all'area di lavoro con un ruolo appropriato per usare queste API.

È possibile monitorare i dettagli dell'esecuzione del processo del notebook Python nella barra multifunzione nella scheda Esegui ->Visualizza tutte le esecuzioni.

Note

Attualmente, %run supporta solo il riferimento agli elementi del quaderno su Python notebook, non ai moduli di codice (come i file .py) dalla cartella risorse del notebook.

Interazione dei dati

Puoi interagire con lakehouse, warehouse, endpoint di analisi SQL e cartelle di risorse integrate nei notebook Python.

Note

Il runtime del notebook Python viene preinstallato con librerie delta-rs e duckdb per supportare sia la lettura che la scrittura dei dati di Delta Lake. Tuttavia, alcune caratteristiche di Delta Lake potrebbero non essere completamente supportate. Per maggiori dettagli e gli ultimi aggiornamenti, consulta la documentazione delta-rs e DuckDB .

Interazione con Lakehouse

Puoi impostare una casa sul lago come predefinita, oppure aggiungere più case sul lago da esplorare e usarle nei quaderni.

Se non sei abituato a leggere oggetti dati come la tabella Delta, prova a trascinare e rilasciare il file e la tabella Delta nella tela del notebook, oppure usa l'opzione Carica dati nel menu a tendina dell'oggetto. Il notebook inserisce automaticamente un frammento di codice in una cella di codice e genera codice per leggere l'oggetto dati di destinazione.

Note

Se incontri OOM quando carichi un grande volume di dati, prova a usare DuckDB, Polars o PyArrow dataframe invece dei panda.

Puoi trovare l'operazione write lakehouse in Browse code snippet ->Write data to Delta table.

Screenshot che mostra l'operazione di scrittura nel lakehouse.

Interazione del magazzino e programmazione mista con T-SQL.

Puoi aggiungere warehouse o endpoint di analisi SQL dall'esploratore Warehouse o notebook. Analogamente, è possibile trascinare e rilasciare le tabelle nell'area di disegno del notebook oppure usare le operazioni di scelta rapida nel menu a discesa della tabella. Il notebook genera automaticamente un frammento di codice per te. È possibile usare le utilità notebookutils.data per stabilire una connessione con Warehouse ed eseguire query sui dati usando istruzioni T-SQL nel contesto di Python.

Screenshot che mostra le scorciatoie delle tabelle del magazzino.

Note

Gli endpoint di analisi SQL sono di sola lettura.

Cartella risorse taccuino

La cartella risorse integrata di Notebook resources è disponibile nativamente sui notebook Python. Puoi facilmente interagire con i file nella cartella resources integrata usando codice Python come se stessi lavorando con il tuo file system locale. Attualmente, la cartella delle risorse Ambiente non è supportata.

Operazioni del kernel

I notebook Python supportano tre kernel integrati: Python 3.10, Python 3.11 e Python 3.12. Il kernel selezionato di default è Python 3.12. Puoi facilmente passare da uno all'altro.

Puoi interrompere, riavviare o cambiare kernel nella scheda Home del ribbon. Interrompere il kernel nei notebook Python equivale a cancellare una cella in un notebook Spark.

Screenshot che mostra le operazioni del kernel.

Un'uscita anomala del kernel provoca l'interruzione dell'esecuzione del codice e la perdita di variabili, ma non ferma la sessione del notebook.

Alcuni comandi possono portare alla morte del kernel. Ad esempio, quitt() ed exit().

Per il ciclo di vita di supporto di ciascuna versione del kernel Python, inclusi i dati di fine supporto e i passaggi di migrazione, vedi Python notebook runtime e ciclo di vita del kernel in Fabric.

Gestione delle librerie

Usa i comandi %pip e %conda per le installazioni in linea. Questi comandi supportano sia biblioteche pubbliche che biblioteche personalizzate.

Per le librerie personalizzate, carica i file della libreria nella cartella risorse integrata . La piattaforma supporta diversi tipi di librerie, inclusi formati come Wheel (.whl), JAR (.jar), DLL (.dll) e Python (.py). Basta trascinare e rilasciare il file, e il frammento di codice viene generato automaticamente.

Potresti dover riavviare il kernel per usare i pacchetti aggiornati.

Per comprendere meglio e utilizzare comandi simili, si riferisce alla tabella seguente.

Command/Syntax Scopo principale Funzionamento in Jupyter Notebook Caso d'uso tipico Notes
%pip install package Installare i pacchetti Python Esegue pip nel kernel Python del notebook Modo consigliato per installare i pacchetti Nei notebook Python, come !pip; non riavvia automaticamente il kernel
!pip install package Installare pacchetti Python tramite shell Esegue il comando pip nella shell Modo alternativo per installare i pacchetti Nei notebook Python, come %pip; non riavvia automaticamente il kernel
import sys; sys.exit(0) Riavviare il kernel del notebook Riavvia immediatamente il kernel Riavviare il kernel a livello di codice Cancella tutte le variabili e gli stati; non consigliato per l'uso diretto
notebookutils.session.restartPython() Riavviare il kernel del notebook Chiamate sys.exit(0) internamente Modo consigliato per riavviare il kernel API ufficiale, più sicura e più compatibile rispetto all'uso sys.exit(0) diretto

Note

  • Nei notebook Python, %pip e !pip hanno lo stesso comportamento: entrambi installano i pacchetti nell'ambiente del kernel corrente e nessuno dei due riavvia automaticamente il kernel dopo l'installazione.
  • Se devi riavviare il kernel (ad esempio, dopo aver installato certi pacchetti), usa notebookutils.session.restartPython() invece di import sys; sys.exit(0).
    • notebookutils.session.restartPython() è un'API ufficiale che si incapsula sys.exit(0) , ed è più sicura e compatibile negli ambienti notebook.
  • Non usare sys.exit(0) direttamente a meno che non sia necessario.

Monitoraggio dell'utilizzo delle risorse in tempo reale del notebook Python

Importante

Questa funzionalità si trova in Anteprima.

Utilizzando il pannello del monitor delle risorse, puoi tracciare informazioni critiche di runtime come la durata della sessione, il tipo di calcolo e le metriche delle risorse in tempo reale, inclusi il consumo di CPU e memoria, direttamente all'interno del tuo notebook. Questa funzionalità offre una panoramica immediata della sessione attiva e delle risorse usate.

Il monitoraggio delle risorse migliora la visibilità del modo in cui i carichi di lavoro Python usano le risorse di sistema. Consente di ottimizzare le prestazioni, gestire i costi e ridurre il rischio di errori di memoria insufficiente (out-of-memory, OOM). Monitorando le metriche in tempo reale, è possibile identificare le operazioni a elevato utilizzo delle risorse, analizzare i modelli di utilizzo e prendere decisioni informate sul ridimensionamento o sulla modifica del codice.

Per iniziare a usarlo, impostare il linguaggio notebook su Python e avviare una sessione. È quindi possibile aprire il monitoraggio facendo clic sulle risorse di calcolo nella barra di stato del notebook o selezionando Visualizza utilizzo risorse sulla barra degli strumenti. Il pannello del monitor delle risorse appare automaticamente, offrendo un'esperienza di monitoraggio integrata per il codice Python nei notebook Fabric.

Screenshot che mostra il monitoraggio dell'utilizzo delle risorse in tempo reale del notebook Python.

Comando magico di configurazione della sessione

Similmente alla personalizzazione di una configurazione di una sessione Spark in un notebook, puoi anche usare%%configure in un notebook Python. I notebook Python supportano la personalizzazione della dimensione dei nodi di calcolo, dei punti di montaggio e della lakehouse predefinita della sessione del notebook. Puoi usare queste impostazioni sia nei quaderni interattivi che nelle attività del quaderno della pipeline. Usa il %%configure comando all'inizio del tuo quaderno, altrimenti devi riavviare la sessione del quaderno per far entrare in vigore le impostazioni.

Ecco le proprietà supportate nel notebook Python %%configure:

%%configure -f
{
    "vCores": 4, // Recommended values: [4, 8, 16, 32, 64], Fabric will allocate matched memory according to the specified vCores.
    "defaultLakehouse": {  
        // Will overwrites the default lakehouse for current session
        "name": "<lakehouse-name>",
        "id": "<(optional) lakehouse-id>",
        "workspaceId": "<(optional) workspace-id-that-contains-the-lakehouse>" // Add workspace ID if it's from another workspace
    },
    "mountPoints": [
        {
            "mountPoint": "/myMountPoint",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>"
        },
        {
            "mountPoint": "/myMountPoint1",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path1>"
        },
    ],
}

Puoi visualizzare l'aggiornamento delle risorse di calcolo nella barra di stato del notebook e monitorare in tempo reale l'uso di CPU e memoria del nodo di calcolo.

Screenshot che mostra l'aggiornamento delle risorse di calcolo.

Note

Le esecuzioni attivate dall'API rispettano la configurazione della sessione, ad esempio i vCore di calcolo e defaultLakehouse specificati tramite i metadati del notebook o %%configure. L'API Job Scheduler supporta anche la selezione del lakehouse di destinazione e dell'ambiente in fase di esecuzione. Per informazioni dettagliate sui campi del payload, vedere Gestire ed eseguire notebook in Fabric con le API.

NotebookUtils

Notebook Utilities (NotebookUtils) è un pacchetto integrato che ti aiuta a svolgere facilmente compiti comuni in Fabric notebook. È preinstallato nel runtime Python. Usa NotebookUtils per lavorare con file system, ottenere variabili di ambiente, concatenare notebook, accedere a uno storage esterno e lavorare con i segreti.

Usalo notebookutils.help() per elencare le API disponibili e ottenere aiuto con i metodi. Per maggiori informazioni, consulta la documentazione di NotebookUtils.

Utilità dei dati

Note

Attualmente, la funzionalità è in anteprima.

Usa le notebookutils.data utility per connetterti a una fonte dati. Poi, puoi leggere e interrogare i dati usando un'istruzione T-SQL.

Eseguire il comando seguente per ottenere una panoramica dei metodi disponibili:

notebookutils.data.help()

Output:

Help on module notebookutils.data in notebookutils:

NAME
    notebookutils.data - Utility for read/query data from connected data sources in Fabric

FUNCTIONS
    connect_to_artifact(artifact: str, workspace: str = '', artifact_type: str = '', **kwargs)
        Establishes and returns an ODBC connection to a specified artifact within a workspace 
        for subsequent data queries using T-SQL.
        
        :param artifact: The name or ID of the artifact to connect to.
        :param workspace:  Optional; The workspace in which the provided artifact is located, if not provided,
                             use the workspace where the current notebook is located.
        :param artifactType: Optional; The type of the artifact, Currently supported type are Lakehouse, Warehouse and MirroredDatabase. 
                                If not provided, the method will try to determine the type automatically.
        :param **kwargs Optional: Additional optional configuration. Supported keys include:
            - tds_endpoint : Allow user to specify a custom TDS endpoint to use for connection.
        :return: A connection object to the specified artifact.
        
        :raises UnsupportedArtifactException: If the specified artifact type is not supported to connect.
        :raises ArtifactNotFoundException: If the specified artifact is not found within the workspace.
        
        Examples:
            sql_query = "SELECT DB_NAME()"
            with notebookutils.data.connect_to_artifact("ARTIFACT_NAME_OR_ID", "WORKSPACE_ID", "ARTIFACT_TYPE") as conn:
                df = conn.query(sql_query)
                display(df)
    
    help(method_name: str = '') -> None
        Provides help for the notebookutils.data module or the specified method.
        
        Examples:
        notebookutils.data.help()
        notebookutils.data.help("connect_to_artifact")
        :param method_name: The name of the method to get help with.

DATA
    __all__ = ['help', 'connect_to_artifact']

FILE
    /home/trusted-service-user/jupyter-env/python3.10/lib/python3.10/site-packages/notebookutils/data.py

Interrogare i dati di Lakehouse

conn = notebookutils.data.connect_to_artifact("lakehouse_name_or_id", "optional_workspace_id", "optional_lakehouse_type")
df = conn.query("SELECT * FROM sys.schemas;")

Eseguire query sui dati dal data warehouse

conn = notebookutils.data.connect_to_artifact("warehouse_name_or_id", "optional_workspace_id", "optional_warehouse_type")
df = conn.query("SELECT * FROM sys.schemas;")

Interrogare i dati dal database SQL

conn = notebookutils.data.connect_to_artifact("sqldb_name_or_id", "optional_workspace_id", "optional_sqldatabase_type") 
df = conn.query("SELECT * FROM sys.schemas;")

Note

Le utility dati in NotebookUtils sono disponibili per ora solo su notebook Python.

Esplorare i frammenti di codice

Puoi trovare utili frammenti di codice Python nella scheda Modificaselezionando Sfoglia frammento di codice. Sono ora disponibili nuovi campioni di Python. Per iniziare a esplorare il quaderno, impara dai frammenti di codice in Python.

Screenshot che mostra dove navigare frammenti di codice Python.

Usa la funzione di collegamento semantico per collegare modelli semantici e Fabric Data Science. Il notebook Python supporta nativamente questa funzione. Gli ingegneri BI e gli sviluppatori Power BI possono utilizzare il collegamento semantico per collegare e gestire facilmente i modelli semantici. Per saperne di più, vedi Cos'è il collegamento semantico.

Visualization

Oltre a disegnare grafici con librerie, la funzione di visualizzazione predefinita consente di trasformare i dataframe in visualizzazioni di dati in formato avanzato. Usa la funzione display() con i dataframe per ottenere la vista tabellare avanzata e la vista grafico.

Screenshot che mostra l'esperienza di visualizzazione nei notebook Python.

Note

Il quaderno Python mantiene le configurazioni dei grafici. Dopo aver rieseguito la cella del codice, se lo schema del dataframe di destinazione non cambia, i grafici salvati rimangono.

Codice IntelliSense

I quaderni Python utilizzano anche Pylance come server del linguaggio. Per maggiori informazioni, consulta Migliorare lo sviluppo Python con Pylance.

Funzionalità di data science

Per saperne di più sulle esperienze di data science e IA in Fabric, consulta la documentazione di Fabric Data Science. Questo articolo elenca alcune funzionalità chiave della data science che i notebook Python supportano nativamente.

  • Data Wrangler: Data Wrangler è uno strumento basato su quaderni che offre un'interfaccia immersiva per l'analisi esplorativa dei dati. Questa funzionalità combina una visualizzazione di dati simile a una griglia con statistiche di riepilogo dinamiche, visualizzazioni predefinite e una libreria di operazioni comuni di pulizia dei dati. Fornisce pulizia dei dati, trasformazione e integrazione, accelerando la preparazione dei dati tramite l'utilizzo del Data Wrangler.

  • MLflow: un esperimento di Machine Learning è l'unità principale dell'organizzazione e il controllo per tutte le esecuzioni di Machine Learning correlate. Un'esecuzione corrisponde a una singola esecuzione del codice del modello.

  • Fabric Auto Logging: Fabric Data Science include l'autologging, che riduce significativamente la quantità di codice necessaria per registrare automaticamente parametri, metriche e elementi di un modello di machine learning durante l'addestramento.

    Il funzionalità di autologging estende le capacità di tracciamento di MLflow. L'autologging può acquisire varie metriche, tra cui accuratezza, loss, punteggio F1 e metriche personalizzate definite. Usando l'assegnazione automatica di tag, gli sviluppatori e i data scientist possono tenere traccia e confrontare facilmente le prestazioni di modelli e esperimenti diversi senza tracciare manualmente.

  • Copilot: Copilot per i notebook di data engineering e data science è un assistente di intelligenza artificiale che consente di analizzare e visualizzare i dati. Copilot è immediatamente consapevole del contesto senza richiedere l'avvio di una sessione. Comprende l'area di lavoro, gli schemi Lakehouse collegati, le tabelle e i file, la struttura del notebook e lo stato di runtime e può funzionare nell'intero flusso di lavoro del notebook.

    Copilot supporta funzionalità multifase estese all'intero notebook: può generare, ristrutturare, riassumere e convalidare il codice tra più celle e passaggi nei notebook Python. È possibile usare il pannello di chat e i comandi di chat di Copilot, /fix ad esempio nel notebook.

    Quando una cella fallisce, Correzione con Copilot visualizza un riepilogo degli errori, l'analisi della causa radice e le correzioni consigliate, con un'opzione per applicare automaticamente le modifiche al codice dopo aver mostrato una differenza per approvazione. È anche possibile usare il /fix comando nella chat di Copilot per la diagnostica mirata in una cella specifica o nell'intero notebook.

Limitazioni note

  • L'esperienza del live pool non è garantita per ogni esecuzione di notebook Python. L’avvio della sessione può richiedere fino a tre minuti se l’esecuzione del notebook non utilizza il live pool. Con la crescita dell'uso dei notebook Python, i metodi di pooling intelligenti aumentano gradualmente l'allocazione del live pool per soddisfare la domanda.

  • L'integrazione dell'ambiente non è disponibile sui notebook Python.

  • Il timeout della sessione impostato non è disponibile.

  • Copilot ha migliorato la consapevolezza del contesto e l'assistenza per i notebook Python, ma può suggerire occasionalmente codice Spark che non è direttamente eseguibile in un notebook Python. L'esperienza di correzione con Copilot si applica alle celle Python non riuscite; la diagnostica dei lavori Spark non rientra nell'ambito per le esecuzioni Python pure.

  • Attualmente, Copilot su notebook Python non è completamente supportato in diverse regioni. Il processo di distribuzione è ancora in corso. Restate sintonizzati mentre il supporto si diffonderà in altre regioni.