Condividi tramite


Usare l'esperienza Python nel notebook

Nota

Attualmente, la funzionalità è in anteprima.

Il notebook Python è una nuova esperienza basata sul notebook di Fabric. È uno strumento versatile e interattivo progettato per l'analisi, la visualizzazione e l'apprendimento automatico dei dati. Offre un'esperienza di sviluppo semplice per la scrittura e l'esecuzione di codice Python. Questo 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.

Con un notebook Python è possibile ottenere:

  • Molteplici kernel Python predefiniti: I notebook Python offrono un ambiente di codifica Python puro senza Spark, con due versioni del kernel Python, Python 3.10 e 3.11, disponibili per impostazione predefinita e le funzionalità native IPython supportate come iPyWidget e i comandi magici.

  • conveniente: il nuovo notebook Python offre vantaggi di risparmio sui costi eseguendo su un cluster a nodo singolo dotato di 2 vCore e 16 GB di memoria per impostazione predefinita. In questo modo si garantisce un utilizzo efficiente delle risorse per i progetti di esplorazione dei dati con dimensioni ridotte dei dati.

  • Le risorse & Lakehouse sono disponibili in modo nativo: Fabric Lakehouse insieme alle funzionalità complete delle risorse predefinite di Notebook sono disponibili nel notebook Python. Ciò consente agli utenti di trasferire facilmente i dati nel notebook Python, è sufficiente provare a trascinare & rilascio per ottenere il frammento di codice.

  • Mescolare la programmazione con T-SQL: Il notebook Python offre un modo semplice per interagire con il Data Warehouse e gli Endpoint SQL nell'Esplora, utilizzando il connettore dati notebookutils è possibile eseguire facilmente gli script T-SQL nel contesto di Python.

  • supporto per le librerie di analisi dei dati più diffuse: i notebook Python sono dotati di librerie preinstallate come DuckDB, Polars e Scikit-learn, fornendo un toolkit completo per la manipolazione, l'analisi e l'apprendimento automatico dei dati.

  • Advanced Intellisense: il Notebook Python sta adottando Pylance come motore Intellisense, insieme ad altri servizi di linguaggio personalizzati di Fabric, allo scopo di offrire un'esperienza di codifica di ultima generazione per gli sviluppatori di notebook.

  • NotebookUtils & collegamento semantico: i potenti toolkit API consentono di usare facilmente le funzionalità di Fabric e Power BI con esperienza code-first.

  • funzionalità di visualizzazione avanzate: ad eccezione della funzione 'Table' di anteprima avanzata dei dataframe e della funzione 'Chart', sono supportate anche le librerie di visualizzazione più diffuse, ad esempio 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 i Notebook di Fabric: Tutte le funzionalità a livello di notebook sono naturalmente applicabili ai notebook Python, come le funzionalità di modifica, il salvataggio automatico, la collaborazione, la condivisione e la gestione delle autorizzazioni, l'integrazione con Git, e l'importazione/esportazione, ecc.

  • 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 Python Notebook

Dopo aver aperto un notebook di Fabric, è possibile passare a Python nel menu a discesa del linguaggio nella scheda Home e convertire l'intera preparazione del notebook 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 informazioni dettagliate sull'utilizzo dei notebook di Microsoft Fabric, è possibile fare riferimento a Come usare i notebook di Microsoft Fabric e Sviluppare, eseguire e gestire i notebook di Microsoft Fabric. Di seguito sono elencate alcune funzionalità chiave specifiche per gli scenari Python.

Eseguire notebook Python

Il notebook Python supporta più modi di esecuzione dei processi:

  • L'esecuzione interattiva: è possibile eseguire un notebook Python in modo interattivo come un notebook Jupyter nativo.
  • Pianificare l'esecuzione: È possibile utilizzare l'interfaccia leggera del pianificatore nella pagina delle impostazioni del notebook per eseguire il notebook Python come processo batch.
  • 'esecuzione della pipeline: è possibile orchestrare i notebook Python come attività del notebook in pipeline di dati. Lo snapshot verrà generato dopo l'esecuzione dell'attività.
  • Esecuzione di riferimento: è possibile utilizzare notebookutils.notebook.run() o notebookutils.notebook.runMultiple() per eseguire notebook Python in un altro notebook Python come processo batch. Lo snapshot sarà generato dopo il completamento dell'esecuzione di riferimento.
  • Esecuzione dell'API pubblica: Puoi pianificare l'esecuzione del tuo notebook Python con l'API pubblica di esecuzione del notebook . Assicurati che le proprietà di linguaggio e kernel nei metadati del payload dell'API pubblica siano impostate correttamente.

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

Interazione dei dati

È possibile interagire con Lakehouse, Warehouse, endpoint SQL e cartelle di risorse predefinite nel notebook Python.

Interazione con Lakehouse

È possibile impostare un Lakehouse come predefinito oppure aggiungere più Lakehouse per esplorarli e usarli nei notebook.

