Freigeben über


NotebookUtils Lakehouse-Dienstprogramme

Verwenden Sie notebookutils.lakehouse, um Lakehouse-Elemente programmgesteuert in Fabric-Notizbüchern zu verwalten. Sie können Lakehouses direkt aus dem Notizbuchcode erstellen, abrufen, aktualisieren, löschen und auflisten.

Die Lakehouse-Dienstprogramme sind in Python, PySpark, Scala und R-Notizbüchern verfügbar. Die Beispiele auf dieser Seite verwenden Python als primäre Sprache, wobei Skala und R-Entsprechungen für Schlüsselmethoden gezeigt werden.

Hinweis

Lakehouse-Dienstprogramme werden nur in Microsoft Fabric unterstützt. Sie sind in Azure Synapse Analytics nicht verfügbar.

Rufen Sie auf notebookutils.lakehouse.help(), um die verfügbaren Methoden und deren Beschreibungen anzuzeigen.

Übersicht über die Methoden

In der folgenden Tabelle sind die verfügbaren Methoden zusammengefasst:

Methode Beschreibung Rückkehr
create Erstellt ein neues Lakehouse mit optionaler Schemaunterstützung. Artifact -Objekt mit Eigenschaften: id, , displayName, descriptionund workspaceId.
get Ruft ein Lakehouse anhand des Namens ab. Artifact -Objekt mit grundlegenden Metadaten.
getWithProperties Ruft ein Lakehouse mit erweiterten Eigenschaften ab. Artifact -Objekt mit erweiterten Metadaten und Verbindungsdetails.
update Aktualisiert einen vorhandenen Lakehouse-Namen oder eine Beschreibung. Aktualisiertes Objekt Artifact.
delete Löscht ein Lakehouse. Boolean. True bei Erfolg, andernfalls False.
list Listet die Lakehouses in einem Arbeitsbereich auf. Ein Array von Artifact-Objekten.
listTables Listet Tabellen in einem Lakehouse auf. Ein Array von Table-Objekten.
loadTable Startet einen Ladevorgang für einen Lakehouse-Tisch. Boolean. True bei Erfolg, andernfalls False.
# Method signatures
notebookutils.lakehouse.create(name: String, description: String = "", definition: Object = {}, workspaceId: String = ""): Artifact
notebookutils.lakehouse.get(name: String = "", workspaceId: String = ""): Artifact
notebookutils.lakehouse.getWithProperties(name: String, workspaceId: String = ""): Artifact
notebookutils.lakehouse.update(name: String, newName: String, description: String = "", workspaceId: String = ""): Artifact
notebookutils.lakehouse.delete(name: String, workspaceId: String = ""): Boolean
notebookutils.lakehouse.list(workspaceId: String = "", maxResults: Int = 1000): Array[Artifact]
notebookutils.lakehouse.listTables(lakehouse: String = "", workspaceId: String = "", maxResults: Int = 1000): Array[Table]
notebookutils.lakehouse.loadTable(loadOption: Object, table: String, lakehouse: String = "", workspaceId: String = ""): Boolean

Alle Methoden akzeptieren einen optionalen workspaceId Parameter. Wird er weggelassen, zielt der Vorgang auf den aktuellen Arbeitsbereich ab. Geben Sie eine Arbeitsbereichs-ID für den arbeitsbereichübergreifenden Zugriff an. Sie müssen über entsprechende Berechtigungen im Zielarbeitsbereich verfügen.

Erstellen eines Lakehouse

Verwenden Sie notebookutils.lakehouse.create(), um ein neues Lakehouse im aktuellen Arbeitsbereich oder in einem angegebenen Arbeitsbereich zu erstellen. Lakehouse-Namen müssen innerhalb eines Workspaces eindeutig sein.

Parameter

Parameter Typ Erforderlich Beschreibung
name String Ja Name des Lakehouse anzeigen Muss innerhalb des Arbeitsbereichs eindeutig sein.
description String No Eine Textbeschreibung für das Lakehouse.
definition Objekt No Strukturiertes Definitionsobjekt für das Lakehouse. Übergeben Sie {"enableSchemas": True} oder das entsprechende Objekt in Ihrer Sprache, um die Schemaunterstützung zu aktivieren.
workspaceId String No Zielarbeitsbereichs-ID. Standardmäßig wird der aktuelle Arbeitsbereich verwendet.

Erstellen Sie ein einfaches Lakehouse

artifact = notebookutils.lakehouse.create("lakehouse_name", "Description of the Lakehouse")

