Jaa


Hallinnoi muistikirjan artefakteja NotebookUtilsilla

Käytä notebookutils.notebook muistikirjojen ohjelmien hallintaan Microsoft Fabricissa. Voit luoda, hakea, päivittää, poistaa ja listata muistikirjan artefakteja automatisoidaksesi käyttöönoton, elinkaaren hallinnan ja CI/CD-työnkulkujen.

Muistio

Nämä API:t ovat tuettuja vain Fabric-muistikirjoissa, eivät Azure Synapsessa. Sinulla täytyy olla asianmukaiset käyttöoikeudet kohdetyötilassa jokaiselle operaatiolle.

Seuraava taulukko listaa saatavilla olevat muistikirjan hallintamenetelmät:

Menetelmä Allekirjoitus Description
create create(name, description, content, defaultLakehouse, defaultLakehouseWorkspace, workspaceId): Artifact Luo uuden muistikirjan.
get get(name, workspaceId): Artifact Hakee muistikirjan nimen tai tunnisteen perusteella.
getDefinition getDefinition(name, workspaceId, format): String Hae muistikirjan määritelmän (sisällön).
update update(name, newName, description, workspaceId): Artifact Päivitetään muistikirjan metatietoja.
updateDefinition updateDefinition(name, content, defaultLakehouse, defaultLakehouseWorkspace, workspaceId, environmentId, environmentWorkspaceId): bool Päivitti muistikirjan määritelmän ja järvenrakennuksen.
delete delete(name, workspaceId): Boolean Poistaa muistikirjan.
list list(workspaceId, maxResults): Array[Artifact] Listaa kaikki muistikirjat työtilassa.

Muistikirjan luominen

Käytä notebookutils.notebook.create() uuden muistikirjan artefaktin luomiseen nykyisessä työtilassa tai määritellyssä työtilassa.

Muistio

Tämän artikkelin työnkulkuesimerkit, joissa lukevat tai .ipynb kirjoitetaan tiedostoja, käytetään Pythonia tiedostojen I/O:hun. Ydinrajapinnat notebookutils.notebook ovat saatavilla Pythonissa, PySparkissa, Scalassa ja R:ssä, ellei toisin mainita.

Parametrit

Parametri Tyyppi Pakollinen Description
name merkkijono Kyllä Uuden muistikirjan näyttönimi. Sen täytyy olla ainutlaatuinen työtilassa.
description merkkijono Ei Muistikirjan kuvaus. Oletuksena tyhjä.
content Merkkijono, tavut tai sanetti Kyllä Muistikirjan sisältö kelvollisessa .ipynb JSON-muodossa. Voi olla myös raakatavuja tai dikt-objektia. Ei voi olla tyhjä.
defaultLakehouse merkkijono Ei Nimi tai tunnus oletusjärvirakennuksesta, johon liitetään.
defaultLakehouseWorkspace merkkijono Ei Oletusjärvirakennuksen työtilan tunnus. Jätä tyhjäksi nykyiseen työtilaan.
workspaceId merkkijono Ei Kohdetyötilan tunnus. Jätä tyhjäksi nykyiseen työtilaan.

Tärkeää

Parametri content ei voi olla tyhjä. Sinun täytyy toimittaa kelvollinen .ipynb sisältö muistikirjaa luodessasi. Vähintäänkin tarjoa voimassa oleva tyhjä muistikirjarakenne:

{
  "cells": [],
  "metadata": {},
  "nbformat": 4,
  "nbformat_minor": 5
}

Luo muistikirja mallipohjasta

# 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})")

Luo muistikirja, jossa on oletusjärvitalo

# 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}")

Palautusarvo

Metodi create() palauttaa Artifact objektin, jolla on seuraavat ominaisuudet:

  • displayName: Muistikirjan näyttönimi.
  • id: Luodun muistikirjan yksilöllinen tunniste.
  • description: Muistikirjan kuvaus.

Luo muistikirja toisessa työtilassa

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}")

Luo useita muistikirjoja mallipohjasta

# 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")

Vinkki

Anna merkityksellisiä nimiä ja kuvauksia muistikirjoillesi, jotta ne ovat helpompi löytää. Käytä johdonmukaista nimeämiskäytäntöä, kuten <Project>_<Purpose>_<Region> automaattisissa käyttöönotossa.

Hanki muistikirja