Se non si ha familiarità con la lettura degli oggetti dati come tabella delta, provare a trascinare e rilasciare il file e la tabella delta nell'area di disegno del notebook oppure usare il Carica dati nel menu a discesa dell'oggetto. Notebook inserisce automaticamente un frammento di codice nella cella di codice e genera il codice per leggere l'oggetto dati di destinazione.

Nota

Se si verifica OOM durante il caricamento di grandi volumi di dati, provare a usare DuckDB, Polars o PyArrow invece di pandas.

È possibile trovare l'operazione di scrittura Lakehouse nel frammento di codice Browse ->Scrivi dati nella tabella delta.

Screenshot che mostra l'operazione di scrittura nel lakehouse.

Interazione del magazzino e programmazione mista con T-SQL.

È possibile aggiungere data warehouse o endpoint SQL dall'esploratore dei warehouse di 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 uno snippet di codice per te. È possibile usare le utilità notebookutils.data per stabilire una connessione con Warehouse ed eseguire query sui dati usando l'istruzione T-SQL nel contesto di Python.

Screenshot che mostra i collegamenti alle tabelle del magazzino.

Nota

Gli endpoint SQL sono di sola lettura qui.

Cartella risorse notebook

La cartella predefinita delle risorse per le risorse del notebook è disponibile in modo nativo nel notebook Python. È possibile interagire facilmente con i file nella cartella delle risorse predefinite usando il codice Python come se si lavora con il file system locale. Attualmente la cartella delle risorse Ambiente non è supportata.

Operazioni del kernel

I notebook Python supportano attualmente due kernel integrati, Python 3.10 e Python 3.11, il kernel selezionato di default è Python 3.11. è possibile passare facilmente da una all'altra.

È possibile interrompere, riavviare o commutare il kernel nella scheda Home della barra multifunzione. L'interruzione del kernel nei notebook Python equivale all'annullamento della cella nel notebook Spark.

Screenshot che mostra le operazioni del kernel.

L'uscita anomala del kernel causa l'interruzione dell'esecuzione del codice e alla perdita di variabili, ma non arresta la sessione del notebook.

Esistono comandi che possono causare la scomparsa del kernel. Ad esempio, quit(), exit().

Gestione delle librerie

È possibile usare %pip e %conda comandi per le installazioni inline, i comandi supportano sia librerie pubbliche che librerie personalizzate.

Per le librerie personalizzate, è possibile caricare i file lib nella cartella risorse predefinite. Sono supportati più tipi di librerie come .whl, .jar, .dll, .pye così via, è sufficiente provare a trascinare&rilasciare nel file e il frammento di codice viene generato automaticamente.

Potrebbe essere necessario riavviare il kernel per usare i pacchetti aggiornati.

Comando magico di configurazione della sessione

Analogamente alla personalizzazione di una configurazione di sessione Spark nel notebook, è possibile usare anche %%configure nel notebook Python. Il notebook Python supporta la personalizzazione delle dimensioni dei nodi di calcolo, dei punti di montaggio e della lakehouse predefinita della sessione del notebook. Possono essere usati sia nelle attività dei notebook interattivi che dei notebook pipeline. È consigliabile usare il comando %%configure all'inizio del notebook, oppure riavviare la sessione del notebook per rendere effettive le impostazioni.

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

%%configure
{
    "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>"
        },
    ],
}

È possibile visualizzare l'aggiornamento delle risorse di calcolo sulla barra di stato del notebook e monitorare l'utilizzo della CPU e della memoria del nodo di calcolo in tempo reale.

Screenshot che mostra l'aggiornamento delle risorse di calcolo.

NotebookUtils

Notebook Utilities (NotebookUtils) è un pacchetto predefinito che consente di eseguire facilmente attività comuni in Fabric Notebook. È preinstallato nel runtime Python. È possibile usare NotebookUtils per lavorare con i file system, per ottenere variabili di ambiente, per concatenare i notebook, per accedere all'archiviazione esterna e per lavorare con i segreti.

È possibile usare notebookutils.help() per elencare le API disponibili e ottenere assistenza anche con i metodi oppure fare riferimento alla documentazione NotebookUtils.

Utilità dei dati

Nota

  • Attualmente, la funzionalità è in anteprima.
  • Il contratto API potrebbe cambiare nel prossimo futuro.

È possibile usare le utilità notebookutils.data per stabilire una connessione con l'origine dati fornita e quindi leggere ed eseguire query sui dati usando T-SQL.

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

notebookutils.data.help()

