Řízení lakehouse pomocí rozhraní REST API

Tento článek vás provede běžnými scénáři pro správu lakehouse programově pomocí rozhraní MICROSOFT FABRIC REST API. Každá část obsahuje požadavek HTTP a odpověď pro konkrétní úlohu, abyste mohli přizpůsobit vzor automatizačním skriptům nebo aplikacím.

Úplnou specifikaci včetně všech parametrů, požadovaných oprávnění, schémat požadavků a kódů chyb najdete v referenčních informacích k rozhraní REST API lakehouse.

Požadavky

Vytvořit, aktualizovat a odstranit lakehouse

Následující příklady ukazují, jak zřídit nový lakehouse, přejmenovat ho, načíst jeho vlastnosti (včetně automaticky zřízeného koncového bodu analýzy SQL) a odstranit ho. Úplný seznam parametrů a další příklady (například vytvoření lakehouse s podporou schématu nebo vytvoření s definicí) najdete v referenčních informacích k rozhraní API Lakehouse Items.

Vytvořte lakehouse

Pokud chcete vytvořit lakehouse v pracovním prostoru, odešlete požadavek POST s názvem pro zobrazení. Infrastruktura Fabric automaticky zprovozní SQL analytický koncový bod vedle lakehouse.

Prosba

POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses
{ 
    "displayName": "demo"
} 

odpověď

{
    "id": "56c6dedf-2640-43cb-a412-84faad8ad648", 
    "type": "Lakehouse", 
    "displayName": "demo", 
    "description": "", 
    "workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f" 
} 

Aktualizace lakehouse

Pokud chcete přejmenovat lakehouse nebo aktualizovat jeho popis, odešlete požadavek PATCH s novými hodnotami.

Prosba

PATCH https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}
{ 
    "displayName": "newname", 
    "description": "Item's New description" 
} 

odpověď

{ 
    "id": "56c6dedf-2640-43cb-a412-84faad8ad648", 
    "type": "Lakehouse", 
    "displayName": "newname", 
    "description": "Item's New description", 
    "workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f" 
} 

Získání vlastností lakehouse

Načtěte metadata lakehouse, včetně cest OneLake a připojovacího řetězce koncového bodu pro SQL analýzu.

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" 
        } 
    } 
}

Odstranit lakehouse

Odstraněním lakehouse odstraníte jeho metadata a data. Klávesové zkratky se odeberou, ale data v cíli zástupce se zachovají.

Prosba

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

odpověď

Tělo odpovědi je prázdné.

Vyjmenujte tabulky v lakehouse.

Pokud chcete načíst všechny tabulky Delta v Lakehouse — například k sestavení datového katalogu nebo ověření nasazení — použijte koncový bod Tabulky seznamu. Úplný seznam parametrů najdete v referenčních informacích k rozhraní Api pro tabulky.

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 List Tables podporuje stránkování. Předejte maxResults jako parametr dotazu pro řízení velikosti stránky. Odpověď zahrnuje continuationUri funkci, kterou můžete zavolat k načtení další stránky.

Stránkování prostřednictvím velkého seznamu tabulek

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í souboru do tabulky Delta

Pokud chcete převést soubory CSV nebo Parquet na tabulky Delta bez psaní kódu Sparku, použijte rozhraní API pro načtení tabulky. Jedná se o programový ekvivalent funkce Načíst do stolů na domovské stránce jezerního domu. Úplný seznam parametrů najdete v referenčních informacích k rozhraní API pro načtení tabulky.

Operace je asynchronní. Postupujte následovně:

  1. Nahrajte soubory do oddílu Soubory lakehouse pomocí rozhraní ONELake API.
  2. Odešlete požadavek na načtení.
  3. Průběžně zjišťujte stav operace, dokud není dokončena.

Následující příklady předpokládají, že soubory jsou už nahrané.

Odešlete požadavek na načtení

Tento příklad načte soubor CSV pojmenovaný demo.csv do tabulky s názvem demo, přepíše všechna existující data. Nastavte mode na Append, abyste místo toho přidali řádky. Nastavte pathType na Folder pro načtení všech souborů ve složce.

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" 
    } 
}

Odpověď neobsahuje text. Místo toho záhlaví obsahuje identifikátor URI, Location který použijete k dotazování stavu operace. Identifikátor URI se řídí tímto vzorem:

https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/{operationId}

Dotazování stavu operace načítání

Pomocí operationId ze záhlaví Location zkontrolujte průběh:

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. Běží
  • 3. Úspěch
  • 4. Selhání

Spuštění údržby tabulek v tabulce Delta

Pro optimalizaci Delta tabulek — aplikací bin-compaction, V-order, Z-Order nebo VACUUM — bez použití Lakehouse Explorer použijte Table Maintenance API. Toto je programový ekvivalent funkce údržby tabulky. Úplný seznam parametrů najdete v referenčních informacích k rozhraní API pro údržbu tabulek.

Operace je asynchronní. Postupujte následovně:

  1. Odešlete žádost o údržbu tabulky.
  2. Průběžně zjišťujte stav operace, dokud není dokončena.

Odeslání žádosti o údržbu tabulky

Tento příklad aplikuje optimalizaci V-pořadí a Z-řád na sloupec tipAmount a spustí VACUUM s periodou zadržení sedm dní a jedna hodina.

Prosba

POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/jobs/TableMaintenance/instances
{
    "executionData": {
        "tableName": "{table_name}",
        "schemaName": "{schema_name}",
        "optimizeSettings": {
            "vOrder": true,
            "zOrderBy": [
                "tipAmount"
            ]
        },
        "vacuumSettings": {
            "retentionPeriod": "7:01:00:00"
        }
    }
}

Odpověď neobsahuje text. Hlavička Location obsahuje identifikátor URI, který použijete k dotazování stavu operace:

https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/{operationId}

Koncový bod spuštění má obor lakehouse, ale dotazování instance úlohy používá koncový bod úlohy obecné položky (/items/{itemId}/jobs/instances/{jobInstanceId}) záměrně.

Důležité

Nastavení doby uchovávání kratší než sedm dnů má vliv na rozdílové časové cestování a může způsobit selhání čtenáře nebo poškození tabulky, pokud se snímky nebo nepotvrzené soubory stále používají. Z tohoto důvodu údržba tabulek v uživatelském rozhraní Fabric a v rozhraních REST API ve výchozím nastavení odmítá doby uchovávání kratší než sedm dní. Pokud chcete povolit kratší interval, nastavte spark.databricks.delta.retentionDurationCheck.enabled v false nastavení pracovního prostoru. Úlohy údržby tabulek pak tuto konfiguraci používají během provádění.

Zjistit stav údržby tabulky

Pomocí operationId ze záhlaví Location zkontrolujte stav úlohy.

Prosba

GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/{operationId}

Tato trasa dotazování záměrně používá items místo lakehouses.

odpověď

{
    "id": "{operationId}",
    "itemId": "431e8d7b-4a95-4c02-8ccd-6faef5ba1bd7",
    "jobType": "TableMaintenance",
    "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 nebyla zahájena
  • 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čí.