Käytä notebookutils.notebook.get() muistikirjan metatietojen hakemiseen nimen tai tunnisteen perusteella. Se palauttaa objektin Artifact , jolla on ominaisuuksia kuten displayName, id, ja description.

Parametrit

Parametri Tyyppi Pakollinen Description
name merkkijono Kyllä Nimi tai tunniste muistikirjasta, jonka haettavaksi.
workspaceId merkkijono Ei Työtilan tunnus. Jätä tyhjäksi nykyiseen työtilaan.

Hanki muistikirja nykyisestä työtilasta

notebook = notebookutils.notebook.get("MyNotebook")

print(f"Notebook Name: {notebook.displayName}")
print(f"Notebook ID: {notebook.id}")
print(f"Description: {notebook.description}")

Hanki muistikirja toisesta työpisteestä

workspace_id = "bbbbbbbb-2222-3333-4444-cccccccccccc"
notebook = notebookutils.notebook.get("SharedNotebook", workspaceId=workspace_id)

print(f"Retrieved: {notebook.displayName} from workspace {workspace_id}")

Palautusarvo

Metodi get() palauttaa Artifact objektin, jolla on seuraavat ominaisuudet:

  • displayName: Muistikirjan näyttönimi.
  • id: Yksilöllinen tunniste.
  • description: Muistikirjan kuvaus.

Vinkki

Käytä get() ennen päivitys- tai poistotoimintoja varmistaaksesi, että kohdemuistikirja on olemassa. Voit myös käyttää sitä tarkistamaan, onko muistikirjan nimi jo käytössä ennen uuden nimen luomista.

Hanki muistikirjan määritelmä

Käytä notebookutils.notebook.getDefinition() koko muistikirjan sisällön hakemiseen muodossa .ipynb . Käytä sitä varmuuskopiointiin, migraatioon, versionhallintaan tai sisällön analysointiin.

Parametrit

Parametri Tyyppi Pakollinen Description
name merkkijono Kyllä Muistikirjan nimi tai tunnus.
workspaceId merkkijono Ei Työtilan tunnus. Jätä tyhjäksi nykyiseen työtilaan.
format merkkijono Ei Tulostusmuoto. Oletusarvo on "ipynb".

Hae ja tallenna muistikirjan määritelmä

# 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")

Hanki muistikirjan määritelmä toisesta työtilasta

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}")

Palautusarvo

Metodi getDefinition() palauttaa merkkijonon, joka sisältää muistikirjan sisällön JSON-muodossa .ipynb .

Vie kaikki muistikirjat varmuuskopiointia varten

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()

Päivitä muistikirja

Käytetään notebookutils.notebook.update() muistikirjan metatietojen, kuten näyttönimen ja kuvauksen, muuttamiseen. Se ei muokkaa muistikirjan sisältöä tai lakehousen asetuksia.

Parametrit

Parametri Tyyppi Pakollinen Description
name merkkijono Kyllä Muistikirjan nykyinen nimi tai tunnus.
newName merkkijono Kyllä Uusi näyttönimi muistikirjalle.
description merkkijono Ei Päivitetty kuvaus.
workspaceId merkkijono Ei Työtilan tunnus. Jätä tyhjäksi nykyiseen työtilaan.

Nimeä muistikirja uudelleen

updated_notebook = notebookutils.notebook.update(
    name="OldNotebookName",
    newName="NewNotebookName",
    description="Updated description with more details"
)

print(f"Updated notebook: {updated_notebook.displayName}")

Palautusarvo

Metodi update() palauttaa Artifact objektin, jolla on päivitetyt ominaisuudet.

Päivitä muistikirjan määritelmä

Käytä notebookutils.notebook.updateDefinition() muistikirjan sisällön, oletusjärvimajan tai molempien muokkaamiseen. Käytä sitä, kun sinun täytyy muuttaa muistikirjan määritelmää sen metatietojen sijaan.

Parametrit

Parametri Tyyppi Pakollinen Description
name merkkijono Kyllä Muistikirjan nimi tai ID päivitettäväksi.
content merkkijono Ei Uutta muistikirjan sisältöä muodossa .ipynb .
defaultLakehouse merkkijono Ei Uusi oletusjärvitalonimi.
defaultLakehouseWorkspace merkkijono Ei Uuden oletusjärvirakennuksen työtilan tunnus. Jätä tyhjäksi nykyiseen työtilaan.
workspaceId merkkijono Ei Työtilan tunnus. Jätä tyhjäksi nykyiseen työtilaan.
environmentId merkkijono Ei Ympäristötunnus liitettäväksi muistikirjaan.
environmentWorkspaceId merkkijono Ei Ympäristön työtilan tunnus. Jätä tyhjäksi nykyiseen työtilaan.

