Creare, sviluppare e gestire notebook Synapse in Azure Synapse Analytics

Un notebook Synapse è un'interfaccia Web che consente di creare file contenenti codice live, visualizzazioni e testo narrativo. I notebook possono essere usati per convalidare idee ed eseguire esperimenti rapidi per ottenere informazioni cognitive dettagliate dai dati. I notebook sono anche ampiamente usati per la preparazione e la visualizzazione dei dati, l'apprendimento automatico e altri scenari di Big Data.

Con un notebook synapse è possibile:

  • Iniziare senza attività di configurazione.
  • Mantenere i dati protetti con le funzionalità di sicurezza aziendali predefinite.
  • Analizzare i dati in formati non elaborati (CSV, txt, JSON e così via), formati di file elaborati (parquet, Delta Lake, ORC e così via) e file di dati tabulari SQL in Spark e SQL.
  • Ottenere produttività con funzionalità avanzate di creazione e visualizzazione dei dati predefinite.

Questo articolo descrive come usare i notebook in Synapse Studio.

Creare un notebook

È possibile creare un notebook in due modi. È possibile creare un nuovo notebook o importare un notebook esistente in un'area di lavoro synapse dal Esplora oggetti. I notebook synapse riconoscono i file IPYNB Jupyter Notebook standard.

Screenshot della creazione di un notebook nuovo o di importazione

Sviluppare i notebook

I notebook sono costituiti da celle, che sono singoli blocchi di codice o testo che possono essere eseguiti in modo indipendente o come gruppo.

Sono disponibili operazioni avanzate per lo sviluppo di notebook:

Nota

Nei notebook è disponibile una sessione SparkSession creata automaticamente, archiviata in una variabile denominata spark. Esiste anche una variabile per SparkContext, denominata sc. Gli utenti possono accedere direttamente a queste variabili e non devono modificare i valori di queste variabili.

Aggiungere una cella

Esistono diversi modi per aggiungere una nuova cella al notebook.

  1. Passare il puntatore del mouse sullo spazio tra due celle e selezionare Codice o Markdown. Screenshot di add-azure-notebook-cell-with-cell-button

  2. Usare i tasti di scelta rapida aznb in modalità comando. Premere A per inserire una cella al di sopra della cella corrente. Premere B per inserire una cella sotto la cella corrente.


Impostare il linguaggio primario

