Správa lakehouse v Microsoft Fabric pomocí rozhraní REST API
Rozhraní Microsoft Fabric Rest API poskytuje koncový bod služby pro operaci CRUD položky Fabric. Pro Lakehouse jsou k dispozici následující akce:
Akce | Popis |
---|---|
Vytvoření | Vytvoří lakehouse uvnitř pracovního prostoru. Koncový bod analýzy SQL se také zřídí společně s lakehousem. |
Aktualizovat | Aktualizuje název jezerahouse a koncový bod analýzy SQL. |
Odstranění | Odstraní lakehouse a přidružený koncový bod analýzy SQL. |
Získání vlastností | Získá vlastnosti lakehouse a koncový bod analýzy SQL. |
Výpis tabulek | Vypisujte tabulky v jezeře. |
Načtení tabulky | Vytvoří tabulky delta ze souborů CSV a souborů a složek parquet. |
Údržba tabulek | Použití komprimace přihrádky, pořadí V a odebrání neodkazovaných a starých souborů |
Požadavky
Pokud chcete použít rozhraní REST API fabric, musíte nejprve získat token Microsoft Entra pro službu Fabric. Pak tento token použijte v autorizační hlavičce volání rozhraní API.
Rozhraní Microsoft Fabric Rest API definuje jednotný koncový bod pro operace. Koncový bod je
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
. Zástupné symboly{workspaceId}
a{lakehouseId}
měly by být při vydávání příkazů exemplifikované v tomto článku nahrazeny příslušnými hodnotami.
Lakehouse CRUD
Pomocí následujícího rozhraní API můžete provádět vytváření, úpravy a odebírání jezera v pracovním prostoru.
Vytvoření jezerahouse
Prosba:
POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
{
"displayName": "demo",
"type": "Lakehouse"
}
Odpověď:
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "demo",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Aktualizace jezerahouse
Aktualizujte popis a přejmenujte lakehouse.
Prosba:
PATCH https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/dc39f96a-47d7-4c2d-9358-740f50c0aa31
{
"displayName": "newname",
"description": "Item's New description"
}
Odpověď:
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "newname",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Získání vlastností lakehouse
Prosba:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}
Odpověď:
{
"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"
}
}
}
Odstranění jezerahouse
Když odstraníte lakehouse, odstraní se metadata objektu a data. Odkazy na zástupce se odstraní, ale data se zachovají v cíli.
Prosba:
DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}
Odpověď: Prázdné
Výpis tabulek v Lakehouse
Prosba:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables
Odpověď:
{
"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"
}
]
}
Rozhraní API pro tabulky seznamů podporuje stránkování. Zadejte maxResults na stránku jako parametr požadavku a rozhraní API odpoví identifikátorem URI pokračování, který lze použít k získání další stránky výsledků.
Příklad stránkování
Prosba:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables?maxResults=1
Odpověď:
{
"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"
}
]
}
Načtení do tabulek
Toto rozhraní API zobrazí možnosti funkce Load to Tables Lakehouse . Pomocí tohoto rozhraní API je možné načíst soubory CSV a parquet do nových nebo existujících tabulek delta lake v jezeře.
Toto rozhraní API je asynchronní, takže se vyžadují tři kroky:
- Pomocí rozhraní ONELake API nahrajte soubory a složky do oddílu Soubory lakehouse.
- Odešlete načtení do požadavku rozhraní API pro tabulky.
- Sledujte stav operace do dokončení.
V následujících částech se předpokládá, že soubory jsou už nahrané.
Načtení do požadavků rozhraní API pro tabulky
Parametr mode
podporuje overwrite
a append
operace.
pathType
parametr zadaný, pokud se načítají jednotlivé soubory nebo všechny soubory ze zadané složky.
Oba CSV
a parquet
jsou podporovány jako parametr souboru format
.
Tento příklad nahraje soubor CSV pojmenovaný demo.csv
do existující tabulky s názvem demo
.
Prosba:
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"
}
}
Hlavička odpovědi obsahuje identifikátor URI pro dotazování stavu asynchronních operací. Identifikátor URI je v proměnné Umístění hlavičky odpovědi.
Proměnná Location obsahuje identifikátor URI takto: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/32ad6d2a-82bb-420d-bb57-4620c8860373
. Identifikátor GUID 32ad6d2a-82bb-420d-bb57-4620c8860373
je ID operace pro dotazování na stav spuštěného načítání do operací tabulek, jak je popsáno v další části.
Monitorování operací načítání do tabulek
Po zachycení id operace z odpovědi načtení do požadavku rozhraní API pro tabulky spusťte následující požadavek:
Prosba:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/{operationId}
Odpověď:
{
"Status": 3,
"CreatedTimeUtc": "",
"LastUpdatedTimeUtc": "",
"PercentComplete": 100,
"Error": null
}
Možný stav operace pro načtení do tabulek:
- 1. Operace se nespustila
- 2 . Spuštěno
- 3. Úspěch
- 4. Selhání
Údržba tabulek
Toto rozhraní API zobrazí možnosti funkce údržby tabulek Lakehouse. S tímto rozhraním API je možné použít čištění starých souborů s intervalem bin-compaction, V-Order a neodkazovaných starých souborů.
Toto rozhraní API je asynchronní, takže jsou vyžadovány dva kroky:
- Odešlete požadavek rozhraní API pro údržbu tabulek.
- Sledujte stav operace do dokončení.
Požadavek rozhraní API pro údržbu tabulek
Tento příklad spustí úlohu údržby tabulky, která použije pořadí V-Order na tabulku, a zároveň použije pořadí Z ve tipAmount
sloupci a provede VACUUM
operaci s uchováním sedmi dnů a jedné hodiny.
Prosba:
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"
}
}
}
Hlavička odpovědi obsahuje identifikátor URI pro dotazování stavu asynchronních operací. Identifikátor URI je v proměnné Umístění hlavičky odpovědi.
Proměnná Location obsahuje identifikátor URI takto: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/f2d65699-dd22-4889-980c-15226deb0e1b
. Identifikátor GUID f2d65699-dd22-4889-980c-15226deb0e1b
je ID operace pro dotazování na stav spuštěných operací údržby tabulek, jak je popsáno v další části.
Monitorování operací údržby tabulek
Po zachycení operationId z odpovědi načtení do požadavku rozhraní API pro tabulky spusťte následující požadavek:
Prosba:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/{operationId}
Odpověď:
{
"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
}
}
}
}
Možný stav operace údržby tabulek:
- NotStarted – Úloha se nespustila
- InProgress – probíhá úloha
- Dokončeno – Úloha byla dokončena.
- Neúspěšné – Úloha se nezdařila.
- Zrušeno – Úloha byla zrušena.
- Odstraněno – Instance stejného typu úlohy je již spuštěná a tato instance úlohy se přeskočí.