Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Použitie notebookutils.notebook na programovú správu zápisových položiek v Microsoft Fabric. Môžete vytvárať, načítavať, aktualizovať, mazať a zoznamovať artefakty zápisníkov, aby ste automatizovali nasadenie, správu životného cyklu a CI/CD pracovné postupy.
Poznámka
Tieto API sú podporované iba v Fabric notebookoch, nie v Azure Synapse. Musíte mať príslušné oprávnenia v cieľovom pracovnom priestore pre každú operáciu.
Nasledujúca tabuľka uvádza dostupné metódy správy zápisníka:
| Method | Podpis | Description |
|---|---|---|
create |
create(name, description, content, defaultLakehouse, defaultLakehouseWorkspace, workspaceId): Artifact |
Vytvorí nový zápisník. |
get |
get(name, workspaceId): Artifact |
Získa zápisník podľa mena alebo dokladu totožnosti. |
getDefinition |
getDefinition(name, workspaceId, format): String |
Získa definíciu (obsah) zápisníka. |
update |
update(name, newName, description, workspaceId): Artifact |
Aktualizuje metadáta zápisníka. |
updateDefinition |
updateDefinition(name, content, defaultLakehouse, defaultLakehouseWorkspace, workspaceId, environmentId, environmentWorkspaceId): bool |
Aktualizuje definíciu zápisníka a lakehouse. |
delete |
delete(name, workspaceId): Boolean |
Odstráni poznámkový blok. |
list |
list(workspaceId, maxResults): Array[Artifact] |
Zobrazuje všetky zápisníky v pracovnom priestore. |
Vytvorenie poznámkového bloku
Použite notebookutils.notebook.create() na vytvorenie nového artefaktu zápisníka v aktuálnom pracovnom priestore alebo v určenom pracovnom priestore.
Poznámka
Príklady pracovných postupov v tomto článku, ktoré čítajú alebo zapisujú .ipynb súbory, používajú Python pre vstup/výstup súborov. Základné notebookutils.notebook API sú dostupné v Pythone, PySparku, Scale a R, pokiaľ nie je uvedené inak.
Parametre
| Parameter | Typ | Požaduje sa | Description |
|---|---|---|---|
name |
Povrázok | Áno | Zobrazovacie meno pre nový zápisník. Musí byť jedinečný v rámci pracovného priestoru. |
description |
Povrázok | Nie | Popis zápisníka. Predvolene je prázdny. |
content |
Reťazec, bajty alebo dict | Áno | Obsah zápisníka v platnom .ipynb formáte JSON. Môžu to byť aj surové bajty alebo objekt dict.
Nemôže byť prázdny. |
defaultLakehouse |
Povrázok | Nie | Názov alebo ID predvoleného jazerného domu na pripojenie. |
defaultLakehouseWorkspace |
Povrázok | Nie | Workspace ID predvoleného jazerného domu. Nechajte prázdne miesto pre aktuálny pracovný priestor. |
workspaceId |
Povrázok | Nie | ID cieľového pracovného priestoru. Nechajte prázdne miesto pre aktuálny pracovný priestor. |
Dôležité
Parameter content nemôže byť prázdny. Pri tvorbe zápisníka musíte poskytnúť obsah v platnom .ipynb formáte. Minimálne poskytnite platnú štruktúru prázdneho zápisníka:
{
"cells": [],
"metadata": {},
"nbformat": 4,
"nbformat_minor": 5
}
Vytvorte si zápisník z šablóny
# Read notebook template from a file
with open("/path/to/template.ipynb", "r") as f:
notebook_content = f.read()
# Create the notebook
notebook = notebookutils.notebook.create(
name="ProcessingNotebook",
description="Data processing notebook from template",
content=notebook_content
)
print(f"Created notebook: {notebook.displayName} (ID: {notebook.id})")
Vytvorte si zápisník s predvoleným jazerným domom
# Minimum valid notebook content - content cannot be empty
minimal_content = '''{
"cells": [],
"metadata": {},
"nbformat": 4,
"nbformat_minor": 5
}'''
# Create notebook with default lakehouse configuration
notebook = notebookutils.notebook.create(
name="DataAnalysis",
description="Analysis notebook with lakehouse access",
content=minimal_content,
defaultLakehouse="MyLakehouse",
defaultLakehouseWorkspace="" # Current workspace
)
print(f"Created notebook with lakehouse: {notebook.displayName}")
Vrátená hodnota
Metóda create()Artifact vracia objekt s nasledujúcimi vlastnosťami:
-
displayName: Zobrazovaný názov zápisníka. -
id: Jedinečný identifikátor vytvoreného zápisníka. -
description: Popis zápisníka.
Vytvorte si zápisník v inom pracovnom priestore
with open("/path/to/notebook.ipynb", "r") as f:
content = f.read()
notebook = notebookutils.notebook.create(
name="SharedNotebook",
description="Notebook for the shared workspace",
content=content,
workspaceId="bbbbbbbb-2222-3333-4444-cccccccccccc"
)
print(f"Created in remote workspace: {notebook.displayName}")
Vytvorte viacero zápisníkov z šablóny
# Load template content (must be valid .ipynb)
with open("/path/to/template.ipynb", "r") as f:
template_content = f.read()
regions = ["US", "EU", "Asia"]
created_notebooks = []
for region in regions:
notebook = notebookutils.notebook.create(
name=f"Process_{region}",
description=f"Processing notebook for {region} region",
content=template_content,
defaultLakehouse=f"Lakehouse_{region}"
)
created_notebooks.append(notebook)
print(f"Created: {notebook.displayName}")
print(f"\nCreated {len(created_notebooks)} notebooks")
Prepitné
Poskytujte zmysluplné názvy a popisy pre svoje zápisníky, aby boli ľahšie dostupné. Používajte konzistentnú konvenciu pomenovania, napríklad <Project>_<Purpose>_<Region> pri automatizovaných nasadeniach.
Kúp si zápisník
Použitie notebookutils.notebook.get() na získanie metadát zápisníka podľa mena alebo ID. Vracia Artifact objekt s vlastnosťami displayNameako , id, a description.
Parametre
| Parameter | Typ | Požaduje sa | Description |
|---|---|---|---|
name |
Povrázok | Áno | Názov alebo ID zápisníka na vyzdvihnutie. |
workspaceId |
Povrázok | Nie | ID pracovného priestoru. Nechajte prázdne miesto pre aktuálny pracovný priestor. |
Zoberte si zápisník z aktuálneho pracoviska
notebook = notebookutils.notebook.get("MyNotebook")
print(f"Notebook Name: {notebook.displayName}")
print(f"Notebook ID: {notebook.id}")
print(f"Description: {notebook.description}")
Zoberte si zápisník z iného pracoviska
workspace_id = "bbbbbbbb-2222-3333-4444-cccccccccccc"
notebook = notebookutils.notebook.get("SharedNotebook", workspaceId=workspace_id)
print(f"Retrieved: {notebook.displayName} from workspace {workspace_id}")
Vrátená hodnota
Metóda get()Artifact vracia objekt s nasledujúcimi vlastnosťami:
-
displayName: Zobrazovaný názov zápisníka. -
id: Jedinečný identifikátor. -
description: Popis zápisníka.
Prepitné
Použite get() operácie pred aktualizáciou alebo vymazaním na overenie, či cieľový zápisník existuje. Môžete ho tiež použiť na overenie, či je názov zápisníka už používaný predtým, než vytvoríte nový.
Získajte definíciu zápisníka
Použite notebookutils.notebook.getDefinition() na získanie celého obsahu zápisníka vo .ipynb formáte. Používajte ho na zálohovanie, migráciu, správu verzií alebo analýzu obsahu.
Parametre
| Parameter | Typ | Požaduje sa | Description |
|---|---|---|---|
name |
Povrázok | Áno | Názov alebo ID zápisníka. |
workspaceId |
Povrázok | Nie | ID pracovného priestoru. Nechajte prázdne miesto pre aktuálny pracovný priestor. |
format |
Povrázok | Nie | Formát výstupu. Predvolene je nastavená na "ipynb"hodnotu . |
Vyhľadajte a uložte definíciu zápisníka
# Retrieve notebook definition as .ipynb content
notebook_content = notebookutils.notebook.getDefinition("MyNotebook")
# Save to a file for backup
with open("/path/to/backup/MyNotebook.ipynb", "w") as f:
f.write(notebook_content)
print("Notebook definition retrieved and saved")
Získajte definíciu zápisníka z iného pracovného priestoru
workspace_id = "cccccccc-3333-4444-5555-dddddddddddd"
notebook_content = notebookutils.notebook.getDefinition(
name="SharedNotebook",
workspaceId=workspace_id,
format="ipynb"
)
print(f"Retrieved definition from workspace {workspace_id}")
Vrátená hodnota
Metóda getDefinition() vráti reťazec obsahujúci obsah zápisníka vo .ipynb formáte JSON.
Exportujte všetky notebooky na zálohovanie
import os
from datetime import datetime
def export_all_notebooks(backup_dir="/path/to/backups"):
"""Export all notebooks in the workspace for backup."""
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
export_dir = f"{backup_dir}/backup_{timestamp}"
os.makedirs(export_dir, exist_ok=True)
notebooks = notebookutils.notebook.list()
print(f"Exporting {len(notebooks)} notebooks to {export_dir}")
exported_count = 0
for nb in notebooks:
try:
content = notebookutils.notebook.getDefinition(nb.displayName)
filename = f"{export_dir}/{nb.displayName}.ipynb"
with open(filename, "w") as f:
f.write(content)
exported_count += 1
print(f"Exported: {nb.displayName}")
except Exception as e:
print(f"Failed to export {nb.displayName}: {e}")
print(f"\nExported {exported_count} of {len(notebooks)} notebooks")
return export_dir
backup_location = export_all_notebooks()
Aktualizujte si zápisník
Použiť na notebookutils.notebook.update() zmenu metadát zápisníka, ako je jeho zobrazovaný názov a popis. Neupravuje obsah notebooku ani konfiguráciu lakehouse.
Parametre
| Parameter | Typ | Požaduje sa | Description |
|---|---|---|---|
name |
Povrázok | Áno | Aktuálny názov alebo ID zápisníka. |
newName |
Povrázok | Áno | Nový zobrazovací názov zápisníka. |
description |
Povrázok | Nie | Aktualizovaný popis. |
workspaceId |
Povrázok | Nie | ID pracovného priestoru. Nechajte prázdne miesto pre aktuálny pracovný priestor. |
Premenujte zápisník
updated_notebook = notebookutils.notebook.update(
name="OldNotebookName",
newName="NewNotebookName",
description="Updated description with more details"
)
print(f"Updated notebook: {updated_notebook.displayName}")
Vrátená hodnota
Metóda update() vráti Artifact objekt s aktualizovanými vlastnosťami.
Aktualizujte definíciu zápisníka
Použite notebookutils.notebook.updateDefinition() na úpravu obsahu zápisníka, predvoleného jazerného domu alebo oboch. Používajte ho, keď potrebujete zmeniť definíciu zápisníka, nie jeho metadáta.
Parametre
| Parameter | Typ | Požaduje sa | Description |
|---|---|---|---|
name |
Povrázok | Áno | Názov alebo ID zápisníka na aktualizáciu. |
content |
Povrázok | Nie | Nový obsah zápisníka vo formáte .ipynb . |
defaultLakehouse |
Povrázok | Nie | Nový predvolený názov jazerného domu. |
defaultLakehouseWorkspace |
Povrázok | Nie | ID pracovného priestoru nového predvoleného jazerného domu. Nechajte prázdne miesto pre aktuálny pracovný priestor. |
workspaceId |
Povrázok | Nie | ID pracovného priestoru. Nechajte prázdne miesto pre aktuálny pracovný priestor. |
environmentId |
Povrázok | Nie | Environment ID na pripojenie k zápisníku. |
environmentWorkspaceId |
Povrázok | Nie | ID pracovného priestoru prostredia. Nechajte prázdne miesto pre aktuálny pracovný priestor. |
Poznámka
Parametre environmentId a environmentWorkspaceId sú dostupné iba v runtime Spark notebooku. Python notebooky tieto parametre nepodporujú.
Aktualizujte obsah zápisníka
# Load new content
with open("/path/to/updated_notebook.ipynb", "r") as f:
new_content = f.read()
is_updated = notebookutils.notebook.updateDefinition(
name="MyNotebook",
content=new_content
)
print(f"Notebook definition updated: {is_updated}")
Zmeň predvolený jazerný dom
is_updated = notebookutils.notebook.updateDefinition(
name="MyNotebook",
defaultLakehouse="NewLakehouse",
defaultLakehouseWorkspace="" # Current workspace
)
print(f"Default lakehouse updated: {is_updated}")
Aktualizujte obsah aj lakehouse
with open("/path/to/new_version.ipynb", "r") as f:
new_content = f.read()
is_updated = notebookutils.notebook.updateDefinition(
name="MyNotebook",
content=new_content,
defaultLakehouse="ProductionLakehouse",
defaultLakehouseWorkspace=""
)
print(f"Notebook fully updated: {is_updated}")
Vrátená hodnota
Metóda updateDefinition() sa vráti, True ak je aktualizácia úspešná alebo False ak zlyhá.
Prepitné
Použitie update() na zmeny metadát (názov, popis) a updateDefinition() na zmeny obsahu a jazerných domov. Keď potrebujete úplné obnovenie metadát aj obsahu, volajte obe metódy postupne.
Odstránenie poznámkového bloku
Použitie notebookutils.notebook.delete() na trvalé odstránenie zápisníka z pracovného priestoru. Vráti, True ak vymazanie uspeje; inak vráti .False
Parametre
| Parameter | Typ | Požaduje sa | Description |
|---|---|---|---|
name |
Povrázok | Áno | Názov alebo ID zápisníka na vymazanie. |
workspaceId |
Povrázok | Nie | ID pracovného priestoru. Nechajte prázdne miesto pre aktuálny pracovný priestor. |
Dôležité
Vymazanie je trvalé. Vymazané zápisníky sa nedajú obnoviť. Vždy si overte názov zápisníka pred vymazaním a zvážte zálohovanie definície zápisníka na prvé getDefinition() .
Vrátená hodnota
Metóda delete() sa vráti, True ak vymazanie uspeje alebo False ak zlyhá.
Odstránenie poznámkového bloku
is_deleted = notebookutils.notebook.delete("ObsoleteNotebook")
if is_deleted:
print("Notebook deleted successfully")
else:
print("Failed to delete notebook")
Bezpečne upratujte zošity podľa vzoru
def cleanup_notebooks(name_pattern, dry_run=True):
"""Delete notebooks matching a name pattern."""
notebooks = notebookutils.notebook.list()
to_delete = [nb for nb in notebooks if name_pattern in nb.displayName]
print(f"Found {len(to_delete)} notebooks matching '{name_pattern}':")
for nb in to_delete:
print(f" - {nb.displayName}")
if dry_run:
print("\nDRY RUN - No notebooks deleted")
return
deleted_count = 0
for nb in to_delete:
if notebookutils.notebook.delete(nb.displayName):
deleted_count += 1
print(f"Deleted: {nb.displayName}")
else:
print(f"Failed to delete: {nb.displayName}")
print(f"\nDeleted {deleted_count} of {len(to_delete)} notebooks")
# Always run with dry_run=True first to preview
cleanup_notebooks("temp_", dry_run=True)
Prepitné
Pre bezpečné hromadné mazanie vždy používajte prvú možnosť dry_run=True náhľadu, ktoré zápisníky budú odstránené. Zvážte premenovanie zápisníkov na _TO_DELETE prefix namiesto ich okamžitého vymazania, aby ste ich mohli v prípade potreby obnoviť.
Zoznamové zápisníky
Používajte notebookutils.notebook.list() na enumeráciu zápisníkov v pracovnom priestore. Vráti pole Artifact objektov.
Parametre
| Parameter | Typ | Požaduje sa | Description |
|---|---|---|---|
workspaceId |
Povrázok | Nie | ID pracovného priestoru. Nechajte prázdne miesto pre aktuálny pracovný priestor. |
maxResults |
Int | Nie | Maximálny počet výsledkov na vrátenie. Predvolene je nastavená na 1000. |
Zoznam všetkých zápisníkov v aktuálnom pracovnom priestore
notebooks = notebookutils.notebook.list()
print(f"Found {len(notebooks)} notebooks:")
for nb in notebooks:
print(f" - {nb.displayName} (ID: {nb.id})")
Zaradiť zápisníky do iného pracovného priestoru
workspace_id = "cccccccc-3333-4444-5555-dddddddddddd"
notebooks = notebookutils.notebook.list(workspaceId=workspace_id)
print(f"Found {len(notebooks)} notebooks in workspace {workspace_id}")
Vrátená hodnota
Metóda list() vráti pole Artifact objektov. Každý objekt obsahuje displayName, id, a description vlastnosti.
Filtrovať zápisníky podľa vzoru názvov
all_notebooks = notebookutils.notebook.list()
# Filter for notebooks that start with a specific prefix
processing_notebooks = [nb for nb in all_notebooks if nb.displayName.startswith("Process_")]
print(f"Found {len(processing_notebooks)} processing notebooks:")
for nb in processing_notebooks:
print(f" - {nb.displayName}")
Klonujte zápisník
Použite list() a getDefinition() spolu na klonovanie zápisníka v rámci rovnakého pracovného priestoru alebo do iného pracovného priestoru.
def clone_notebook(source_name, target_name, target_workspace=""):
"""Clone a notebook by retrieving its content and creating a copy."""
source = notebookutils.notebook.get(source_name)
content = notebookutils.notebook.getDefinition(source_name)
cloned = notebookutils.notebook.create(
name=target_name,
description=f"Clone of {source_name}",
content=content,
workspaceId=target_workspace
)
print(f"Cloned {source_name} to {cloned.displayName}")
return cloned
cloned_notebook = clone_notebook("TemplateNotebook", "NewInstance")
Migrujte zápisník do iného pracovného priestoru
def migrate_notebook(name, target_workspace_id, new_name=None):
"""Migrate a notebook from the current workspace to another workspace."""
content = notebookutils.notebook.getDefinition(name)
target_name = new_name if new_name else name
migrated = notebookutils.notebook.create(
name=target_name,
description=f"Migrated from {name}",
content=content,
workspaceId=target_workspace_id
)
print(f"Migrated {name} to workspace {target_workspace_id} as {target_name}")
return migrated
target_ws = "dddddddd-4444-5555-6666-eeeeeeeeeeee"
migrated_nb = migrate_notebook("DataPipeline", target_ws, "DataPipeline_v2")