Hantera lakehouse i Microsoft Fabric med REST API
Rest-API:et för Microsoft Fabric tillhandahåller tjänstslutpunkt för CRUD-driften av ett fabric-objekt. Följande åtgärder är tillgängliga för Lakehouse:
Åtgärd | beskrivning |
---|---|
Skapa | Skapar ett sjöhus i en arbetsyta. En SQL-analysslutpunkt etableras också tillsammans med lakehouse. |
Uppdatera | Uppdaterar namnet på ett lakehouse och SQL-analysslutpunkten. |
Delete | Tar bort lakehouse och den associerade SQL-analysslutpunkten. |
Hämta egenskaper | Hämtar egenskaperna för ett lakehouse och SQL-analysslutpunkten. |
Lista tabeller | Lista tabeller i lakehouse. |
Tabellinläsning | Skapar deltatabeller från CSV och parquet-filer och mappar. |
Tabellunderhåll | Använd bin-compaction, V-Order och borttagning av orefererade och gamla filer. |
Förutsättningar
Om du vill använda REST-API:et för infrastrukturresurser måste du först hämta en Microsoft Entra-token för Fabric-tjänsten. Använd sedan den token i auktoriseringshuvudet för API-anropet.
Microsoft Fabric Rest API definierar en enhetlig slutpunkt för åtgärder. Slutpunkten är
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
. Platshållarna{workspaceId}
och{lakehouseId}
bör ersättas med lämpliga värden när kommandona som exemplifieras i den här artikeln utfärdas.
Lakehouse CRUD
Använd följande API för att skapa, ändra och ta bort lakehouse i en arbetsyta.
Skapa ett sjöhus
Begäran:
POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
{
"displayName": "demo",
"type": "Lakehouse"
}
Svar:
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "demo",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Uppdatera ett sjöhus
Uppdatera beskrivningen och byt namn på Lakehouse.
Begäran:
PATCH https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/dc39f96a-47d7-4c2d-9358-740f50c0aa31
{
"displayName": "newname",
"description": "Item's New description"
}
Svar:
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "newname",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Hämta lakehouse-egenskaper
Begäran:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}
Svar:
{
"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"
}
}
}
Ta bort ett sjöhus
När du tar bort ett lakehouse tas objektmetadata och data bort. Genvägsreferenser tas bort, men data bevaras vid målet.
Begäran:
DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}
Svar: Tom
Lista tabeller i ett Lakehouse
Begäran:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables
Svar:
{
"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"
}
]
}
API :et för listtabeller stöder sidnumrering. Ange maxResults per sida som en parameter till begäran och API:et svarar med den fortsättnings-URI som kan användas för att hämta nästa resultatsida.
Sidnumreringsexempel
Begäran:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables?maxResults=1
Svar:
{
"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"
}
]
}
Läs in till tabeller
Det här API:et innehåller funktionerna i lakehouse-funktionen Load to Tables . Med det här API:et kan du läsa in CSV- och parquet-filer till nya eller befintliga Delta Lake-tabeller i lakehouse.
Det här API:et är asynkront, så tre steg krävs:
- Ladda upp filer och mappar till lakehouse-avsnittet Filer med onelake-API:er.
- Skicka inläsning till api-begäran för tabeller.
- Spåra status för åtgärden tills den har slutförts.
I följande avsnitt förutsätter vi att filerna redan har laddats upp.
Läs in api-begäran för tabeller
Parametern mode
stöder overwrite
och append
åtgärder.
pathType
parameter som anges om du läser in enskilda filer eller alla filer från den angivna mappen.
Både CSV
och parquet
stöds som filparameter format
.
Det här exemplet laddar upp en CSV-fil med namnet demo.csv
till en befintlig tabell med namnet demo
.
Begäran:
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"
}
}
Svarshuvudet innehåller URI:n för att avsöka statusen för de asynkrona åtgärderna. URI:n finns i variabeln Plats för svarshuvudet.
Platsvariabeln innehåller en URI enligt följande: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/32ad6d2a-82bb-420d-bb57-4620c8860373
. Guid är åtgärds-ID 32ad6d2a-82bb-420d-bb57-4620c8860373
:t för att fråga efter status för körning av inläsning till tabellåtgärder enligt beskrivningen i nästa avsnitt.
Övervaka åtgärder för att läsa in till tabeller
När du har hämtat operationId från svaret på inläsningen till api-begäran för tabeller kör du följande begäran:
Begäran:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/{operationId}
Svar:
{
"Status": 3,
"CreatedTimeUtc": "",
"LastUpdatedTimeUtc": "",
"PercentComplete": 100,
"Error": null
}
Möjlig åtgärdsstatus för inläsning till tabeller:
- 1 – Åtgärden startades inte
- 2 – Körs
- 3 – Lyckades
- 4 – Det gick inte
Tabellunderhåll
Det här API:et beskriver funktionerna i underhållsfunktionen för Lakehouse-tabeller. Med det här API:et är det möjligt att använda bin-compaction, V-Order och orefererad rensning av gamla filer.
Det här API:et är asynkront, så två steg krävs:
- Skicka api-begäran om tabellunderhåll.
- Spåra status för åtgärden tills den har slutförts.
API-begäran för tabellunderhåll
Det här exemplet kör ett tabellunderhållsjobb som tillämpar V-Order på en tabell, samtidigt som Z-Order tipAmount
tillämpas på kolumnen och åtgärden körs VACUUM
med kvarhållning på sju dagar och en timme.
Begäran:
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"
}
}
}
Svarshuvudet innehåller URI:n för att avsöka statusen för de asynkrona åtgärderna. URI:n finns i variabeln Plats för svarshuvudet.
Platsvariabeln innehåller en URI enligt följande: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/f2d65699-dd22-4889-980c-15226deb0e1b
. Guid är åtgärds-ID f2d65699-dd22-4889-980c-15226deb0e1b
:t för att fråga efter statusen för körning av tabellunderhållsåtgärder enligt beskrivningen i nästa avsnitt.
Övervaka underhållsåtgärder för tabeller
När du har hämtat operationId från svaret på inläsningen till tabellernas API-begäran kör du följande begäran:
Begäran:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/{operationId}
Svar:
{
"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öjlig åtgärdsstatus för tabellunderhåll:
- NotStarted – Jobbet har inte startats
- InProgress – pågående jobb
- Slutfört – jobbet har slutförts
- Misslyckades – jobbet misslyckades
- Avbrutet – Jobbet avbröts
- Deduplicerad – En instans av samma jobbtyp körs redan och den här jobbinstansen hoppas över