Condividi tramite


Utilità della libreria di variabili NotebookUtils per Fabric

Le librerie delle variabili consentono di evitare l'uso di valori hardcoded nel codice del notebook. Anziché modificare il codice, aggiornare i valori nella libreria e recuperarli in fase di esecuzione. Questo modello consente di riutilizzare i notebook tra team e progetti centralizzando la configurazione.

Nella tabella seguente sono elencati i metodi disponibili per la libreria di variabili:

metodo Firma Descrizione
getLibrary getLibrary(variableLibraryName: String): VariableLibrary Recupera un oggetto di libreria di variabili. Accedere alle variabili come proprietà nell'oggetto restituito, ad esempio library.variableName. È possibile usare getVariable('name') o la sintassi library['name'] tra parentesi quadre per l'accesso dinamico.
get get(variableReference: String): Any Recupera un singolo valore di variabile in base al relativo percorso di riferimento nel formato $(/**/libraryName/variableName). Il /**/ prefisso è obbligatorio. Il valore viene tipizzato automaticamente in base alla definizione della variabile.

Definire le variabili

Definire le variabili nella libreria di variabili prima di usare notebookutils.variableLibrary. È possibile creare e gestire librerie di variabili tramite l'interfaccia utente di Fabric.

Screenshot dell'elenco di variabili nella libreria di variabili.

Recuperare la libreria di variabili

Usare getLibrary() per recuperare l'intera libreria come oggetto e quindi accedere alle variabili come proprietà. Usare getVariable('name') o la sintassi library['name'] tra parentesi quadre quando è necessario l'accesso dinamico.

samplevl = notebookutils.variableLibrary.getLibrary("sampleVL")

# Property access
samplevl.test_int
samplevl.test_str

# Method access (useful for dynamic variable names)
samplevl.getVariable("test_int")

# Bracket access
samplevl["test_int"]

Nell'esempio seguente viene illustrato come costruire in modo dinamico un percorso di file usando i valori della libreria di variabili:

samplevl = notebookutils.variableLibrary.getLibrary("sampleVL")

file_path = f"abfss://{samplevl.Workspace_name}@onelake.dfs.fabric.microsoft.com/{samplevl.Lakehouse_name}.Lakehouse/Files/<FileName>.csv"
df = spark.read.format("csv").option("header","true").load(file_path)

display(df)

Accedere a una singola variabile in base al riferimento

Usare il get() metodo con il modello $(/**/libraryName/variableName) di riferimento per recuperare un singolo valore di variabile. Il valore viene tipizzato automaticamente in base alla definizione della variabile.

Importante

Il /**/ prefisso è obbligatorio nel modello di riferimento. Il modello completo deve essere $(/**/libraryName/variableName), dove libraryName è il nome esatto dell'elemento della libreria di variabili ed variableName è la variabile definita in tale libreria. I nomi sono sensibili alla distinzione tra maiuscole e minuscole.

notebookutils.variableLibrary.get("$(/**/samplevl/test_int)")
notebookutils.variableLibrary.get("$(/**/samplevl/test_str)")
notebookutils.variableLibrary.get("$(/**/samplevl/test_bool)")

Tipi di variabili supportati

Le librerie di variabili supportano i tipi di dati seguenti. I valori vengono digitati automaticamente quando vengono recuperati. Non è necessario eseguirne il cast in modo esplicito nella maggior parte dei casi.

Tipo Descrizione Esempio
Stringa Valori di testo. "my_connection_string"
Integer Numeri interi. 42
Booleano Valore booleano vero/falso. true
Numero Numeri decimali. 3.14
DateTime Valori di data e ora in formato ISO 8601. "2025-01-15T08:30:00Z"
Guid Identificatori univoci globali. "123e4567-e89b-12d3-a456-426614174000"
Riferimento all'elemento Riferimenti agli elementi di Fabric supportati. "workspace/item"

Configurazione specifica dell'ambiente

Le librerie di variabili supportano i set di valori, che consentono di definire set alternativi di valori per le stesse variabili, ad esempio sviluppo, test e produzione. Ogni area di lavoro ha un valore attivo impostato alla volta e le pipeline di distribuzione possono attivare automaticamente il valore appropriato impostato per fase.

Questo modello elimina la necessità di modifiche al codice quando si alzano di livello i notebook in ambienti diversi:

# These values change based on the active value set (dev/test/prod)
app_config = notebookutils.variableLibrary.getLibrary("app_config")

api_endpoint = app_config.api_endpoint
batch_size = app_config.batch_size
debug_mode = app_config.debug_enabled

print(f"API Endpoint: {api_endpoint}")
print(f"Batch Size: {batch_size}")
print(f"Debug Mode: {debug_mode}")

if debug_mode:
    print("Running in debug mode")

Considerazioni

Tenere presenti queste considerazioni:

  • L'API notebookutils.variableLibrary supporta solo l'accesso alle librerie di variabili all'interno della stessa area di lavoro. L'accesso tra aree di lavoro non è supportato.
  • Non è possibile recuperare librerie di variabili tra aree di lavoro nei notebook secondari durante un'esecuzione di riferimento.
  • Il codice del notebook fa riferimento alle variabili definite nel set di valori attivi della libreria di variabili. Per usare valori diversi, attivare un valore diverso impostato nell'area di lavoro o usare le pipeline di distribuzione per gestire i set di valori per ogni ambiente.
  • Il principale del servizio (SPN) non è attualmente supportato per le utilità della libreria di variabili.
  • Le librerie di variabili sono di sola lettura dai notebook. Apportare modifiche tramite l'interfaccia utente o le API di Fabric.
  • Ogni libreria supporta fino a 1.000 variabili e 1.000 set di valori, con un massimo di 10.000 celle e un limite di dimensioni di 1 MB.
  • I nomi delle variabili e delle librerie fanno distinzione tra maiuscole e minuscole. Usa la corrispondenza esatta dei nomi quando fai riferimento alle variabili.

Suggerimento

Usare le pipeline di distribuzione per attivare automaticamente il valore impostato per ogni fase (sviluppo, test, produzione). In questo modo si elimina la necessità di cambiare manualmente i set di valori o modificare il codice durante la promozione di notebook in ambienti diversi.