Lakehouse beheren in Microsoft Fabric met REST API
De Microsoft Fabric Rest API biedt een service-eindpunt voor de CRUD-bewerking van een Fabric-item. De volgende acties zijn beschikbaar voor lakehouse:
Actie | Beschrijving |
---|---|
Create | Hiermee maakt u een lakehouse in een werkruimte. Een SQL Analytics-eindpunt wordt ook ingericht samen met lakehouse. |
Bijwerken | Hiermee werkt u de naam van een lakehouse en het SQL Analytics-eindpunt bij. |
Delete | Hiermee verwijdert u Lakehouse en het bijbehorende SQL-analyse-eindpunt. |
Eigenschappen ophalen | Hiermee haalt u de eigenschappen van een lakehouse en het SQL-analyse-eindpunt op. |
Tabellen weergeven | Lijst met tabellen in het lakehouse. |
Tabel laden | Hiermee maakt u deltatabellen op basis van CSV- en Parquet-bestanden en -mappen. |
Tabelonderhoud | Pas bin-compressie, V-Volgorde en verwijdering van niet-deductie- en oude bestanden toe. |
Vereisten
Als u de Fabric REST API wilt gebruiken, moet u eerst een Microsoft Entra-token voor fabric-service ophalen. Gebruik dat token vervolgens in de autorisatieheader van de API-aanroep.
Microsoft Fabric Rest API definieert een geïntegreerd eindpunt voor bewerkingen. Het eindpunt is
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
. De tijdelijke aanduidingen{workspaceId}
en{lakehouseId}
moeten worden vervangen door de juiste waarden bij het uitgeven van de opdrachten die in dit artikel worden geïllustreerd.
Lakehouse CRUD
Gebruik de volgende API om het lakehouse in een werkruimte te maken, te wijzigen en te verwijderen.
Een lakehouse maken
Verzoek:
POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
{
"displayName": "demo",
"type": "Lakehouse"
}
Antwoord:
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "demo",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Een lakehouse bijwerken
Werk de beschrijving bij en wijzig de naam van Lakehouse.
Verzoek:
PATCH https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/dc39f96a-47d7-4c2d-9358-740f50c0aa31
{
"displayName": "newname",
"description": "Item's New description"
}
Antwoord:
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "newname",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Lakehouse-eigenschappen ophalen
Verzoek:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}
Antwoord:
{
"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"
}
}
}
Een lakehouse verwijderen
Wanneer u een lakehouse verwijdert, worden de metagegevens en gegevens van het object verwijderd. Snelkoppelingsverwijzingen worden verwijderd, maar de gegevens blijven behouden op het doel.
Verzoek:
DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}
Antwoord: Leeg
Tabellen weergeven in een Lakehouse
Verzoek:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables
Antwoord:
{
"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"
}
]
}
De API voor lijsttabellen ondersteunt paginering. Geef maxResults per pagina op als parameter voor de aanvraag en de API reageert met de vervolg-URI die kan worden gebruikt om de volgende pagina met resultaten op te halen.
Voorbeeld van paginering
Verzoek:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables?maxResults=1
Antwoord:
{
"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"
}
]
}
Laden naar tabellen
Deze API biedt de mogelijkheden van de functie Load to Tables Lakehouse. Met deze API kunt u CSV- en Parquet-bestanden laden naar nieuwe of bestaande Delta Lake-tabellen in lakehouse.
Deze API is asynchroon, dus er zijn drie stappen vereist:
- Upload bestanden en mappen naar de sectie Bestanden van Lakehouse met behulp van OneLake-API's.
- Laad de API-aanvraag voor tabellen in.
- Houd de status van de bewerking bij totdat deze is voltooid.
In de volgende secties wordt ervan uitgegaan dat de bestanden al zijn geüpload.
Api-aanvraag voor tabellen laden
De mode
parameter ondersteunt overwrite
en append
bewerkingen.
pathType
parameter opgegeven bij het laden van afzonderlijke bestanden of alle bestanden uit de opgegeven map.
parquet
Beide CSV
worden ondersteund als de bestandsparameterformat
.
In dit voorbeeld wordt een CSV-bestand met de naam geüpload demo.csv
naar een bestaande tabel met de naam demo
.
Verzoek:
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"
}
}
De antwoordheader bevat de URI om de status van de asynchrone bewerkingen te peilen. De URI bevindt zich in de locatievariabele van de antwoordheader.
De locatievariabele bevat een URI als volgt: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/32ad6d2a-82bb-420d-bb57-4620c8860373
De guid 32ad6d2a-82bb-420d-bb57-4620c8860373
is de bewerkings-id om een query uit te voeren op de status van het uitvoeren van belasting naar tabellen, zoals beschreven in de volgende sectie.
Load to tables operations bewaken
Nadat u de operationId hebt vastgelegd vanuit het antwoord van de load to tables API-aanvraag, voert u de volgende aanvraag uit:
Verzoek:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/{operationId}
Antwoord:
{
"Status": 3,
"CreatedTimeUtc": "",
"LastUpdatedTimeUtc": "",
"PercentComplete": 100,
"Error": null
}
Mogelijke bewerkingsstatus voor laden in tabellen:
- 1 - Bewerking niet gestart
- 2 - Wordt uitgevoerd
- 3 - Geslaagd
- 4 - Mislukt
Tabelonderhoud
Deze API biedt de mogelijkheden van de lakehouse-tabelonderhoudsfunctie. Met deze API is het mogelijk om bin-compactie, V-Order en niet-deductie oude bestanden op te ruimen.
Deze API is asynchroon, dus er zijn twee stappen vereist:
- Dien de API-aanvraag voor tabelonderhoud in.
- Houd de status van de bewerking bij totdat deze is voltooid.
Api-aanvraag voor tabelonderhoud
In dit voorbeeld wordt een tabelonderhoudstaak uitgevoerd die V-Order toepast op een tabel, terwijl ook Z-Order wordt toegepast op de tipAmount
kolom en de VACUUM
bewerking wordt uitgevoerd met een bewaarperiode van zeven dagen en één uur.
Verzoek:
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"
}
}
}
De antwoordheader bevat de URI om de status van de asynchrone bewerkingen te peilen. De URI bevindt zich in de locatievariabele van de antwoordheader.
De locatievariabele bevat een URI als volgt: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/f2d65699-dd22-4889-980c-15226deb0e1b
De guid f2d65699-dd22-4889-980c-15226deb0e1b
is de bewerkings-id om een query uit te voeren op de status van actieve tabelonderhoudsbewerkingen, zoals beschreven in de volgende sectie.
Onderhoudsbewerkingen voor tabellen bewaken
Nadat u operationId hebt vastgelegd vanuit het antwoord van de load to tables API-aanvraag, voert u de volgende aanvraag uit:
Verzoek:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/{operationId}
Antwoord:
{
"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
}
}
}
}
Mogelijke bewerkingsstatus voor tabelonderhoud:
- NotStarted - Taak niet gestart
- InProgress - Taak wordt uitgevoerd
- Voltooid - Taak voltooid
- Mislukt - Taak is mislukt
- Geannuleerd - Taak geannuleerd
- Ontdubbeld: er wordt al een exemplaar van hetzelfde taaktype uitgevoerd en dit taakexemplaren worden overgeslagen