Verwalten von Lakehouse in Microsoft Fabric mit REST-API
Die Microsoft Fabric-Rest-API stellt einen Dienstendpunkt für den CRUD-Vorgang eines Fabric-Elements bereit. Die folgenden Aktionen sind für das Lakehouse verfügbar:
Aktion | Beschreibung |
---|---|
Erzeugen | Erstellt ein Lakehouse innerhalb eines Arbeitsbereichs. Ein SQL-Analyseendpunkt wird zusammen mit dem Lakehouse ebenfalls bereitgestellt. |
Aktualisieren | Aktualisiert den Namen eines Lakehouses und des SQL-Analyseendpunkts. |
Löschen | Löscht ein Lakehouse und den zugeordneten SQL-Analyseendpunkt. |
Abrufen von Eigenschaften | Ruft die Eigenschaften eines Lakehouses und des SQL-Analyseendpunkts ab. |
Auflisten von Tabellen | Listet Tabellen im Lakehouse auf. |
Tabelle laden | Erstellt Deltatabellen aus CSV- sowie Parquet-Dateien und -Ordnern. |
Tabellenwartung | Wenden Sie Bin-Komprimierung, V-Reihenfolge und Bereinigung nicht referenzierter alter Dateien an. |
Voraussetzungen
Um die Fabric-REST-API zu verwenden, musst du zuerst ein Microsoft Entra-Token für den Fabric-Dienst abrufen. Verwende dieses Token dann im Autorisierungsheader des API-Aufrufs.
Die Microsoft Fabric-REST-API definiert einen einheitlichen Endpunkt für Vorgänge. Der Endpunkt ist
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
. Die Platzhalter{workspaceId}
und{lakehouseId}
sollten bei der Ausgabe der in diesem Artikel beschriebenen Befehle durch die entsprechenden Werte ersetzt werden.
Lakehouse CRUD
Verwenden Sie die folgende API zum Erstellen, Ändern und Entfernen des Lakehouses innerhalb eines Arbeitsbereichs.
Erstellen eines Lakehouse
Anforderung:
POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
{
"displayName": "demo",
"type": "Lakehouse"
}
Antwort:
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "demo",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Aktualisieren eines Lakehouse
Aktualisieren Sie die Beschreibung, und benennen Sie das Lakehouse um.
Anforderung:
PATCH https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/dc39f96a-47d7-4c2d-9358-740f50c0aa31
{
"displayName": "newname",
"description": "Item's New description"
}
Antwort:
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "newname",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Abrufen von Lakehouse-Eigenschaften
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"
}
}
}
Löschen eines Lakehouse
Wenn Sie ein Lakehouse löschen, werden die Objektmetadaten und -daten gelöscht. Verknüpfungsverweise werden gelöscht, die Daten werden jedoch am Ziel beibehalten.
Anforderung:
DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}
Antwort: Leer
Auflisten von Tabellen in einem Lakehouse
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"
}
]
}
Diese API zum Auflisten von Tabellen unterstützt die Paginierung. Stellen Sie maxResults pro Seite als Parameter für die Anforderung bereit, und die API antwortet mit dem Fortsetzungs-URI, mit dem die nächste Ergebnisseite abgerufen werden kann.
Paginierungsbeispiel
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"
}
]
}
In Tabellen laden
Diese API zeigt die Funktionen des Lakehouse-Features Laden in Tabelle an. Mit dieser API ist es möglich, CSV- und Parquet-Dateien in neue oder vorhandene Delta Lake-Tabellen im Lakehouse zu laden.
Diese API ist asynchron, sodass drei Schritte erforderlich sind:
- Hochladen von Dateien und Ordnern in den Abschnitt Dateien mithilfe von OneLake-APIs.
- Senden der API-Anforderung zum Laden in Tabellen.
- Verfolgen des Status des Vorgangs bis zum Abschluss.
In den folgenden Abschnitten wird davon ausgegangen, dass die Dateien bereits hochgeladen wurden.
API-Anforderung zum Laden in Tabellen
Der Parameter mode
unterstützt overwrite
- und append
-Vorgänge.
Der Parameter pathType
ist angegeben, wenn einzelne Dateien oder alle Dateien aus dem angegebenen Ordner geladen werden.
Sowohl CSV
als auch parquet
werden als Datei-format
-Parameter unterstützt.
In diesem Beispiel wird eine CSV-Datei namens demo.csv
in eine vorhandene Tabelle mit dem Namen demo
hochgeladen.
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"
}
}
Der Antwortheader enthält den URI, um den Status der asynchronen Vorgänge abzufragen. Der URI befindet sich in der Variable Location des Antwortheaders.
Die Location-Variable enthält einen URI wie folgt: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/32ad6d2a-82bb-420d-bb57-4620c8860373
. Die GUID-32ad6d2a-82bb-420d-bb57-4620c8860373
ist die Vorgangs-ID, um den Status der Ausführung von Ladevorgängen für Tabellenvorgänge abzufragen, wie im nächsten Abschnitt beschrieben.
Überwachen der Vorgänge zum Laden in Tabellen
Nachdem Sie die operationId aus der Antwort der API-Anforderung zum Laden in Tabellen erfasst haben, führen Sie die folgende Anforderung aus:
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
Tabellenwartung
Diese API zeigt die Möglichkeiten des Tabellenwartungsfeatures in Lakehouse. Mit diesen API können Bin-Verdichtung, V-Reihenfolge und Bereinigung nicht referenzierter alter Dateien angewendet werden.
Diese API ist asynchron, sodass zwei Schritte erforderlich sind:
- Übermitteln der API-Anforderung zur Tabellenwartung.
- Verfolgen des Status des Vorgangs bis zum Abschluss.
API-Anforderung zur Tabellenwartung
In diesem Beispiel wird ein Tabellenwartungsauftrag ausgeführt, der die V-Reihenfolge auf eine Tabelle anwendet und gleichzeitig die Z-Reihenfolge auf die Spalte tipAmount
anwendet und den VACUUM
-Vorgang mit einer Aufbewahrung von sieben Tagen und einer Stunde ausführt.
Anforderung:
POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances?jobType=TableMaintenance
{
"executionData": {
"tableName": "{table_name}",
"optimizeSettings": {
"vOrder": true,
"zOrderBy": [
"tipAmount"
]
},
"vacuumSettings": {
"retentionPeriod": "7.01:00:00"
}
}
}
Der Antwortheader enthält den URI, um den Status der asynchronen Vorgänge abzufragen. Der URI befindet sich in der Variable Location des Antwortheaders.
Die Location-Variable enthält einen URI wie folgt: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/f2d65699-dd22-4889-980c-15226deb0e1b
. Die GUID-f2d65699-dd22-4889-980c-15226deb0e1b
ist die Vorgangs-ID, um den Status der Ausführung der Tabellenwartungsvorgänge abzufragen, wie im nächsten Abschnitt beschrieben.
Überwachen von Tabellenwartungsvorgängen
Nachdem Sie operationId aus der Antwort der API-Anforderung zum Laden in Tabellen erfasst haben, führen Sie die folgende Anforderung aus:
Anforderung:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/{operationId}
Antwort:
{
"parameters": {
"workspaceId": "{workspaceId}",
"itemId": "{lakehouseId}",
"jobInstanceId": "{operationId}"
},
"responses": {
"200": {
"body": {
"id": "{operationId}",
"itemId": "431e8d7b-4a95-4c02-8ccd-6faef5ba1bd7",
"jobType": "DefaultJob",
"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: Auftrag nicht gestartet
- InProgress: Auftrag ist in Bearbeitung
- Completed: Auftrag abgeschlossen
- Failed: Fehler beim Auftrag
- Canceled: Auftrag abgebrochen
- Deduped: Eine Instanz desselben Auftragstyps wird bereits ausgeführt, und diese Auftragsinstanz wird übersprungen.