Prodotto:

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 = None) -> pyodbc.Connection
        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.
        :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:
                cursor = conn.cursor()
                cursor.execute(sql_query)
                rows = cursor.fetchall()
                for row in rows:
                    print(row)
    
    help(method_name=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.11/lib/python3.11/site-packages/notebookutils/data.py

Eseguire query sui dati da Lakehouse

conn = notebookutils.data.connect_to_artifact("lakehouse_name_or_id", "optional_workspace_id", "optional_lakehouse_type")

cursor = conn.cursor()
cursor.execute("SELECT * FROM sys.schemas;")
rows = cursor.fetchall()
for row in rows:
    print(row)

Eseguire query sui dati dal data warehouse

conn = notebookutils.data.connect_to_artifact("warehouse_name_or_id", "optional_workspace_id", "optional_warehouse_type")

cursor = conn.cursor()
cursor.execute("SELECT * FROM sys.schemas;")
rows = cursor.fetchall()
for row in rows:
    print(row)

Nota

  • Le utilità dati in NotebookUtils sono disponibili solo nel notebook Python per il momento.
  • Limitazione nota: per connect_to_artifact API, l'oggetto conn restituito inizializza internamente un token PBI per autenticare l'utente durante la connessione all'origine dati. Tuttavia, non supporta l'aggiornamento del token. Attualmente il token PBI è valido solo per un'ora, qualsiasi query superiore a un'ora avrà esito negativo a causa del problema di scadenza del token.

Esplorare i frammenti di codice

È possibile trovare frammenti di codice Python utili in scheda Modifica->Sfoglia frammento di codice, sono ora disponibili nuovi esempi python. Puoi imparare dal frammento di codice Python per iniziare esplorando il notebook.

Screenshot che mostra dove navigare frammenti di codice Python.

Il collegamento semantico è una funzionalità che consente di stabilire una connessione tra modelli semantici e Synapse Data Science in Microsoft Fabric. È supportato in modo nativo nel notebook Python. Gli ingegneri BI e gli sviluppatori di Power BI possono usare Semantic Link per connettere e gestire facilmente il modello semantico. Per altre informazioni sul collegamento semantico, leggere il documento pubblico .

Visualizzazione

Oltre a disegnare grafici con librerie, la funzione di visualizzazione predefinita consente di trasformare i DataFrame in visualizzazioni di dati in formato ricco. È possibile usare la funzione display() nei dataframe per produrre una visualizzazione di tabella ricca e di grafico.

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

Nota

Le configurazioni del grafico verranno mantenute nel notebook Python, il che significa che dopo la riesecuzione della cella di codice, se lo schema del dataframe di destinazione non è stato modificato, i grafici salvati rimangono persistenti.

Codice intelliSense

Il notebook Python integra Pylance per migliorare l'esperienza di scrittura del codice Python. Pylance è il supporto di servizio linguistico predefinito per Python in Visual Studio Code. Offre numerose funzioni facili da usare, come l'evidenziazione delle parole chiave, le informazioni rapide, il completamento del codice, le informazioni sui parametri e il rilevamento degli errori di sintassi. Inoltre, Pylance offre prestazioni migliori quando il notebook è lungo.

Funzionalità di data science

Visita la documentazione di Data Science su Microsoft Fabric per saperne di più sull'esperienza di data science e intelligenza artificiale in Fabric. Di seguito sono elencate alcune funzionalità chiave di data science supportate in modo nativo nel notebook Python.

  • Data Wrangler: Data Wrangler è uno strumento basato su notebook che fornisce un'interfaccia immersiva per l'analisi dei dati di esplorazione. 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. Offre servizi di pulizia dei dati, trasformazione e integrazione, accelerando la preparazione dei dati con Data Wrangler.

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

  • Registrazione automatica di Fabric: Synapse Data Science in Microsoft Fabric include la registrazione automatica, riducendo in modo significativo la quantità di codice necessaria per registrare automaticamente i parametri, le metriche e gli 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 notebook di Data Science e Ingegneria dei Dati è un assistente di intelligenza artificiale che aiuta ad analizzare e visualizzare i dati. Funziona con tabelle lakehouse, set di dati di Power BI e dataframe pandas/spark, fornendo risposte e frammenti di codice direttamente nel notebook. È possibile usare il pannello di chat Copilot e Char-magics nel notebook e l'intelligenza artificiale fornisce risposte o codice da copiare nel notebook.

Limitazioni note dell'anteprima pubblica

  • L'esperienza del pool in tempo reale non è garantita per ogni esecuzione di un notebook Python. L'orario di inizio della sessione potrebbe subire un ritardo fino a 3 minuti se l'esecuzione del notebook non riesce a entrare nel pool attivo. Mentre l'uso del notebook Python cresce, i nostri metodi di compensazione intelligenti aumenteranno gradualmente l'allocazione del pool attivo per soddisfare la domanda.

  • L'integrazione dell'ambiente non è disponibile nel notebook Python in anteprima pubblica.

  • L'impostazione del timeout della sessione non è disponibile al momento.

  • Copilot può generare un'istruzione Spark, che potrebbe non poter essere eseguita nel notebook Python.

  • Attualmente, il supporto per Copilot nei notebook Python non è completo in numerose regioni. Il processo di distribuzione è ancora in corso. Rimanete sintonizzati mentre continuiamo a implementare il supporto in altre regioni.