Del via


Administrer lakehouse i Microsoft Fabric med REST API

Microsoft Fabric Rest API leverer tjenesteslutpunkt for CRUD-handlingen for et Fabric-element. Følgende handlinger er tilgængelige for Lakehouse:

Handling Beskrivelse
Opret Opretter et lakehouse i et arbejdsområde. Et SQL Analytics-slutpunkt klargøres også sammen med lakehouse.
Opdater Opdaterer navnet på et lakehouse og SQL Analytics-slutpunktet.
Delete Sletter lakehouse og det tilknyttede SQL Analytics-slutpunkt.
Hent egenskaber Henter egenskaberne for et lakehouse og SQL Analytics-slutpunktet.
Vis tabeller Vis tabeller i lakehouse.
Tabelindlæsning Opretter deltatabeller ud fra CSV- og parquetfiler og mapper.
Tabelvedligeholdelse Anvend bin-compaction, V-Order og fjernelse af ikke-refererede og gamle filer.

Forudsætninger

  • Hvis du vil bruge Fabric REST-API'en, skal du først hente et Microsoft Entra-token til Fabric-tjenesten. Brug derefter dette token i godkendelsesheaderen for API-kaldet.

  • Microsoft Fabric Rest API definerer et samlet slutpunkt for handlinger. Slutpunktet er https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items. Pladsholderne {workspaceId} og {lakehouseId} skal erstattes med de relevante værdier, når du udsteder de kommandoer, der er eksemplificeret i denne artikel.

Lakehouse CRUD

Brug følgende API til at udføre oprettelse, ændringer og fjernelse af lakehouse i et arbejdsområde.

Opret et lakehouse

Bøn:

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

Opdater et lakehouse

Opdater beskrivelsen, og omdøb Lakehouse.

Bøn:

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

Hent lakehouse-egenskaber

Bøn:

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

Slet et lakehouse

Når du sletter et lakehouse, slettes objektets metadata og data. Genvejsreferencer slettes, men dataene bevares på destinationen.

Bøn:

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

Svar: Tom

Vis tabeller i et lakehouse

Bøn:

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'en til listetabeller understøtter sideinddeling. Angiv maxResults pr. side som en parameter til anmodningen, og API'en svarer med den fortsættelses-URI, der kan bruges til at få den næste side med resultater.

Eksempel på sideinddeling

Bøn:

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

Indlæs i tabeller

Denne API viser egenskaberne for funktionen Indlæs til tabeller lakehouse. Med denne API er det muligt at indlæse CSV- og parquetfiler i nye eller eksisterende delta lake-tabeller i lakehouse.

Denne API er asynkron, så der kræves tre trin:

  1. Overfør filer og mapper til afsnittet Filer i Lakehouse ved hjælp af OneLake-API'er.
  2. Send indlæsning til API-anmodning om tabeller.
  3. Spor status for handlingen, indtil den er fuldført.

I følgende afsnit antages det, at filerne allerede er overført.

Indlæs i API-anmodning om tabeller

Parameteren mode understøtter overwrite og append -handlinger. pathType parameter, der er angivet, hvis individuelle filer eller alle filer fra den angivne mappe indlæses. Både CSV og parquet understøttes som filparameteren format .

I dette eksempel overføres en CSV-fil med navnet demo.csv til en eksisterende tabel med navnet demo.

Bøn:

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

Svarheaderen indeholder URI'en til afstemning af status for de asynkrone handlinger. URI'en er i variablen Location for svarheaderen.

Variablen Location indeholder en URI som følger: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/32ad6d2a-82bb-420d-bb57-4620c8860373. GUID'et 32ad6d2a-82bb-420d-bb57-4620c8860373 er handlings-id'et til at forespørge om status for kørsel af indlæsning i tabeller, som beskrevet i næste afsnit.

Overvågning af indlæsning af tabelhandlinger

Når du har hentet operationId fra svaret på API-anmodningen om indlæsning af tabeller, skal du udføre følgende anmodning:

Bøn:

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

Svar:

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

Mulig handlingsstatus for indlæsning i tabeller:

  • 1 – Handlingen er ikke startet
  • 2 – kører
  • 3 – gennemført
  • 4 - Mislykkedes

Tabelvedligeholdelse

Denne API viser egenskaberne i vedligeholdelsesfunktionen for Lakehouse-tabellen. Med denne API er det muligt at anvende bin-compaction, V-Order og ikke-refererede gamle filer oprydning.

Denne API er asynkron, så der kræves to trin:

  1. Send API-anmodning om vedligeholdelse af tabel.
  2. Spor status for handlingen, indtil den er fuldført.

API-anmodning om tabelvedligeholdelse

I dette eksempel udføres et tabelvedligeholdelsesjob, der anvender V-Order på en tabel, samtidig med at Z-Order anvendes på tipAmount kolonnen og udfører VACUUM handlingen med en opbevaring på syv dage og én time.

Bøn:

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

Svarheaderen indeholder URI'en til afstemning af status for de asynkrone handlinger. URI'en er i variablen Location for svarheaderen.

Variablen Location indeholder en URI som følger: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/f2d65699-dd22-4889-980c-15226deb0e1b. GUID'et f2d65699-dd22-4889-980c-15226deb0e1b er handlings-id'et til at forespørge om status for kørende handlinger til vedligeholdelse af tabeller, som beskrevet i næste afsnit.

Overvågning af vedligeholdelseshandlinger for tabel

Når du har hentet operationId fra svaret på API-anmodningen om indlæsning af tabeller, skal du udføre følgende anmodning:

Bøn:

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

Mulig handlingsstatus for tabelvedligeholdelse:

  • NotStarted – Jobbet er ikke startet
  • InProgress – igangværende job
  • Fuldført - jobbet er fuldført
  • Mislykket - jobbet mislykkedes
  • Annulleret - job annulleret
  • Deduped – Der kører allerede en forekomst af samme jobtype, og denne jobforekomst springes over