Sdílet prostřednictvím


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:

  1. Pomocí rozhraní ONELake API nahrajte soubory a složky do oddílu Soubory lakehouse.
  2. Odešlete načtení do požadavku rozhraní API pro tabulky.
  3. 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:

  1. Odešlete požadavek rozhraní API pro údržbu tabulek.
  2. 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čí.