Διαχείριση lakehouse στο Microsoft Fabric με το REST API
Το Microsoft Fabric Rest API παρέχει τελικό σημείο υπηρεσίας για τη λειτουργία CRUD ενός στοιχείου Fabric. Οι ακόλουθες ενέργειες είναι διαθέσιμες για το Lakehouse:
Ενέργεια | Περιγραφή |
---|---|
Δημιουργία | Δημιουργεί μια λίμνη μέσα σε έναν χώρο εργασίας. Ένα τελικό σημείο ανάλυσης SQL παρέχεται επίσης μαζί με το lakehouse. |
Ενημέρωση | Ενημερώνει το όνομα μιας λίμνης και το τελικό σημείο ανάλυσης SQL. |
Delete | Διαγράφει τη λίμνη και το συσχετισμένο τελικό σημείο ανάλυσης SQL. |
Λήψη ιδιοτήτων | Λαμβάνει τις ιδιότητες μιας λίμνης και του τελικού σημείου ανάλυσης SQL. |
Πίνακες λίστας | Λίστα πινάκων στο lakehouse. |
Φόρτωση πίνακα | Δημιουργεί πίνακες δέλτα από αρχεία CSV και parquet και φακέλους. |
Συντήρηση πίνακα | Εφαρμόστε τη συμπύκνωση σε κάδους, τη σειρά V και την κατάργηση των μη συμπερασμάτων και παλαιών αρχείων. |
Προαπαιτούμενα στοιχεία
Για να χρησιμοποιήσετε το REST API Fabric, πρέπει πρώτα να λάβετε ένα διακριτικό Microsoft Entra για την υπηρεσία Fabric. Στη συνέχεια, χρησιμοποιήστε αυτό το διακριτικό στην κεφαλίδα εξουσιοδότησης της κλήσης API.
Το Microsoft Fabric Rest API ορίζει ένα ενοποιημένο τελικό σημείο για λειτουργίες. Το τελικό σημείο είναι
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
. Τα σύμβολα κράτησης{workspaceId}
θέσης και{lakehouseId}
θα πρέπει να αντικατασταθούν με τις κατάλληλες τιμές κατά την έκδοση των εντολών παράδειγμα σε αυτό το άρθρο.
Lakehouse CRUD
Χρησιμοποιήστε το παρακάτω API για να εκτελέσετε δημιουργία, τροποποιήσεις και κατάργηση του lakehouse μέσα σε έναν χώρο εργασίας.
Δημιουργία lakehouse
Αίτηση:
POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
{
"displayName": "demo",
"type": "Lakehouse"
}
Απάντηση:
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "demo",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Ενημέρωση lakehouse
Ενημερώστε την περιγραφή και μετονομάστε το Lakehouse.
Αίτηση:
PATCH https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/dc39f96a-47d7-4c2d-9358-740f50c0aa31
{
"displayName": "newname",
"description": "Item's New description"
}
Απάντηση:
{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "newname",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}
Λήψη ιδιοτήτων lakehouse
Αίτηση:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}
Απάντηση:
{
"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"
}
}
}
Διαγραφή λίμνης
Όταν διαγράφετε μια λίμνη, διαγράφονται τα μετα-δεδομένα και τα δεδομένα αντικειμένου. Οι αναφορές συντομεύσεων διαγράφονται, αλλά τα δεδομένα διατηρούνται στον προορισμό.
Αίτηση:
DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}
Απάντηση: Κενό
Λίστα πινάκων σε ένα Lakehouse
Αίτηση:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables
Απάντηση:
{
"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 πινάκων λίστας υποστηρίζει τη σελιδοποίηση. Εισαγάγετε maxResults ανά σελίδα ως παράμετρο στην αίτηση και το API αποκρίνεται με το URI συνέχειας που μπορεί να χρησιμοποιηθεί για τη λήψη της επόμενης σελίδας αποτελεσμάτων.
Παράδειγμα σελιδοποίησης
Αίτηση:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/tables?maxResults=1
Απάντηση:
{
"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"
}
]
}
Φόρτωση σε πίνακες
Αυτό το API εμφανίζει τις δυνατότητες της δυνατότητας Φόρτωση σε πίνακες lakehouse. Με αυτό το API, μπορείτε να φορτώσετε αρχεία CSV και parquet σε νέους ή υπάρχοντες πίνακες λιμνών δέλτα στο lakehouse.
Αυτό το API είναι ασύγχρονο, επομένως απαιτούνται τρία βήματα:
- Αποστείλετε αρχεία και φακέλους στην ενότητα Αρχεία του Lakehouse χρησιμοποιώντας API OneLake.
- Υποβάλετε αίτηση API φόρτωσης σε πίνακες.
- Παρακολουθήστε την κατάσταση της λειτουργίας μέχρι την ολοκλήρωση.
Οι ενότητες που ακολουθούν προϋποθέτουν ότι τα αρχεία έχουν ήδη αποσταλεί.
Φόρτωση σε πίνακες Αίτηση API
Η mode
παράμετρος overwrite
υποστηρίζει και append
λειτουργίες.
pathType
η παράμετρος που καθορίστηκε εάν φορτώνεται μεμονωμένα αρχεία ή όλα τα αρχεία από τον καθορισμένο φάκελο.
Αμφότερες οι CSV
και parquet
υποστηρίζονται ως η παράμετρος αρχείου format
.
Αυτό το παράδειγμα αποστέλλει ένα αρχείο CSV με την ονομασία demo.csv
σε έναν υπάρχοντα πίνακα με την ονομασία demo
.
Αίτηση:
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"
}
}
Η κεφαλίδα απόκρισης περιέχει το URI για τη δημοσκόπηση της κατάστασης των ασύγχρονων λειτουργιών. Το URI είναι στη μεταβλητή Location της κεφαλίδας απόκρισης.
Η μεταβλητή Location περιέχει ένα URI ως εξής: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/32ad6d2a-82bb-420d-bb57-4620c8860373
. Το guid 32ad6d2a-82bb-420d-bb57-4620c8860373
είναι το αναγνωριστικό λειτουργίας για την υποβολή ερωτήματος για την κατάσταση εκτέλεσης του φόρτου σε λειτουργίες πινάκων, όπως περιγράφεται στην επόμενη ενότητα.
Παρακολούθηση λειτουργιών φόρτωσης σε πίνακες
Μετά την καταγραφή του operationId από την απόκριση της αίτησης API φόρτωσης σε πίνακες, εκτελέστε την ακόλουθη αίτηση:
Αίτηση:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/operations/{operationId}
Απάντηση:
{
"Status": 3,
"CreatedTimeUtc": "",
"LastUpdatedTimeUtc": "",
"PercentComplete": 100,
"Error": null
}
Κατάσταση πιθανής λειτουργίας για φόρτωση σε πίνακες:
- 1 - Η λειτουργία δεν ξεκίνησε
- 2 - Εκτέλεση
- 3 - Επιτυχία
- 4 - Αποτυχία
Συντήρηση πίνακα
Αυτό το API εμφανίζει τις δυνατότητες του χαρακτηριστικού συντήρησης πίνακα Lakehouse. Με αυτό το API, μπορείτε να εφαρμόσετε συμπύκνωση κάδου, σειρά V και εκκαθάριση παλαιών αρχείων που δεν έχουν προστεθεί.
Αυτό το API είναι ασύγχρονο, επομένως απαιτούνται δύο βήματα:
- Υποβάλετε αίτηση API συντήρησης πίνακα.
- Παρακολουθήστε την κατάσταση της λειτουργίας μέχρι την ολοκλήρωση.
Αίτηση API συντήρησης πίνακα
Αυτό το παράδειγμα εκτελεί μια εργασία συντήρησης πίνακα που εφαρμόζει V-Order σε έναν πίνακα, εφαρμόζοντας παράλληλα τη tipAmount
σειρά Z στη στήλη και εκτελώντας τη VACUUM
λειτουργία με διατήρηση επτά ημερών και μίας ώρας.
Αίτηση:
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"
}
}
}
Η κεφαλίδα απόκρισης περιέχει το URI για τη δημοσκόπηση της κατάστασης των ασύγχρονων λειτουργιών. Το URI είναι στη μεταβλητή Location της κεφαλίδας απόκρισης.
Η μεταβλητή Location περιέχει ένα URI ως εξής: https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/f2d65699-dd22-4889-980c-15226deb0e1b
. Το guid f2d65699-dd22-4889-980c-15226deb0e1b
είναι το αναγνωριστικό λειτουργίας για την υποβολή ερωτήματος για την κατάσταση εκτέλεσης λειτουργιών συντήρησης πίνακα, όπως περιγράφεται στην επόμενη ενότητα.
Παρακολούθηση λειτουργιών συντήρησης πίνακα
Μετά την καταγραφή του operationId από την απόκριση της αίτησης API φόρτωσης σε πίνακες, εκτελέστε την ακόλουθη αίτηση:
Αίτηση:
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jobs/instances/{operationId}
Απάντηση:
{
"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
}
}
}
}
Πιθανή κατάσταση λειτουργίας για συντήρηση πίνακα:
- NotStarted - Η εργασία δεν ξεκίνησε
- InProgress - Εργασία σε εξέλιξη
- Ολοκληρώθηκε - Η εργασία ολοκληρώθηκε
- Αποτυχία - Η εργασία απέτυχε
- Ακυρώθηκε - Η εργασία ακυρώθηκε
- Deduped - Μια παρουσία του ίδιου τύπου εργασίας εκτελείται ήδη και παραλείπεται αυτή η παρουσία εργασίας