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 Aktualizacje nazwę 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

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

Żądanie:

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.

Żądanie:

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

Żądanie:

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": "hkpobavgthae5kji5cuqxtivcu-dda6npvkyiaeteyrkfkgim53xa-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.

Żądanie:

DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}

Odpowiedź:Pusta

Wyświetlanie listy tabel w usłudze Lakehouse

Żądanie:

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

Żądanie:

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:

  1. Przekazywanie plików i folderów do sekcji Pliki usługi Lakehouse przy użyciu interfejsów API usługi OneLake.
  2. Prześlij obciążenie do żądania interfejsu API tabel.
  3. Ś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.

Żądanie:

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:

Żądanie:

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:

  1. Prześlij żądanie interfejsu API konserwacji tabeli.
  2. Ś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.

Żądanie:

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:

Żądanie:

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