Zarządzanie usługą lakehouse w usłudze Microsoft Fabric przy użyciu interfejsu API REST
Interfejs API REST usługi Microsoft Fabric udostępnia punkt końcowy usługi dla operacji CRUD elementu sieci szkieletowej. W usłudze Lakehouse są dostępne następujące akcje:
Akcja | opis |
---|---|
Utworzenie | Tworzy magazyn lakehouse wewnątrz obszaru roboczego. Punkt końcowy analizy SQL jest również aprowizowany wraz z usługą Lakehouse. |
Zaktualizuj | Aktualizuje nazwę usługi Lakehouse i punkt końcowy analizy SQL. |
Delete | Usuwa usługę Lakehouse i skojarzony punkt końcowy analizy SQL. |
Pobieranie właściwości | Pobiera właściwości usługi Lakehouse i punktu końcowego analizy SQL. |
Wyświetlanie listy tabel | Wyświetlanie listy tabel w lakehouse. |
Ładowanie tabeli | Tworzy tabele różnicowe na podstawie plików CSV i plików parquet i folderów. |
Konserwacja tabeli | Zastosuj kompaktowanie bin, kolejność V i usuwanie niereferencji i starych plików. |
Wymagania wstępne
Aby użyć interfejsu API REST sieci szkieletowej, najpierw musisz uzyskać token usługi Microsoft Entra dla usługi Fabric. Następnie użyj tego tokenu w nagłówku autoryzacji wywołania interfejsu API.
Interfejs API REST usługi Microsoft Fabric definiuje ujednolicony punkt końcowy dla operacji. Punkt końcowy to
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
. Symbole zastępcze i{lakehouseId}
powinny zostać zastąpione{workspaceId}
odpowiednimi wartościami podczas wydawania poleceń z tego artykułu.
Lakehouse CRUD
Użyj następującego interfejsu API, aby utworzyć, zmodyfikować i usunąć usługę Lakehouse wewnątrz obszaru roboczego.
Tworzenie jeziora
Prosić:
POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
{
"displayName": "demo",
"type": "Lakehouse"
}
Odpowiedź:
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "demo",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Aktualizowanie jeziora
Zaktualizuj opis i zmień nazwę lakehouse.
Prosić:
PATCH https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/dc39f96a-47d7-4c2d-9358-740f50c0aa31
{
"displayName": "newname",
"description": "Item's New description"
}
Odpowiedź:
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "newname",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Uzyskiwanie właściwości lakehouse
Prosić:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}
Odpowiedź:
{
"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"
}
}
}
Usuwanie jeziora
Po usunięciu magazynu lakehouse metadane i dane obiektu zostaną usunięte. Odwołania do skrótów są usuwane, ale dane są zachowywane w miejscu docelowym.
Prosić:
DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}
Odpowiedź: Pusta
Wyświetlanie listy tabel w usłudze Lakehouse
Prosić:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables
Odpowiedź:
{
"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"
}
]
}
Interfejs API tabel listy obsługuje stronicowanie. Podaj wartość maxResults na stronę jako parametr żądania, a interfejs API odpowiada za pomocą identyfikatora URI kontynuacji, który może służyć do uzyskania następnej strony wyników.
Przykład stronicowania
Prosić:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables?maxResults=1
Odpowiedź:
{
"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"
}
]
}
Ładowanie do tabel
Ten interfejs API przedstawia możliwości funkcji ładowania do tabel typu lakehouse. Za pomocą tego interfejsu API można załadować pliki CSV i parquet do nowych lub istniejących tabel usługi Delta Lake w usłudze Lakehouse.
Ten interfejs API jest asynchroniczny, dlatego wymagane są trzy kroki:
- Przekazywanie plików i folderów do sekcji Pliki usługi Lakehouse przy użyciu interfejsów API usługi OneLake.
- Prześlij obciążenie do żądania interfejsu API tabel.
- Śledź stan operacji do momentu ukończenia.
W poniższych sekcjach założono, że pliki zostały już przekazane.
Ładowanie do żądania interfejsu API tabel
Parametr mode
obsługuje operacje overwrite
i append
.
pathType
parametr określony w przypadku ładowania pojedynczych plików lub wszystkich plików z określonego folderu.
Oba CSV
elementy i parquet
są obsługiwane jako parametr pliku format
.
W tym przykładzie przekazano plik CSV o nazwie demo.csv
do istniejącej tabeli o nazwie demo
.
Prosić:
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"
}
}
Nagłówek odpowiedzi zawiera identyfikator URI do sondowania stanu operacji asynchronicznych. Identyfikator URI znajduje się w zmiennej Location nagłówka odpowiedzi.
Zmienna Location zawiera identyfikator URI w następujący sposób: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/32ad6d2a-82bb-420d-bb57-4620c8860373
. Identyfikator guid 32ad6d2a-82bb-420d-bb57-4620c8860373
to identyfikator operacji, który umożliwia wykonywanie zapytań o stan uruchomienia obciążenia do operacji tabel zgodnie z opisem w następnej sekcji.
Monitorowanie operacji Ładowania do tabel
Po przechwyceniu identyfikatora operationId z odpowiedzi na żądanie interfejsu API tabel wykonaj następujące żądanie:
Prosić:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/{operationId}
Odpowiedź:
{
"Status": 3,
"CreatedTimeUtc": "",
"LastUpdatedTimeUtc": "",
"PercentComplete": 100,
"Error": null
}
Możliwy stan operacji ładowania do tabel:
- 1 — Operacja nie została uruchomiona
- 2 — Uruchamianie
- 3 — Powodzenie
- 4 — Niepowodzenie
Konserwacja tabeli
Ten interfejs API przedstawia możliwości funkcji konserwacji tabeli Lakehouse. Za pomocą tego interfejsu API można zastosować czyszczenie plików bin-compaction, V-Order i nieużywanych starych plików.
Ten interfejs API jest asynchroniczny, dlatego wymagane są dwa kroki:
- Prześlij żądanie interfejsu API konserwacji tabeli.
- Śledź stan operacji do momentu ukończenia.
Żądanie interfejsu API konserwacji tabel
W tym przykładzie jest wykonywane zadanie konserwacji tabeli, które stosuje kolejność wirtualną do tabeli, a także stosowanie kolejności Z do tipAmount
kolumny i wykonywanie VACUUM
operacji z okresem przechowywania siedmiu dni i jednej godziny.
Prosić:
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"
}
}
}
Nagłówek odpowiedzi zawiera identyfikator URI do sondowania stanu operacji asynchronicznych. Identyfikator URI znajduje się w zmiennej Location nagłówka odpowiedzi.
Zmienna Location zawiera identyfikator URI w następujący sposób: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/f2d65699-dd22-4889-980c-15226deb0e1b
. Identyfikator guid f2d65699-dd22-4889-980c-15226deb0e1b
to identyfikator operacji, który umożliwia wykonywanie zapytań o stan uruchomionych operacji konserwacji tabeli zgodnie z opisem w następnej sekcji.
Monitorowanie operacji konserwacji tabeli
Po przechwyceniu identyfikatora operationId z odpowiedzi żądania interfejsu API ładowania do tabel wykonaj następujące żądanie:
Prosić:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/{operationId}
Odpowiedź:
{
"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żliwy stan operacji konserwacji tabeli:
- NotStarted — zadanie nie zostało uruchomione
- InProgress — zadanie w toku
- Ukończono — ukończono zadanie
- Niepowodzenie — zadanie nie powiodło się
- Anulowano — anulowane zadanie
- Deduplikowane — wystąpienie tego samego typu zadania jest już uruchomione i to wystąpienie zadania zostało pominięte