I notebook synapse supportano quattro linguaggi Apache Spark:

  • PySpark (Python)
  • Spark (Scala)
  • Spark SQL
  • .NET Spark (C#)
  • SparkR (R)

È possibile impostare il linguaggio primario per le nuove celle aggiunte dall'elenco a discesa nella barra dei comandi superiore.

Screenshot di default-synapse-language

Usare più linguaggi

È possibile usare più linguaggi in un notebook specificando il comando magic corretto per il linguaggio all'inizio di una cella. Nella tabella seguente sono elencati i comandi magic per cambiare le lingue delle celle.

Comando magic Linguaggio Descrizione
%%pyspark Python Eseguire una query Python sul contesto Spark.
%%spark Scala Eseguire una query Scala sul contesto Spark.
%%sql SparkSQL Eseguire una query SparkSQL sul contesto Spark.
%%csharp .NET per Spark C# Eseguire una query .NET per Spark C# sul contesto Spark.
%%sparkr R Eseguire una query R sul contesto Spark.

L'immagine seguente è un esempio di come è possibile scrivere una query PySpark usando il comando magic %% PySpark o una query SparkSQL con il comando magic %% SQL in un notebook Spark(Scala) . Si noti che il linguaggio primario per il notebook è impostato su pySpark.

Screenshot dei comandi magic spark di Synapse

Usare tabelle temporanee per fare riferimento ai dati tra linguaggi

Non è possibile fare riferimento a dati o variabili direttamente in linguaggi diversi in un notebook di Synapse. In Spark è possibile fare riferimento a una tabella temporanea tra i vari linguaggi. Di seguito è riportato un esempio di come leggere un DataFrame Scala in PySpark e SparkSQL usando una tabella temporanea di Spark come soluzione alternativa.

  1. Nella cella 1 leggere un dataframe da un connettore di pool SQL usando Scala e creare una tabella temporanea.

    %%spark
    val scalaDataFrame = spark.read.sqlanalytics("mySQLPoolDatabase.dbo.mySQLPoolTable")
    scalaDataFrame.createOrReplaceTempView( "mydataframetable" )
    
  2. Nella cella 2 eseguire una query sui dati usando Spark SQL.

    %%sql
    SELECT * FROM mydataframetable
    
  3. Nella cella 3 usare i dati in PySpark.

    %%pyspark
    myNewPythonDataFrame = spark.sql("SELECT * FROM mydataframetable")
    

IntelliSense di tipo IDE

I notebook synapse sono integrati con l'editor monaco per portare IntelliSense in stile IDE all'editor di celle. L'evidenziazione della sintassi, l'indicatore di errore e i completamenti automatici del codice consentono di scrivere codice e identificare più rapidamente i problemi.

Le funzionalità di IntelliSense hanno livelli di maturità diversi per i diversi linguaggi. Usare la tabella seguente per visualizzare le funzionalità supportate.

Languages Evidenziazione della sintassi Generatore di errori della sintassi Completamento del codice della sintassi Completamento del codice della variabile Completamento del codice della funzione di sistema Completamento del codice della funzione utente Rientro automatico Riduzione del codice
PySpark (Python)
Spark (Scala) -
SparkSQL - - -
.NET per Spark (C#)

Nota

È necessaria una sessione Spark attiva per trarre vantaggio dal completamento del codice variabile, dal completamento del codice della funzione di sistema, dal completamento del codice funzione utente per .NET per Spark (C#).

Frammenti di codice

I notebook synapse forniscono frammenti di codice che semplificano l'immissione di modelli di codice usati comuni, ad esempio la configurazione della sessione Spark, la lettura dei dati come dataframe Spark o il disegno di grafici con matplotlib e così via.

I frammenti di codice vengono visualizzati in Tasti di scelta rapida dello stile IDE IntelliSense misto con altri suggerimenti. Il contenuto dei frammenti di codice è allineato al linguaggio delle celle del codice. È possibile visualizzare i frammenti di codice disponibili digitando Snippet o qualsiasi parola chiave nel titolo del frammento di codice nell'editor di celle del codice. Ad esempio, digitando leggi è possibile visualizzare l'elenco dei frammenti di codice per leggere i dati da varie origini dati.

GIF animata dei frammenti di codice synapse

Formattare la cella di testo con i pulsanti della barra degli strumenti

È possibile usare i pulsanti di formato nella barra degli strumenti delle celle di testo per eseguire azioni di markdown comuni, Include il testo in grassetto, il corsivo, il paragrafo/intestazioni tramite un elenco a discesa, l'inserimento di codice, l'inserimento di un elenco non ordinato, l'inserimento di un elenco ordinato, l'inserimento di collegamenti ipertestuali e l'inserimento di un'immagine dall'URL.

Screenshot della barra degli strumenti della cella di testo synapse


Annullare/Ripetere l'operazione di cella

Selezionare il pulsante Annulla ripeti / o premere Z / MAIUSC+Z per revocare le operazioni di cella più recenti. È ora possibile annullare/ripetere fino alle ultime 10 operazioni cronologiche delle celle.

Screenshot delle celle di annullamento di Synapse di aznb

Operazioni di annullamento supportate delle celle:

  • Inserisci/Elimina cella: è possibile revocare le operazioni di eliminazione selezionando Annulla, il contenuto del testo viene mantenuto insieme alla cella.
  • Riordinare la cella.
  • Attiva/Disattiva parametro.
  • Eseguire la conversione tra cella Code e cella Markdown.

Nota

Le operazioni di testo in cella e le operazioni di commento delle celle di codice non sono annullabili. È ora possibile annullare/ripetere fino alle ultime 10 operazioni cronologiche delle celle.


Commento della cella di codice

  1. Selezionare il pulsante Commenti sulla barra degli strumenti del notebook per aprire il riquadro Commenti .

    Screenshot del pulsante commento di Synapse

  2. Selezionare il codice nella cella di codice, fare clic su Nuovo nel riquadro Commenti , aggiungere commenti e quindi fare clic sul pulsante Pubblica commento per salvare.

    Screenshot del nuovo commento di Synapse

  3. È possibile eseguire Modifica commento, Risolvi thread o Elimina thread facendo clic sul pulsante Altro oltre al commento.

    Screenshot del commento di modifica di Synapse


Spostare una cella

Fare clic sul lato sinistro di una cella e trascinarlo nella posizione desiderata. GIF animata di Synapse spostare le celle


Eliminare una cella

Per eliminare una cella, selezionare il pulsante Elimina a destra della cella.

È anche possibile usare la combinazione di tasti in modalità comando. Premere MAIUSC+D per eliminare la cella corrente.

Screenshot di azure-notebook-delete-a-cell


Comprimere l'input di una cella

Selezionare i comandi Altri puntini di sospensione (...) sulla barra degli strumenti della cella e Nascondi input per comprimere l'input della cella corrente. Per espanderlo, selezionare l'opzione Mostra input mentre la cella è compressa.

GIF animata di azure-notebook-collapse-cell-input


Comprimere l'output di una cella

Selezionare i puntini di sospensione Altri comandi (...) sulla barra degli strumenti della cella e Nascondi output per comprimere l'output della cella corrente. Per espanderlo, selezionare l'output Mostra mentre l'output della cella è nascosto.

GIF animata di azure-notebook-collapse-cell-output


Struttura del notebook

La struttura (sommario) presenta la prima intestazione markdown di qualsiasi cella markdown in una finestra della barra laterale per lo spostamento rapido. La barra laterale Contorni è ridimensionabile e collapsible per adattare lo schermo nei modi migliori possibili. È possibile selezionare il pulsante Struttura sulla barra dei comandi del notebook per aprire o nascondere la barra laterale

Screenshot di azure-notebook-outline


Eseguire i notebook

È possibile eseguire le celle di codice nel notebook singolarmente o tutte insieme. Lo stato e l'avanzamento di ogni cella sono rappresentati nel notebook.

Eseguire una cella

Esistono diversi modi per eseguire il codice in una cella.

  1. Passare con il puntatore del mouse sulla cella che si desidera eseguire e selezionare il pulsante Esegui cella oppure premere CTRL + INVIO.

    Screenshot di run-cell-1

  2. Usare la combinazione di tasti in modalità comando. Premere MAIUSC + INVIO per eseguire la cella corrente e selezionare la cella al di sotto. Premere ALT + INVIO per eseguire la cella corrente e inserire una nuova cella al di sotto.


Eseguire tutte le celle

Selezionare il pulsante Esegui tutte per eseguire tutte le celle del notebook corrente in sequenza.

Screenshot di run-all-cells

Eseguire tutte le celle al di sopra o al di sotto

Espandere l'elenco a discesa dal pulsante Esegui tutto , quindi selezionare Esegui celle sopra per eseguire tutte le celle sopra la sequenza corrente. Selezionare Esegui celle sotto per eseguire tutte le celle sotto quella corrente in sequenza.

Screenshot di azure-notebook-run-cells-above-or-below


Annullare tutte le celle in esecuzione

Selezionare il pulsante Annulla tutto per annullare le celle in esecuzione o le celle in attesa nella coda. Screenshot di azure-notebook-cancel-all-cells


Informazioni di riferimento sul notebook

È possibile usare il %run <notebook path> comando magic per fare riferimento a un altro notebook nel contesto del notebook corrente. Tutte le variabili definite nel notebook di riferimento sono disponibili nel notebook corrente. %run Il comando magic supporta le chiamate annidate, ma non supporta le chiamate ricorsive. Si riceve un'eccezione se la profondità dell'istruzione è maggiore di cinque.

Esempio: %run /<path>/Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }.

I riferimenti ai notebook funzionano sia in modalità interattiva che nella pipeline synapse.

Nota

  • %run attualmente supporta solo il passaggio di un percorso assoluto o un nome del notebook solo come parametro, il percorso relativo non è supportato.
  • %run il comando supporta attualmente solo 4 tipi di valore di parametro: int, float, bool, stringoperazione di sostituzione delle variabili non è supportata.
  • I notebook a cui si fa riferimento devono essere pubblicati. È necessario pubblicare i notebook per farvi riferimento, a meno che non sia abilitato il notebook non pubblicato Riferimento . Synapse Studio non riconosce i notebook non pubblicati dal repository Git.
  • I notebook a cui si fa riferimento non supportano l'istruzione maggiore di cinque.

Esplora variabili

Il notebook Synapse offre una finestra di esplorazione delle variabili predefinita che consente di visualizzare l'elenco del nome delle variabili, del tipo, della lunghezza e del valore nella sessione Spark corrente per le celle PySpark (Python). Altre variabili vengono visualizzate automaticamente man mano che sono definite nelle celle di codice. Facendo clic su ogni intestazione di colonna, le variabili nella tabella sono ordinate.

È possibile selezionare il pulsante Variabili sulla barra dei comandi del notebook per aprire o nascondere esplora variabili.

Screenshot di azure-notebook-variable-explorer

Nota

Esplora variabili supporta solo Python.


Indicatore di stato delle celle

Sotto la cella viene visualizzato il relativo stato di esecuzione dettagliato, che indica lo stato di avanzamento corrente. Al termine dell'esecuzione della cella, viene visualizzato un riepilogo dell'esecuzione con la durata totale e l'ora di fine, informazioni che verranno mantenute per riferimento futuro.

Screenshot dello stato della cella

Indicatore di avanzamento Spark

Il notebook Synapse è basato esclusivamente su Spark. Le celle di codice vengono eseguite nel pool di Apache Spark serverless in remoto. Viene fornito un indicatore di stato del processo Spark con una barra di avanzamento in tempo reale che consente di comprendere lo stato di esecuzione del processo. Il numero di attività per ogni processo o fase consente di identificare il livello parallelo del processo Spark. È anche possibile eseguire un'analisi più approfondita dell'interfaccia utente Spark di uno specifico processo (o fase) selezionando il collegamento al nome del processo (o della fase).

Screenshot dell'indicatore spark-progress-indicator

Configurazione della sessione Spark

È possibile specificare la durata del timeout, il numero e le dimensioni degli executor da assegnare alla sessione Spark corrente in Configura sessione. Riavviare la sessione di Spark per rendere effettive le modifiche alla configurazione. Tutte le variabili del notebook memorizzate nella cache vengono cancellate.

È anche possibile creare una configurazione dalla configurazione di Apache Spark o selezionare una configurazione esistente. Per informazioni dettagliate, vedere Gestione della configurazione di Apache Spark.

Screenshot della gestione delle sessioni

Comando magic di configurazione della sessione Spark

È anche possibile specificare le impostazioni della sessione Spark tramite un comando magic %%configure. La sessione Spark deve essere riavviata per rendere effettive le impostazioni. È consigliabile eseguire %%configure all'inizio del notebook. Di seguito è riportato un esempio, fare riferimento all'elenco https://github.com/cloudera/livy#request-body completo dei parametri validi.

%%configure
{
    //You can get a list of valid parameters to config the session from https://github.com/cloudera/livy#request-body.
    "driverMemory":"28g", // Recommended values: ["28g", "56g", "112g", "224g", "400g", "472g"]
    "driverCores":4, // Recommended values: [4, 8, 16, 32, 64, 80]
    "executorMemory":"28g",
    "executorCores":4, 
    "jars":["abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>/myjar.jar","wasb[s]://<containername>@<accountname>.blob.core.windows.net/<path>/myjar1.jar"],
    "conf":{
    //Example of standard spark property, to find more available properties please visit:https://spark.apache.org/docs/latest/configuration.html#application-properties.
        "spark.driver.maxResultSize":"10g",
    //Example of customized property, you can specify count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
        "livy.rsc.sql.num-rows":"3000" 
    }
}

Nota

  • "DriverMemory" e "ExecutorMemory" sono consigliati per impostare lo stesso valore in %%configure, quindi "driverCores" e "executorCores".
  • È possibile usare %%configure nelle pipeline di Synapse, ma se non è impostata nella prima cella di codice, l'esecuzione della pipeline avrà esito negativo perché non è possibile riavviare la sessione.
  • %%configure usato in mssparkutils.notebook.run verrà ignorato, ma usato in %run notebook continuerà l'esecuzione.
  • Le proprietà di configurazione standard di Spark devono essere usate nel corpo "conf". Non è supportato il riferimento di primo livello per le proprietà di configurazione di Spark.
  • Alcune proprietà spark speciali, tra cui "spark.driver.cores", "spark.executor.cores", "spark.driver.memory", "spark.executor.memory", "spark.executor.instances" non verranno applicate nel corpo "conf".

Configurazione della sessione con parametri dalla pipeline

La configurazione della sessione con parametri consente di sostituire il valore in %%configure magic con parametri di esecuzione della pipeline (attività notebook). Quando si prepara la cella di codice %%configure, è possibile eseguire l'override dei valori predefiniti (configurabili anche, 4 e "2000" nell'esempio seguente) con un oggetto simile al seguente:

{
      "activityParameterName": "paramterNameInPipelineNotebookActivity",
      "defaultValue": "defaultValueIfNoParamterFromPipelineNotebookActivity"
} 
%%configure  

{ 
    "driverCores": 
    { 
        "activityParameterName": "driverCoresFromNotebookActivity", 
        "defaultValue": 4 
    }, 
    "conf": 
    { 
        "livy.rsc.sql.num-rows": 
        { 
            "activityParameterName": "rows", 
            "defaultValue": "2000" 
        } 
    } 
} 

Il notebook usa il valore predefinito se si esegue un notebook in modalità interattiva direttamente o nessun parametro corrispondente a "activityParameterName" viene assegnato dall'attività Pipeline Notebook.

Durante la modalità di esecuzione della pipeline, è possibile configurare le impostazioni dell'attività notebook della pipeline come indicato di seguito: Screenshot della configurazione della sessione con parametri

Se si vuole modificare la configurazione della sessione, il nome dei parametri dell'attività del notebook della pipeline deve essere uguale a activityParameterName nel notebook. Quando si esegue questa pipeline, in questo esempio driverCores in %%configure verrà sostituito da 8 e livy.rsc.sql.num-rows verrà sostituito da 4000.

Nota

Se la pipeline di esecuzione non è riuscita a causa dell'uso di questo nuovo magic %%configure, è possibile controllare altre informazioni sull'errore eseguendo %%configure magic cell nella modalità interattiva del notebook.

Importare i dati in un notebook

È possibile caricare i dati da Archiviazione BLOB di Azure, Azure Data Lake Store Gen 2 e dal pool SQL, come illustrato negli esempi di codice riportati di seguito.

Leggere un CSV da Azure Data Lake Store Gen2 come un DataFrame di Spark

from pyspark.sql import SparkSession
from pyspark.sql.types import *
account_name = "Your account name"
container_name = "Your container name"
relative_path = "Your path"
adls_path = 'abfss://%s@%s.dfs.core.windows.net/%s' % (container_name, account_name, relative_path)

df1 = spark.read.option('header', 'true') \
                .option('delimiter', ',') \
                .csv(adls_path + '/Testfile.csv')

Leggere un CSV da Archiviazione BLOB di Azure come un DataFrame di Spark


from pyspark.sql import SparkSession

# Azure storage access info
blob_account_name = 'Your account name' # replace with your blob name
blob_container_name = 'Your container name' # replace with your container name
blob_relative_path = 'Your path' # replace with your relative folder path
linked_service_name = 'Your linked service name' # replace with your linked service name

blob_sas_token = mssparkutils.credentials.getConnectionStringOrCreds(linked_service_name)

# Allow SPARK to access from Blob remotely

wasb_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)

