Administrere lakehouse i Microsoft Fabric med REST API
Microsoft Fabric Rest-API-en tilbyr tjenesteendepunkt for CRUD-operasjonen av et stoffelement. Følgende handlinger er tilgjengelige for Lakehouse:
Handling | Bekrivelse |
---|---|
Create | Oppretter et lakehouse inne i et arbeidsområde. Et SQL Analytics-endepunkt blir også klargjort sammen med lakehouse. |
Oppdatering | Oppdaterer navnet på et lakehouse og SQL Analytics-endepunktet. |
Delete | Sletter lakehouse og det tilknyttede SQL Analytics-endepunktet. |
Hent egenskaper | Henter egenskapene til et lakehouse og SQL Analytics-endepunktet. |
Listetabeller | Vis tabeller i lakehouse. |
Tabellinnlasting | Oppretter deltatabeller fra CSV og parkettfiler og mapper. |
Tabellvedlikehold | Bruk bin-compaction, V-Order, og fjerning av unreferenced og gamle filer. |
Forutsetning
Hvis du vil bruke FABRIC REST-API-en, må du først få et Microsoft Entra-token for Fabric-tjenesten. Bruk deretter dette tokenet i autorisasjonshodet for API-kallet.
Microsoft Fabric Rest API definerer et enhetlig endepunkt for operasjoner. Endepunktet er
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
. Plassholderne og{lakehouseId}
bør erstattes{workspaceId}
med de riktige verdiene når du utsteder kommandoene som er eksemplifisert i denne artikkelen.
Lakehouse CRUD
Bruk følgende API til å utføre oppretting, endringer og fjerning av lakehouse i et arbeidsområde.
Opprett et innsjøhus
Anmodning:
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"
}
Oppdater et innsjøhus
Oppdater beskrivelsen, og gi nytt navn til Lakehouse.
Anmodning:
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"
}
Få egenskaper for lakehouse
Anmodning:
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"
}
}
}
Slette et innsjøhus
Når du sletter et lakehouse, slettes objektmetadataene og dataene. Snarveisreferanser slettes, men dataene beholdes på målet.
Anmodning:
DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}
Svar: Tom
Listetabeller i et Lakehouse
Anmodning:
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 for listetabeller støtter paginering. Angi maxResults per side som parameter for forespørselen, og API-en svarer med fortsettelses-URI-en som kan brukes til å hente neste side med resultater.
Eksempel på paginering
Anmodning:
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"
}
]
}
Last inn i tabeller
Denne API-en viser egenskapene til lakehouse-funksjonen Last til tabeller. Med denne API-en er det mulig å laste inn CSV- og parkettfiler til nye eller eksisterende delta-bord i lakehouse.
Denne API-en er asynkron, så tre trinn kreves:
- Last opp filer og mapper til Lakehouses Filer-inndeling ved hjelp av OneLake-API-er.
- Send inn belastning til tabell-API-forespørsel.
- Spor statusen for operasjonen til den er fullført.
Avsnittene nedenfor antar at filene allerede er lastet opp.
Last inn til tabell-API-forespørsel
Parameteren mode
støtter overwrite
og append
operasjoner.
pathType
parameter angitt hvis du laster inn enkeltfiler eller alle filer fra den angitte mappen.
Begge CSV
og parquet
støttes som filparameter format
.
Dette eksemplet laster opp en CSV-fil med navnet demo.csv
til en eksisterende tabell med navnet demo
.
Anmodning:
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"
}
}
Svarhodet inneholder URI-en for å undersøke statusen for asynkrone operasjoner. URI-en er i plasseringsvariabelen for svarhodet.
Plasseringsvariabelen inneholder en URI som følger: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/32ad6d2a-82bb-420d-bb57-4620c8860373
. GUIDen 32ad6d2a-82bb-420d-bb57-4620c8860373
er operasjons-IDen for å spørre statusen for kjøring av belastning til tabelloperasjoner som beskrevet i neste del.
Overvåking av belastning på tabelloperasjoner
Når du har tatt operationId fra svaret på API-forespørselen om innlasting til tabeller, utfører du følgende forespørsel:
Anmodning:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/{operationId}
Svar:
{
"Status": 3,
"CreatedTimeUtc": "",
"LastUpdatedTimeUtc": "",
"PercentComplete": 100,
"Error": null
}
Mulig operasjonsstatus for innlasting til tabeller:
- 1 - Operasjonen er ikke startet
- 2 - Kjører
- 3 – Vellykket
- 4 - Mislyktes
Tabellvedlikehold
Denne API-en viser egenskapene til lakehouse-bordvedlikeholdsfunksjonen. Med denne API-en er det mulig å bruke bin-komprimering, V-Order og unreferenced old files cleanup.
Denne API-en er asynkron, så to trinn kreves:
- Send inn API-forespørsel om vedlikehold av tabell.
- Spor statusen for operasjonen til den er fullført.
API-forespørsel om vedlikehold av tabell
Dette eksemplet utfører en vedlikeholdsjobb for tabeller som bruker V-ordre på en tabell, samtidig som du bruker Z-ordre tipAmount
på kolonnen og utfører VACUUM
operasjonen med en oppbevaring på sju dager og én time.
Anmodning:
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"
}
}
}
Svarhodet inneholder URI-en for å undersøke statusen for asynkrone operasjoner. URI-en er i plasseringsvariabelen for svarhodet.
Plasseringsvariabelen inneholder en URI som følger: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/f2d65699-dd22-4889-980c-15226deb0e1b
. GUIDen f2d65699-dd22-4889-980c-15226deb0e1b
er operasjons-ID-en for å spørre statusen for å kjøre vedlikeholdsoperasjoner for tabeller, som beskrevet i neste del.
Overvåke vedlikeholdsoperasjoner for tabell
Når du har tatt operationId fra svaret på API-forespørselen om innlasting til tabeller, utfører du følgende forespørsel:
Anmodning:
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 operasjonsstatus for tabellvedlikehold:
- NotStarted – jobben er ikke startet
- InProgress – jobb pågår
- Fullført – jobben er fullført
- Mislyktes - jobben mislyktes
- Avbrutt - jobben er avbrutt
- Deduped – en forekomst av samme jobbtype kjører allerede, og denne jobbforekomsten hoppes over