Administrer lakehouse i Microsoft Fabric med REST API
Microsoft Fabric Rest API leverer tjenesteslutpunkt for CRUD-handlingen for et Fabric-element. Følgende handlinger er tilgængelige for Lakehouse:
Handling | Beskrivelse |
---|---|
Opret | Opretter et lakehouse i et arbejdsområde. Et SQL Analytics-slutpunkt klargøres også sammen med lakehouse. |
Opdater | Opdaterer navnet på et lakehouse og SQL Analytics-slutpunktet. |
Delete | Sletter lakehouse og det tilknyttede SQL Analytics-slutpunkt. |
Hent egenskaber | Henter egenskaberne for et lakehouse og SQL Analytics-slutpunktet. |
Vis tabeller | Vis tabeller i lakehouse. |
Tabelindlæsning | Opretter deltatabeller ud fra CSV- og parquetfiler og mapper. |
Tabelvedligeholdelse | Anvend bin-compaction, V-Order og fjernelse af ikke-refererede og gamle filer. |
Forudsætninger
Hvis du vil bruge Fabric REST-API'en, skal du først hente et Microsoft Entra-token til Fabric-tjenesten. Brug derefter dette token i godkendelsesheaderen for API-kaldet.
Microsoft Fabric Rest API definerer et samlet slutpunkt for handlinger. Slutpunktet er
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
. Pladsholderne{workspaceId}
og{lakehouseId}
skal erstattes med de relevante værdier, når du udsteder de kommandoer, der er eksemplificeret i denne artikel.
Lakehouse CRUD
Brug følgende API til at udføre oprettelse, ændringer og fjernelse af lakehouse i et arbejdsområde.
Opret et lakehouse
Bøn:
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"
}
Opdater et lakehouse
Opdater beskrivelsen, og omdøb Lakehouse.
Bøn:
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"
}
Hent lakehouse-egenskaber
Bøn:
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"
}
}
}
Slet et lakehouse
Når du sletter et lakehouse, slettes objektets metadata og data. Genvejsreferencer slettes, men dataene bevares på destinationen.
Bøn:
DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}
Svar: Tom
Vis tabeller i et lakehouse
Bøn:
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'en til listetabeller understøtter sideinddeling. Angiv maxResults pr. side som en parameter til anmodningen, og API'en svarer med den fortsættelses-URI, der kan bruges til at få den næste side med resultater.
Eksempel på sideinddeling
Bøn:
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"
}
]
}
Indlæs i tabeller
Denne API viser egenskaberne for funktionen Indlæs til tabeller lakehouse. Med denne API er det muligt at indlæse CSV- og parquetfiler i nye eller eksisterende delta lake-tabeller i lakehouse.
Denne API er asynkron, så der kræves tre trin:
- Overfør filer og mapper til afsnittet Filer i Lakehouse ved hjælp af OneLake-API'er.
- Send indlæsning til API-anmodning om tabeller.
- Spor status for handlingen, indtil den er fuldført.
I følgende afsnit antages det, at filerne allerede er overført.
Indlæs i API-anmodning om tabeller
Parameteren mode
understøtter overwrite
og append
-handlinger.
pathType
parameter, der er angivet, hvis individuelle filer eller alle filer fra den angivne mappe indlæses.
Både CSV
og parquet
understøttes som filparameteren format
.
I dette eksempel overføres en CSV-fil med navnet demo.csv
til en eksisterende tabel med navnet demo
.
Bøn:
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"
}
}
Svarheaderen indeholder URI'en til afstemning af status for de asynkrone handlinger. URI'en er i variablen Location for svarheaderen.
Variablen Location indeholder en URI som følger: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/32ad6d2a-82bb-420d-bb57-4620c8860373
. GUID'et 32ad6d2a-82bb-420d-bb57-4620c8860373
er handlings-id'et til at forespørge om status for kørsel af indlæsning i tabeller, som beskrevet i næste afsnit.
Overvågning af indlæsning af tabelhandlinger
Når du har hentet operationId fra svaret på API-anmodningen om indlæsning af tabeller, skal du udføre følgende anmodning:
Bøn:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/{operationId}
Svar:
{
"Status": 3,
"CreatedTimeUtc": "",
"LastUpdatedTimeUtc": "",
"PercentComplete": 100,
"Error": null
}
Mulig handlingsstatus for indlæsning i tabeller:
- 1 – Handlingen er ikke startet
- 2 – kører
- 3 – gennemført
- 4 - Mislykkedes
Tabelvedligeholdelse
Denne API viser egenskaberne i vedligeholdelsesfunktionen for Lakehouse-tabellen. Med denne API er det muligt at anvende bin-compaction, V-Order og ikke-refererede gamle filer oprydning.
Denne API er asynkron, så der kræves to trin:
- Send API-anmodning om vedligeholdelse af tabel.
- Spor status for handlingen, indtil den er fuldført.
API-anmodning om tabelvedligeholdelse
I dette eksempel udføres et tabelvedligeholdelsesjob, der anvender V-Order på en tabel, samtidig med at Z-Order anvendes på tipAmount
kolonnen og udfører VACUUM
handlingen med en opbevaring på syv dage og én time.
Bøn:
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"
}
}
}
Svarheaderen indeholder URI'en til afstemning af status for de asynkrone handlinger. URI'en er i variablen Location for svarheaderen.
Variablen Location indeholder en URI som følger: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/f2d65699-dd22-4889-980c-15226deb0e1b
. GUID'et f2d65699-dd22-4889-980c-15226deb0e1b
er handlings-id'et til at forespørge om status for kørende handlinger til vedligeholdelse af tabeller, som beskrevet i næste afsnit.
Overvågning af vedligeholdelseshandlinger for tabel
Når du har hentet operationId fra svaret på API-anmodningen om indlæsning af tabeller, skal du udføre følgende anmodning:
Bøn:
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
}
}
}
}
Mulig handlingsstatus for tabelvedligeholdelse:
- NotStarted – Jobbet er ikke startet
- InProgress – igangværende job
- Fuldført - jobbet er fuldført
- Mislykket - jobbet mislykkedes
- Annulleret - job annulleret
- Deduped – Der kører allerede en forekomst af samme jobtype, og denne jobforekomst springes over