Muistio

Parametrit environmentId ja environmentWorkspaceId ovat saatavilla vain Spark-muistikirjan ajonaikaisuudessa. Python-muistikirjat eivät tue näitä parametreja.

Päivitä muistikirjan sisältöä

# 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}")

Vaihda oletusjärvitalo

is_updated = notebookutils.notebook.updateDefinition(
    name="MyNotebook",
    defaultLakehouse="NewLakehouse",
    defaultLakehouseWorkspace=""  # Current workspace
)

print(f"Default lakehouse updated: {is_updated}")

Päivitä sekä sisältö että järvitalo

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}")

Palautusarvo

Menetelmä updateDefinition() palautuu True , jos päivitys onnistuu tai False epäonnistuu.

Vinkki

Käyttö update() metatietojen muutoksissa (nimi, kuvaus) sekä updateDefinition() sisällön ja järvenrakennuksen muutoksissa. Kun tarvitset täydellisen päivityksen sekä metatiedoista että sisällöstä, kutsu molemmat metodit peräkkäin.

Poista muistikirja

Käytä notebookutils.notebook.delete() muistikirjan pysyvään poistamiseen työtilasta. Se palautuu True , jos poisto onnistuu; muuten se palauttaa False.

Parametrit

Parametri Tyyppi Pakollinen Description
name merkkijono Kyllä Muistikirjan nimi tai tunnus poistettavaksi.
workspaceId merkkijono Ei Työtilan tunnus. Jätä tyhjäksi nykyiseen työtilaan.

Tärkeää

Poisto on pysyvää. Poistettuja muistikirjoja ei voi palauttaa. Tarkista aina muistikirjan nimi ennen poistamista, ja harkitse muistikirjan määritelmän varmuuskopiointia ensin getDefinition() -merkinnällä.

Palautusarvo

Metodi delete() palautuu True , jos poisto onnistuu tai False epäonnistuu.

Poista muistikirja

is_deleted = notebookutils.notebook.delete("ObsoleteNotebook")

if is_deleted:
    print("Notebook deleted successfully")
else:
    print("Failed to delete notebook")

Siivoa muistikirjat turvallisesti kaavan mukaan

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)

Vinkki

Turvallista massapoistoa varten suorita aina first-ohjelmalla dry_run=True esikatselleksesi, mitkä muistikirjat poistetaan. Harkitse muistikirjojen nimeämistä etuliitteellä _TO_DELETE sen sijaan, että poistaisit ne heti, jotta voit tarvittaessa palauttaa ne.

Listamuistikirjat

Käytä notebookutils.notebook.list() muistikirjojen listaamiseen työtilassa. Se palauttaa joukon objekteja Artifact .

Parametrit

Parametri Tyyppi Pakollinen Description
workspaceId merkkijono Ei Työtilan tunnus. Jätä tyhjäksi nykyiseen työtilaan.
maxResults Int Ei Maksimimäärä palautettavia tuloksia. Oletuksena 1000.

Listaa kaikki muistikirjat nykyisessä työtilassa

notebooks = notebookutils.notebook.list()

print(f"Found {len(notebooks)} notebooks:")
for nb in notebooks:
    print(f"  - {nb.displayName} (ID: {nb.id})")

Listaa muistikirjat toisessa työtilassa

workspace_id = "cccccccc-3333-4444-5555-dddddddddddd"
notebooks = notebookutils.notebook.list(workspaceId=workspace_id)

print(f"Found {len(notebooks)} notebooks in workspace {workspace_id}")

Palautusarvo

Metodi list() palauttaa taulukon objekteja Artifact . Jokainen objekti sisältää displayName, id, ja description ominaisuuksia.

Suodata muistikirjoja nimikuvion mukaan

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}")

Kloonaa muistikirja

Käytä list() ja getDefinition() yhdessä kloonataksesi muistikirjan samassa työtilassa tai toiseen työtilaan.

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")

Siirrä muistikirja toiseen työtilaan

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")