Hinweis

Übergeben Sie definition als ein strukturiertes Objekt für Ihre Notizbuchsprache, z. B. ein Python-Wörterbuch, eine Scala Map oder eine R-Liste.

Erstellen eines Lakehouse mit Schemaunterstützung

Wenn Sie die Schemaunterstützung aktivieren, unterstützt das Lakehouse mehrere Schemas zum Organisieren von Tabellen. Übergeben Sie {"enableSchemas": True} als definition Parameter:

artifact = notebookutils.lakehouse.create(
    "SalesAnalyticsWithSchema",
    "Lakehouse with schema support for multi-tenant data",
    {"enableSchemas": True}
)

print(f"Created lakehouse with schema support: {artifact.displayName}")
print(f"Lakehouse ID: {artifact.id}")

Erstellen eines Lakehouse in einem anderen Arbeitsbereich

workspace_id = "aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb"

artifact = notebookutils.lakehouse.create(
    name="SharedAnalytics",
    description="Shared analytics lakehouse",
    workspaceId=workspace_id
)

print(f"Created lakehouse in workspace: {workspace_id}")

Stapelweise Erstellen von Lakehouses

Sie können mehrere Lakehouses in einer Schleife erstellen, um Umgebungen für verschiedene Teams oder Projekte bereitzustellen:

departments = ["Sales", "Marketing", "Finance", "Operations"]

created_lakehouses = []
for dept in departments:
    lakehouse = notebookutils.lakehouse.create(
        name=f"{dept}Analytics",
        description=f"Analytics lakehouse for {dept} department"
    )
    created_lakehouses.append(lakehouse)
    print(f"Created: {lakehouse.displayName}")

print(f"Created {len(created_lakehouses)} lakehouses")

Tipp

Verwenden Sie beschreibende Namen, die den Lakehouse-Zweck widerspiegeln, und berücksichtigen Sie Benennungskonventionen für die Trennung von Umgebungen (Dev, Test, prod).

Erwerben Sie ein Lakehouse

Verwenden Sie notebookutils.lakehouse.get(), um ein Lakehouse anhand des Namens abzurufen. Wenn Sie den Namen weglassen, verwendet NotebookUtils das aktuelle Standard-Lakehouse.

Parameter

Parameter Typ Erforderlich Beschreibung
name String No Name des abzurufenden Lakehouses. Wird standardmäßig auf das aktuelle Lakehouse eingestellt, wenn es weggelassen wird.
workspaceId String No Zielarbeitsbereichs-ID. Standardmäßig wird der aktuelle Arbeitsbereich verwendet.
artifact = notebookutils.lakehouse.get("lakehouse_name", "optional_workspace_id")

print(f"Lakehouse Name: {artifact.displayName}")
print(f"Lakehouse ID: {artifact.id}")
print(f"Workspace ID: {artifact.workspaceId}")

Ein Lakehouse mit erweiterten Merkmalen erhalten

Verwenden Sie diese Methode notebookutils.lakehouse.getWithProperties() , wenn Sie erweiterte Eigenschaften über grundlegende Metadaten hinaus benötigen, z. B. Verbindungszeichenfolgen oder Konfigurationsdetails:

artifact = notebookutils.lakehouse.getWithProperties("lakehouse_name", "optional_workspace_id")

print(f"Lakehouse: {artifact.displayName}")
print(f"Properties: {artifact.properties}")

Abrufen eines Lakehouse aus einem anderen Arbeitsbereich

workspace_id = "bbbbbbbb-2222-3333-4444-cccccccccccc"
artifact = notebookutils.lakehouse.get("SharedData", workspaceId=workspace_id)

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

Aktualisieren eines Lakehouses

Benutzen Sie notebookutils.lakehouse.update(), um den Namen oder die Beschreibung eines vorhandenen Lakehouses zu aktualisieren.

Von Bedeutung

Das Umbenennen eines Lakehouses kann nachgelagerte Abhängigkeiten wie Notizbücher, Pipelines oder Verknüpfungen beeinträchtigen, die auf den ursprünglichen Namen verweisen. Koordinieren Sie die Umbenennungen mit Ihrem Team, bevor Sie sie anwenden.

Parameter

Parameter Typ Erforderlich Beschreibung
name String Ja Aktueller Name des Lakehouse.
newName String Ja Neuer Name für das Lakehouse.
description String No Aktualisierte Beschreibung.
workspaceId String No Zielarbeitsbereichs-ID. Standardmäßig wird der aktuelle Arbeitsbereich verwendet.
updated_artifact = notebookutils.lakehouse.update(
    "old_name",
    "new_name",
    "Updated description",
    "optional_workspace_id"
)

