NotebookUtils Lakehouse-Dienstprogramme

Ich nutze notebookutils.lakehouse es, um Lakehouse-Artikel programmatisch in Fabric-Notizbüchern zu verwalten. Du kannst Lakehouses direkt aus dem Notebook-Code erstellen, abrufen, aktualisieren, löschen und auflisten.

Die Lakehouse-Dienstprogramme sind in den Notebooks Python, PySpark, Scala und R 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-Versorgungsleitungen werden nur in 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 Seehaus mit optionaler Schema-Unterstützung. Artifact -Objekt mit Eigenschaften: id, , displayName, descriptionund workspaceId.
get Holt ein namensvolles Seehaus zurück. Artifact -Objekt mit grundlegenden Metadaten.
getWithProperties Holt ein Seehaus mit erweiterten Grundstücken zurück. Artifact -Objekt mit erweiterten Metadaten und Verbindungsdetails.
update Aktualisiert den Namen oder die Beschreibung eines bestehenden Seehauses. Aktualisiertes Objekt Artifact.
delete Löscht ein Seehaus. Boolean. True bei Erfolg, andernfalls False.
list Listet Seehäuser in einem Arbeitsbereich auf. Ein Array von Artifact-Objekten.
listTables Listet Tische in einem Seehaus auf. Ein Array von Table-Objekten.
loadTable Startet eine Ladeoperation für einen Seehaustisch. 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 Seehauses

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

Parameter

Parameter Typ Erforderlich Beschreibung
name String Ja Anzeigename des Seehauses. Muss innerhalb des Arbeitsbereichs eindeutig sein.
description String No Eine Textbeschreibung für das Seehaus.
definition Objekt No Strukturiertes Definitionsobjekt für das Seehaus. Ü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.

Erstelle ein Seehaus mit Schema-Unterstützung

Wenn du die Schema-Unterstützung aktivierst, unterstützt das Lakehouse mehrere Schemata zur Organisation 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}")

Batch-Errichtung von Seehäusern

Du kannst mehrere Seehäuser 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 Zweck des Seehauses widerspiegeln. Berücksichtigen Sie Namenskonventionen für die Trennung der Umwelt, wie Entwicklung, Test und Produktion.

Hol dir ein Seehaus

Nutzen Sie notebookutils.lakehouse.get() es, um ein Seehaus mit Namen zu finden. Wenn du den Namen weglässt, verwendet NotebookUtils das aktuelle Standard-Lakehouse.

Parameter

Parameter Typ Erforderlich Beschreibung
name String No Name des zu holenden Seehauses. Standardmäßig wird das aktuelle Seehaus angezeigt, 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}")

Kaufen Sie ein Seehaus mit erweiterten Grundstücken

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

Holen Sie sich ein Seehaus von einem anderen Arbeitsplatz

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 Lakehouse

Verwenden notebookutils.lakehouse.update() Sie es, um den Namen oder die Beschreibung eines bestehenden Seehauses zu aktualisieren.

Von Bedeutung

Die Umbenennung eines Seehauses kann nachgelagerte Abhängigkeiten wie Notizbücher, Pipelines oder Abkürzungen, die auf den ursprünglichen Namen verweisen, aufbrechen. Koordinieren Sie die Umbenennungen mit Ihrem Team, bevor Sie sie anwenden.

Parameter

Parameter Typ Erforderlich Beschreibung
name String Ja Aktueller Name des Seehauses.
newName String Ja Neuer Name für das Seehaus.
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}")

Lakehouse löschen

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

Vorsicht

Das Löschen ist dauerhaft und kann nicht rückgängig gemacht werden. Überprüfe den Namen des Lakehouse, bevor du ihn löschst, und prüfe auf abhängige Notizbücher, Pipelines oder Workflows, die darauf verweisen.

Parameter

Parameter Typ Erforderlich Beschreibung
name String Ja Name des Seehauses, das gelöscht werden soll.
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")

Liste von Seehäusern

Ich habe es genutzt notebookutils.lakehouse.list() , um Seehäuser in einem Arbeitsbereich aufzuzählen.

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

Früher habe notebookutils.lakehouse.listTables() ich alle Tische in einem Seehaus aufgelistet.

Parameter

Parameter Typ Erforderlich Beschreibung
lakehouse String No Name des Seehauses. Standardmäßig wird das aktuelle Seehaus angezeigt, wenn es weggelassen wird.
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

Ich nutze notebookutils.lakehouse.loadTable() es, 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 Seehauses. Standardmäßig wird das aktuelle Seehaus angezeigt, wenn es 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 zur Lakehouse-Wurzel (zum Beispiel, 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")