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.
In diesem Artikel werden allgemeine Szenarien für die programmgesteuerte Verwaltung eines Lakehouses mit der Microsoft Fabric-REST-API erläutert. Jeder Abschnitt zeigt die HTTP-Anforderung und -Antwort für eine bestimmte Aufgabe an, damit Sie das Muster an Ihre Automatisierungsskripts oder Anwendungen anpassen können.
Die vollständige Spezifikation – einschließlich aller Parameter, erforderlichen Berechtigungen, Anforderungsschemas und Fehlercodes – finden Sie in der Lakehouse REST-API-Referenz.
Voraussetzungen
-
Rufen Sie ein Microsoft Entra-Token für den Fabric-Dienst ab , und fügen Sie es in den
AuthorizationHeader jeder Anforderung ein. - Ersetzen Sie,
{workspaceId}und{lakehouseId}in den folgenden Beispielen durch Ihre eigenen Werte.
Erstellen, Aktualisieren und Löschen eines Seehauses
Die folgenden Beispiele zeigen, wie Sie ein neues Lakehouse bereitstellen, umbenennen, seine Eigenschaften abrufen (einschließlich des automatisch bereitgestellten SQL-Analyseendpunkts) und löschen. Die vollständige Parameterliste und zusätzliche Beispiele (z. B. das Erstellen eines schemafähigen Lakehouse oder erstellen mit einer Definition) finden Sie in der Lakehouse Items-API-Referenz.
Erstellen eines Lakehouse
Um ein Seehaus in einem Arbeitsbereich zu erstellen, senden Sie eine POST-Anforderung mit dem Anzeigenamen. Fabric stellt automatisch einen SQL-Analyseendpunkt neben dem Lakehouse bereit.
Anforderung
POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses
{
"displayName": "demo"
}
Antwort
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "demo",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Aktualisieren eines Lakehouse
Um ein Seehaus umzubenennen oder seine Beschreibung zu aktualisieren, senden Sie eine PATCH-Anforderung mit den neuen Werten.
Anforderung
PATCH https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}
{
"displayName": "newname",
"description": "Item's New description"
}
Antwort
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "newname",
"description": "Item's New description",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Abrufen von Lakehouse-Eigenschaften
Rufen Sie die Lakehouse-Metadaten ab, einschließlich der OneLake-Pfade und der SQL Analytics-Endpunktverbindungszeichenfolge.
Anforderung
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}
Antwort
{
"id": "daaa77c7-9ef4-41fc-ad3c-f192604424f5",
"type": "Lakehouse",
"displayName": "demo",
"description": "",
"workspaceId": "bee6c118-c2aa-4900-9311-51546433bbb8",
"properties": {
"oneLakeTablesPath": "https://onelake.dfs.fabric.microsoft.com/{workspaceId}/{lakehouseId}/Tables",
"oneLakeFilesPath": "https://onelake.dfs.fabric.microsoft.com/{workspaceId}/{lakehouseId}/Files",
"sqlEndpointProperties": {
"connectionString": "A1bC2dE3fH4iJ5kL6mN7oP8qR9-C2dE3fH4iJ5kL6mN7oP8qR9sT0uV-datawarehouse.pbidedicated.windows.net",
"id": "0dfbd45a-2c4b-4f91-920a-0bb367826479",
"provisioningStatus": "Success"
}
}
}
Lakehouse löschen
Durch das Löschen eines Seehauses werden die Metadaten und Daten entfernt. Verknüpfungen werden entfernt, aber die Daten am Verknüpfungsziel bleiben erhalten.
Anforderung
DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}
Antwort
Der Antwortkörper ist leer.
Listen Sie die Tabellen in einem Lakehouse auf
Um alle Delta-Tabellen in einem Lakehouse abzurufen – zum Beispiel, um einen Datenkatalog zu erstellen oder eine Bereitstellung zu validieren – verwenden Sie den Endpunkt "List Tables". Die vollständige Parameterliste finden Sie in der Tabellen-API-Referenz.
Anforderung
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables
Antwort
{
"continuationToken": null,
"continuationUri": null,
"data": [
{
"type": "Managed",
"name": "demo1",
"location": "abfss://c522396d-7ac8-435d-8d77-442c3ff21295@onelake.dfs.fabric.microsoft.com/{workspaceId}/Tables/demo1",
"format": "delta"
}
]
}
Die Listentabellen-API unterstützt die Paginierung. Übergeben Sie maxResults als Abfrageparameter, um die Seitengröße zu steuern. Die Antwort enthält einen continuationUri-Aufruf, mit dem Sie die nächste Seite abrufen können.
Durch eine große Tabellenübersicht blättern
Anforderung
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables?maxResults=1
Antwort
{
"continuationToken": "+RID:~HTsuAOseYicH-GcAAAAAAA==#RT:1#TRC:1#ISV:2#IEO:65567#QCF:8#FPC:AgKfAZ8BnwEEAAe8eoA=",
"continuationUri": "https://api.fabric.microsoft.com:443/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables?continuationToken=%2BRID%3A~HTsuAOseYicH-GcAAAAAAA%3D%3D%23RT%3A1%23TRC%3A1%23ISV%3A2%23IEO%3A65567%23QCF%3A8%23FPC%3AAgKfAZ8BnwEEAAe8eoA%3D",
"data": [
{
"type": "Managed",
"name": "nyctaxismall",
"location": "abfss://bee6c118-c2aa-4900-9311-51546433bbb8@onelake.dfs.fabric.microsoft.com/daaa77c7-9ef4-41fc-ad3c-f192604424f5/Tables/nyctaxismall",
"format": "delta"
}
]
}
Laden einer Datei in eine Delta-Tabelle
Um CSV- oder Parkettdateien in Delta-Tabellen zu konvertieren, ohne Spark-Code zu schreiben, verwenden Sie die Load Table-API. Dies ist das programmatische Äquivalent der Funktion Load to Tables auf der Lakehouse-Startseite. Die vollständige Parameterliste finden Sie in der Load Table API-Referenz.
Der Vorgang ist asynchron. Folgen Sie diesen Schritten:
- Laden Sie Dateien mithilfe von OneLake-APIs in den Abschnitt " Lakehouse Files " hoch.
- Übermitteln Sie die Ladeanforderung.
- Den Vorgangsstatus abfragen, bis der Vorgang abgeschlossen ist.
In den folgenden Beispielen wird davon ausgegangen, dass die Dateien bereits hochgeladen wurden.
Senden Sie die Ladeanforderung
In diesem Beispiel wird eine CSV-Datei namens demo.csv in eine Tabelle mit dem Namen demo geladen, wobei vorhandene Daten überschrieben werden. Setze mode auf Append, um stattdessen Zeilen hinzuzufügen. Setzen Sie pathType auf Folder, um alle Dateien in einem Ordner zu laden.
Anforderung
POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables/demo/load
{
"relativePath": "Files/demo.csv",
"pathType": "File",
"mode": "Overwrite",
"formatOptions":
{
"header": true,
"delimiter": ",",
"format": "Csv"
}
}
Die Antwort enthält keinen Textkörper. Stattdessen enthält der Location Header einen URI, den Sie zum Abrufen des Vorgangsstatus verwenden. Der URI folgt diesem Muster:
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/{operationId}
Abrufen des Ladevorgangsstatus
Verwenden Sie die operationId aus der Location-Header, um den Fortschritt zu überprüfen:
Anforderung
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/{operationId}
Antwort
{
"Status": 3,
"CreatedTimeUtc": "",
"LastUpdatedTimeUtc": "",
"PercentComplete": 100,
"Error": null
}
Möglicher Vorgangsstatus für das Laden in Tabellen:
- 1: Vorgang nicht gestartet
- 2 - Wird ausgeführt
- 3: Erfolg
- 4: Fehler
Ausführen der Tabellenwartung für eine Delta-Tabelle
Verwenden Sie zum Optimieren von Delta-Tabellen – Anwenden von Bin-Compaction, V-Order, Z-Order oder VACUUM – die Tabellenwartungs-API ohne Nutzung des Lakehouse Explorer. Dies ist die programmatische Entsprechung der Tabellenwartungsfunktion. Die vollständige Parameterliste finden Sie in der Referenz zur Tabellenwartungs-API.
Der Vorgang ist asynchron. Folgen Sie diesen Schritten:
- Übermitteln Sie die Tabellenwartungsanforderung.
- Den Vorgangsstatus abfragen, bis der Vorgang abgeschlossen ist.
Übermitteln der Tabellenwartungsanforderung
In diesem Beispiel werden die V-Order-Optimierung und Z-Order auf die tipAmount Spalte angewendet und VAKUUM mit einem Aufbewahrungszeitraum von sieben Tagen und einer zusätzlich einstündigen Aufbewahrung ausgeführt.
Anforderung
POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/jobs/TableMaintenance/instances
{
"executionData": {
"tableName": "{table_name}",
"schemaName": "{schema_name}",
"optimizeSettings": {
"vOrder": true,
"zOrderBy": [
"tipAmount"
]
},
"vacuumSettings": {
"retentionPeriod": "7:01:00:00"
}
}
}
Die Antwort enthält keinen Textkörper. Der Location Header enthält einen URI, den Sie zum Abrufen des Vorgangsstatus verwenden:
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/{operationId}
Der Ausführungsendpunkt ist im Lakehouse-Umfang, aber die Auftragsinstanzabfragung verwendet absichtlich den generischen Elementauftragsendpunkt (/items/{itemId}/jobs/instances/{jobInstanceId}).
Von Bedeutung
Das Festlegen eines Aufbewahrungszeitraums, der kürzer als sieben Tage ist, beeinflusst Delta-Zeitreisen und kann zu Lesefehlern oder Tabellenbeschädigungen führen, wenn Momentaufnahmen oder nicht festgeschriebene Dateien weiterhin verwendet werden. Aus diesem Grund lehnt die Tabellenwartung sowohl in der Fabric-UI als auch in REST-APIs Aufbewahrungszeiträume unter sieben Tagen standardmäßig ab. Um ein kürzeres Intervall zu erlauben, setzen Sie spark.databricks.delta.retentionDurationCheck.enabled auf false in den Arbeitsbereichseinstellungen; Tabellenwartungsaufträge verwenden dann diese Konfiguration während der Ausführung.
Abfrage des Wartungsstatus der Tabelle
Verwenden Sie den operationId Header aus der Location Kopfzeile, um den Auftragsstatus zu überprüfen:
Anforderung
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/{operationId}
Diese Abrufroute verwendet items absichtlich statt lakehouses.
Antwort
{
"id": "{operationId}",
"itemId": "431e8d7b-4a95-4c02-8ccd-6faef5ba1bd7",
"jobType": "TableMaintenance",
"invokeType": "Manual",
"status": "Completed",
"rootActivityId": "8c2ee553-53a4-7edb-1042-0d8189a9e0ca",
"startTimeUtc": "2023-04-22T06:35:00.7812154",
"endTimeUtc": "2023-04-22T06:35:00.8033333",
"failureReason": null
}
Möglicher Vorgangsstatus für Tabellenwartung:
- NotStarted - Job nicht gestartet
- InProgress: Auftrag ist in Bearbeitung
- Completed: Auftrag abgeschlossen
- Job fehlgeschlagen
- Abgebrochen - Auftrag abgebrochen
- Deduped: Eine Instanz desselben Auftragstyps wird bereits ausgeführt, und diese Auftragsinstanz wird übersprungen.