print(f"Updated lakehouse: {updated_artifact.displayName}")

Löschen eines Lakehouses

Verwenden Sie notebookutils.lakehouse.delete(), um ein Lakehouse dauerhaft aus einem Arbeitsbereich zu entfernen.

Vorsicht

Das Löschen ist dauerhaft und kann nicht rückgängig gemacht werden. : Überprüfen Sie den Lakehouse-Namen vor dem Löschen und prüfen Sie, ob es abhängige Notizbücher, Pipelines oder Workflows gibt, die darauf verweisen.

Parameter

Parameter Typ Erforderlich Beschreibung
name String Ja Name des zu löschenden Lakehouses.
workspaceId String No Zielarbeitsbereichs-ID. Standardmäßig wird der aktuelle Arbeitsbereich verwendet.
is_deleted = notebookutils.lakehouse.delete("lakehouse_name", "optional_workspace_id")

if is_deleted:
    print("Lakehouse deleted successfully")
else:
    print("Failed to delete lakehouse")

Auflisten von Lakehouses

Verwenden Sie notebookutils.lakehouse.list(), um Lakehouses in einem Arbeitsbereich aufzulisten.

Parameter

Parameter Typ Erforderlich Beschreibung
workspaceId String No Zielarbeitsbereichs-ID. Standardmäßig wird der aktuelle Arbeitsbereich verwendet.
maxResults Int No Maximale Anzahl der zurückzugebenden Elemente. Standardmäßig steht es auf 1000.
artifacts_list = notebookutils.lakehouse.list("optional_workspace_id")

print(f"Found {len(artifacts_list)} lakehouses:")
for lh in artifacts_list:
    print(f"  - {lh.displayName} (ID: {lh.id})")

Hinweis

In Scala unterstützt die list-Methode maxResults auf die gleiche Weise wie die anderen Notebook-Sprachen. Verwenden Sie z. B. list(workspaceId, maxResults).

Tabellen auflisten

Verwenden Sie notebookutils.lakehouse.listTables(), um alle Tabellen in einem Lakehouse aufzulisten.

Parameter

Parameter Typ Erforderlich Beschreibung
lakehouse String No Name des „Lakehouse“. Wird auf das aktuelle Lakehouse gesetzt, wenn nichts anderes angegeben ist.
workspaceId String No Zielarbeitsbereichs-ID. Standardmäßig wird der aktuelle Arbeitsbereich verwendet.
maxResults Int No Maximale Anzahl der zurückzugebenden Elemente. Standardmäßig steht es auf 1000.
artifacts_tables_list = notebookutils.lakehouse.listTables("lakehouse_name", "optional_workspace_id")

Tabelle laden

Nutzen Sie notebookutils.lakehouse.loadTable(), um Daten aus Dateien in eine Lakehouse-Tabelle zu laden.

Parameter

Parameter Typ Erforderlich Beschreibung
loadOption Objekt Ja Strukturierte Ladeoptionen, die den Dateipfad, den Modus, das Format und andere Ladeeinstellungen angeben.
table String Ja Name der Zieltabelle.
lakehouse String No Name des Lakehouses. Wird standardmäßig auf das aktuelle Lakehouse festgelegt, wenn dieser weggelassen wird.
workspaceId String No Zielarbeitsbereichs-ID. Standardmäßig wird der aktuelle Arbeitsbereich verwendet.

Das loadOption Objekt unterstützt die folgenden Schlüssel:

Schlüssel Beschreibung
relativePath Pfad zur Quelldatei relativ zum Lakehouse-Stamm (z. B. Files/myFile.csv).
pathType Pfadtyp. Verwenden Sie File für eine einzelne Datei.
mode Lademodus, wie Overwrite oder Append.
recursive Setzen Sie auf True, um Dateien in Unterordnern einzuschließen.
formatOptions Ein Wörterbuch mit formatspezifischen Einstellungen wie format, headerund delimiter.

Example:

result = notebookutils.lakehouse.loadTable(
    {
        "relativePath": "Files/myFile.csv",
        "pathType": "File",
        "mode": "Overwrite",
        "recursive": False,
        "formatOptions": {
            "format": "Csv",
            "header": True,
            "delimiter": ","
        }
    }, "table_name", "lakehouse_name", "optional_workspace_id")

if result:
    print("Table loaded successfully")
else:
    print("Table load failed")