spark.conf.set('fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name), blob_sas_token)
print('Remote blob path: ' + wasb_path)

df = spark.read.option("header", "true") \
            .option("delimiter","|") \
            .schema(schema) \
            .csv(wasbs_path)

Leggere i dati dall'account di archiviazione primario

È possibile accedere direttamente ai dati nell'account di archiviazione primario. Non è necessario fornire le chiavi private. In Esplora dati fare clic con il pulsante destro del mouse su un file e selezionare Nuovo notebook per visualizzare un nuovo notebook con l'estrazione dati generata automaticamente.

Screenshot della data-to-cell

Widget IPython

I widget sono oggetti Python con evento che hanno una rappresentazione nel browser, spesso come un controllo come un dispositivo di scorrimento, una casella di testo e così via. IPython Widget funzionano solo nell'ambiente Python, non è ancora supportato in altri linguaggi(ad esempio Scala, SQL, C#).

Per usare IPython Widget

  1. È prima necessario importare ipywidgets il modulo per usare il framework di Jupyter Widget.

    import ipywidgets as widgets
    
  2. È possibile usare la funzione di primo livello display per eseguire il rendering di un widget o lasciare un'espressione di tipo widget all'ultima riga di cella di codice.

    slider = widgets.IntSlider()
    display(slider)
    
    slider = widgets.IntSlider()
    slider
    
  3. Eseguire la cella, il widget viene visualizzato nell'area di output.

    Screenshot del dispositivo di scorrimento dei widget ipython

  4. È possibile usare più display() chiamate per eseguire più volte il rendering della stessa istanza del widget, ma rimangono sincronizzate tra loro.

    slider = widgets.IntSlider()
    display(slider)
    display(slider)
    

    Screenshot dei dispositivi di scorrimento dei widget ipython

  5. Per eseguire il rendering di due widget indipendenti l'uno dall'altro, creare due istanze del widget:

    slider1 = widgets.IntSlider()
    slider2 = widgets.IntSlider()
    display(slider1)
    display(slider2)
    

Widget supportati

Tipo di widget Widget
Widget numerici IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText
Widget booleani ToggleButton, Casella di controllo, Valido
Widget di selezione Elenco a discesa, RadioButtons, Select, SelectionSlider, SelectionRangeSlider, ToggleButtons, SelectMultiple
Widget stringa Text, Text area, Combobox, Password, Label, HTML, HTML Math, Image, Button
Widget Play (Animation) Selezione data, Selezione colori, Controller
Widget Contenitore/Layout Box, HBox, VBox, GridBox, Accordion, Tabs, Stacked

Limitazioni note

  1. I widget seguenti non sono ancora supportati, è possibile seguire la soluzione alternativa corrispondente come indicato di seguito:

    Funzionalità Soluzione alternativa
    Output Widget È invece possibile usare print() la funzione per scrivere testo in stdout.
    widgets.jslink() È possibile usare widgets.link() la funzione per collegare due widget simili.
    FileUpload Widget Non è ancora supportato.
  2. La funzione globale display fornita da Synapse non supporta la visualizzazione di più widget in una chiamata (ovvero , display(a, b)), diversa dalla funzione IPython display .

  3. Se si chiude un notebook che contiene il widget IPython, non sarà possibile visualizzare o interagire con esso finché non si esegue di nuovo la cella corrispondente.


Salvare i notebook

È possibile salvare un singolo notebook o tutti i notebook nell'area di lavoro.

  1. Per salvare le modifiche apportate a un singolo notebook, selezionare il pulsante Pubblica sulla barra dei comandi del notebook.

    Screenshot del notebook di pubblicazione

  2. Per salvare tutti i notebook nell'area di lavoro, selezionare il pulsante Pubblica tutti i sulla barra dei comandi dell'area di lavoro.

    Screenshot di publish-all

Nelle proprietà del notebook è possibile specificare se includere l'output della cella durante il salvataggio.

Screenshot delle proprietà del notebook

Comandi magic

È possibile usare comandi magic di Jupyter familiari nei notebook di Synapse. Esaminare l'elenco seguente come comandi magic disponibili correnti. Indicare i casi d'uso in GitHub in modo che sia possibile continuare a creare comandi magici per soddisfare le proprie esigenze.

Nota

Nella pipeline di Synapse sono supportati solo i comandi magic seguenti: %%pyspark, %%spark, %%csharp, %%sql.

Magia della linea disponibile: %lsmagic, %time, %timeit, %history, %run, %load

Magic delle celle disponibili: %%time, %%timeit, %%capture, %%writefile, %%sql, %%pyspark, %%spark, %%csharp, %%html, %%configure


Notebook non pubblicati di riferimento

Il notebook non pubblicato di riferimento è utile quando si vuole eseguire il debug "localmente", quando si abilita questa funzionalità, il notebook esegue il recupero del contenuto corrente nella cache Web, se si esegue una cella che include un'istruzione notebook di riferimento, si fa riferimento ai notebook di presentazione nel browser notebook corrente anziché a una versione salvata nel cluster, ovvero le modifiche nell'editor del notebook possono essere a cui si fa riferimento immediatamente da altri notebook senza dover essere pubblicati (modalità live) o commit( Modalità Git), sfruttando questo approccio è possibile evitare facilmente librerie comuni inquinanti durante lo sviluppo o il processo di debug.

È possibile abilitare il notebook non pubblicato di Riferimento dal pannello Proprietà:

Screenshot del riferimento al notebook

Per il confronto tra casi diversi, controllare la tabella seguente:

Si noti che %run e mssparkutils.notebook.run ha lo stesso comportamento qui. Qui viene usato %run come esempio.

Caso Disabilitazione Abilitare
Modalità live
- Nb1 (pubblicato)
%run Nb1
Eseguire la versione pubblicata di Nb1 Eseguire la versione pubblicata di Nb1
- Nb1 (Nuovo)
%run Nb1
Errore Eseguire il nuovo Nb1
- Nb1 (pubblicato in precedenza, modificato)
%run Nb1
Eseguire la versione pubblicata di Nb1 Eseguire la versione modificata di Nb1
Modalità Git
- Nb1 (pubblicato)
%run Nb1
Eseguire la versione pubblicata di Nb1 Eseguire la versione pubblicata di Nb1
- Nb1 (Nuovo)
%run Nb1
Errore Eseguire il nuovo Nb1
- Nb1 (Non pubblicato, commit)
%run Nb1
Errore Eseguire il commit Nb1
- Nb1 (pubblicato in precedenza, commit)
%run Nb1
Eseguire la versione pubblicata di Nb1 Eseguire la versione commit di Nb1
- Nb1 (pubblicato in precedenza, nuovo nel ramo corrente)
%run Nb1
Eseguire la versione pubblicata di Nb1 Eseguire il nuovo Nb1
- Nb1 (non pubblicato, precedentemente eseguito il commit, modificato)
%run Nb1
Errore Eseguire la versione modificata di Nb1
- Nb1 (pubblicato in precedenza e eseguito il commit, modificato)
%run Nb1
Eseguire la versione pubblicata di Nb1 Eseguire la versione modificata di Nb1

Conclusione

  • Se disabilitato, eseguire sempre la versione pubblicata .
  • Se abilitata, la priorità è: modifica/nuovo > commit > pubblicato.

Gestione sessione attiva

È possibile riutilizzare le sessioni del notebook in modo pratico senza dover avviare nuove sessioni. Synapse notebook supporta ora la gestione delle sessioni attive nell'elenco Gestisci sessioni, è possibile visualizzare tutte le sessioni nell'area di lavoro corrente avviata dal notebook.

Screenshot delle sessioni di gestione del notebook

Nell'elenco Sessioni attive è possibile visualizzare le informazioni sulla sessione e il notebook corrispondente attualmente collegato alla sessione. È possibile usare Scollegamento con notebook, Arrestare la sessione e Visualizzare nel monitoraggio da qui. Inoltre, è possibile connettere facilmente il notebook selezionato a una sessione attiva nell'elenco avviato da un altro notebook, la sessione viene scollegata dal notebook precedente (se non è inattiva) quindi collegarla a quella corrente.

Screenshot di notebook-sessions-list

Registrazione di Python in Notebook

È possibile trovare i log Python e impostare livelli di log diversi e formattare il codice di esempio seguente:

import logging

# Customize the logging format for all loggers
FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
formatter = logging.Formatter(fmt=FORMAT)
for handler in logging.getLogger().handlers:
    handler.setFormatter(formatter)

# Customize log level for all loggers
logging.getLogger().setLevel(logging.INFO)

# Customize the log level for a specific logger
customizedLogger = logging.getLogger('customized')
customizedLogger.setLevel(logging.WARNING)

# logger that use the default global log level
defaultLogger = logging.getLogger('default')
defaultLogger.debug("default debug message")
defaultLogger.info("default info message")
defaultLogger.warning("default warning message")
defaultLogger.error("default error message")
defaultLogger.critical("default critical message")

# logger that use the customized log level
customizedLogger.debug("customized debug message")
customizedLogger.info("customized info message")
customizedLogger.warning("customized warning message")
customizedLogger.error("customized error message")
customizedLogger.critical("customized critical message")

Integrare un notebook

Aggiungere un notebook a una pipeline

Selezionare il pulsante Aggiungi alla pipeline nell'angolo superiore destro per aggiungere un notebook a una pipeline esistente o creare una nuova pipeline.

Screenshot di Aggiungi notebook alla pipeline

Designare una cella dei parametri

Per parametrizzare il notebook, selezionare i puntini di sospensione (...) per accedere ai comandi più sulla barra degli strumenti della cella. Selezionare quindi Disattiva cella del parametro per designare la cella come cella dei parametri.

Screenshot del parametro azure-notebook-toggle-parameter


Azure Data Factory cerca la cella dei parametri e considera questa cella come impostazione predefinita per i parametri passati in fase di esecuzione. Il motore di esecuzione aggiunge una nuova cella sotto la cella dei parametri con parametri con parametri di input per sovrascrivere i valori predefiniti.

Assegnare i valori dei parametri da una pipeline

Dopo aver creato un notebook con parametri, è possibile eseguirlo da una pipeline con l'attività Synapse Notebook. Dopo aver aggiunto l'attività all'area di disegno della pipeline, sarà possibile impostare i valori dei parametri nella sezione Parametri di base nella scheda Impostazioni .

Screenshot di Assegna un parametro

Quando si assegnano i valori dei parametri, è possibile usare il linguaggio delle espressioni della pipeline o le variabili di sistema.

Combinazioni di tasti

Analogamente a Jupyter Notebooks, i notebook synapse hanno un'interfaccia utente modale. La tastiera esegue diverse operazioni a seconda della modalità in cui si trova la cella del notebook. I notebook synapse supportano le due modalità seguenti per una determinata cella di codice: modalità di comando e modalità di modifica.

  1. Una cella è in modalità di comando quando non è presente un cursore di testo che richiede di digitare. Quando una cella è in modalità di comando, è possibile modificare il notebook nel suo complesso, ma non digitare in singole celle. Immettere la modalità di comando premendo ESC o usando il mouse per selezionare all'esterno dell'area dell'editor di una cella.

    Screenshot della modalità comando

  2. La modalità di modifica è indicata da un cursore di testo che richiede di digitare nell'area dell'editor. Quando una cella è in modalità di modifica, è possibile digitare nella cella. Immettere la modalità di modifica premendo Enter o usando il mouse per selezionare nell'area dell'editor di una cella.

    Screenshot della modalità di modifica

Combinazione di tasti in modalità comando

Azione Collegamenti al notebook Synapse
Eseguire la cella corrente e selezionare in basso MAIUSC+INVIO
Eseguire la cella corrente e inserire in basso ALT+INVIO
Eseguire la cella corrente CTRL+INVIO
Selezionare la cella in alto Su
Selezionare la cella in basso Giù
Selezionare la cella precedente K
Selezionare la cella successiva J
Inserire la cella in alto Una
Inserire la cella in basso b
Eliminare le celle selezionate MAIUSC+D
Passare alla modalità di modifica Immettere

Tasti di scelta rapida in modalità di modifica

Usando i tasti di scelta rapida seguenti, è possibile spostarsi più facilmente ed eseguire codice nei notebook di Synapse quando in modalità modifica.

Azione Collegamenti al notebook synapse
Spostare il cursore in alto Su
Spostare in cursore in basso Giù
Annullamento CTRL + Z
Ripristinare CTRL + Y
Inserimento/Rimozione di commenti CTRL + /
Eliminare la parola prima CTRL + BACKSPACE
Eliminare la parola dopo CTRL + CANC
Andare all'inizio della cella CTRL + Home
Andare alla fine della cella CTRL + Fine
Andare a sinistra di una parola CTRL + freccia sinistra
Andare a destra di una parola CTRL + freccia destra
Selezionare tutto CTRL + A
Impostare un rientro CTRL +]
Annullare l'impostazione di un rientro CTRL + [
Passare alla modalità comandi ESC

Passaggi successivi