Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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")