Dela via


Hantera lakehouse i Microsoft Fabric med REST API

Rest-API:et för Microsoft Fabric tillhandahåller tjänstslutpunkt för CRUD-driften av ett fabric-objekt. Följande åtgärder är tillgängliga för Lakehouse:

Åtgärd beskrivning
Skapa Skapar ett sjöhus i en arbetsyta. En SQL-analysslutpunkt etableras också tillsammans med lakehouse.
Uppdatera Uppdaterar namnet på ett lakehouse och SQL-analysslutpunkten.
Delete Tar bort lakehouse och den associerade SQL-analysslutpunkten.
Hämta egenskaper Hämtar egenskaperna för ett lakehouse och SQL-analysslutpunkten.
Lista tabeller Lista tabeller i lakehouse.
Tabellinläsning Skapar deltatabeller från CSV och parquet-filer och mappar.
Tabellunderhåll Använd bin-compaction, V-Order och borttagning av orefererade och gamla filer.

Förutsättningar

  • Om du vill använda REST-API:et för infrastrukturresurser måste du först hämta en Microsoft Entra-token för Fabric-tjänsten. Använd sedan den token i auktoriseringshuvudet för API-anropet.

  • Microsoft Fabric Rest API definierar en enhetlig slutpunkt för åtgärder. Slutpunkten är https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items. Platshållarna {workspaceId} och {lakehouseId} bör ersättas med lämpliga värden när kommandona som exemplifieras i den här artikeln utfärdas.

Lakehouse CRUD

Använd följande API för att skapa, ändra och ta bort lakehouse i en arbetsyta.

Skapa ett sjöhus

Begäran:

POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items 
{ 
    "displayName": "demo", 
    "type": "Lakehouse" 
} 

Svar:

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

Uppdatera ett sjöhus

Uppdatera beskrivningen och byt namn på Lakehouse.

Begäran:

PATCH https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/dc39f96a-47d7-4c2d-9358-740f50c0aa31 
{ 
    "displayName": "newname", 
    "description": "Item's New description" 
} 

Svar:

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

Hämta lakehouse-egenskaper

Begäran:

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

Svar:

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

Ta bort ett sjöhus

När du tar bort ett lakehouse tas objektmetadata och data bort. Genvägsreferenser tas bort, men data bevaras vid målet.

Begäran:

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

Svar: Tom

Lista tabeller i ett Lakehouse

Begäran:

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

Svar:

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

API :et för listtabeller stöder sidnumrering. Ange maxResults per sida som en parameter till begäran och API:et svarar med den fortsättnings-URI som kan användas för att hämta nästa resultatsida.

Sidnumreringsexempel

Begäran:

GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables?maxResults=1 

Svar:

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

Läs in till tabeller

Det här API:et innehåller funktionerna i lakehouse-funktionen Load to Tables . Med det här API:et kan du läsa in CSV- och parquet-filer till nya eller befintliga Delta Lake-tabeller i lakehouse.

Det här API:et är asynkront, så tre steg krävs:

  1. Ladda upp filer och mappar till lakehouse-avsnittet Filer med onelake-API:er.
  2. Skicka inläsning till api-begäran för tabeller.
  3. Spåra status för åtgärden tills den har slutförts.

I följande avsnitt förutsätter vi att filerna redan har laddats upp.

Läs in api-begäran för tabeller

Parametern mode stöder overwrite och append åtgärder. pathType parameter som anges om du läser in enskilda filer eller alla filer från den angivna mappen. Både CSV och parquet stöds som filparameter format .

Det här exemplet laddar upp en CSV-fil med namnet demo.csv till en befintlig tabell med namnet demo.

Begäran:

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

Svarshuvudet innehåller URI:n för att avsöka statusen för de asynkrona åtgärderna. URI:n finns i variabeln Plats för svarshuvudet.

Platsvariabeln innehåller en URI enligt följande: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/32ad6d2a-82bb-420d-bb57-4620c8860373. Guid är åtgärds-ID 32ad6d2a-82bb-420d-bb57-4620c8860373 :t för att fråga efter status för körning av inläsning till tabellåtgärder enligt beskrivningen i nästa avsnitt.

Övervaka åtgärder för att läsa in till tabeller

När du har hämtat operationId från svaret på inläsningen till api-begäran för tabeller kör du följande begäran:

Begäran:

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

Svar:

{ 
    "Status": 3, 
    "CreatedTimeUtc": "", 
    "LastUpdatedTimeUtc": "", 
    "PercentComplete": 100, 
    "Error": null 
} 

Möjlig åtgärdsstatus för inläsning till tabeller:

  • 1 – Åtgärden startades inte
  • 2 – Körs
  • 3 – Lyckades
  • 4 – Det gick inte

Tabellunderhåll

Det här API:et beskriver funktionerna i underhållsfunktionen för Lakehouse-tabeller. Med det här API:et är det möjligt att använda bin-compaction, V-Order och orefererad rensning av gamla filer.

Det här API:et är asynkront, så två steg krävs:

  1. Skicka api-begäran om tabellunderhåll.
  2. Spåra status för åtgärden tills den har slutförts.

API-begäran för tabellunderhåll

Det här exemplet kör ett tabellunderhållsjobb som tillämpar V-Order på en tabell, samtidigt som Z-Order tipAmount tillämpas på kolumnen och åtgärden körs VACUUM med kvarhållning på sju dagar och en timme.

Begäran:

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

Svarshuvudet innehåller URI:n för att avsöka statusen för de asynkrona åtgärderna. URI:n finns i variabeln Plats för svarshuvudet.

Platsvariabeln innehåller en URI enligt följande: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/f2d65699-dd22-4889-980c-15226deb0e1b. Guid är åtgärds-ID f2d65699-dd22-4889-980c-15226deb0e1b :t för att fråga efter statusen för körning av tabellunderhållsåtgärder enligt beskrivningen i nästa avsnitt.

Övervaka underhållsåtgärder för tabeller

När du har hämtat operationId från svaret på inläsningen till tabellernas API-begäran kör du följande begäran:

Begäran:

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

Svar:

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

Möjlig åtgärdsstatus för tabellunderhåll:

  • NotStarted – Jobbet har inte startats
  • InProgress – pågående jobb
  • Slutfört – jobbet har slutförts
  • Misslyckades – jobbet misslyckades
  • Avbrutet – Jobbet avbröts
  • Deduplicerad – En instans av samma jobbtyp körs redan och den här jobbinstansen hoppas över