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