Aller au contenu principal

Utilisez les APIs de tableaux de bord pour créer et gérer des tableaux de bord

L'API REST Databricks comprend des outils de gestion spécifiquement conçus pour gérer les tableaux de bord AI/BI. Cette page explique comment utiliser les outils d'API pour créer et gérer des tableaux de bord. Pour effectuer ces tâches à l'aide de l'interface utilisateur, consultez Créer des tableaux de bord.

remarque

Les tableaux de bord AI/BI étaient auparavant connus sous le nom de tableaux de bord Lakeview. L'API Lakeview conserve toujours ce nom.

Prérequis

Obtenir un tableau de bord brouillon

Vous pouvez utiliser le dashboard_id pour extraire les détails du tableau de bord d'un brouillon de tableau de bord. L'exemple de requête et de réponse suivant inclut les détails de la version actuelle du brouillon de tableau de bord dans le Workspace.

Le champ etag suit la dernière version du tableau de bord. Vous pouvez l’utiliser pour vérifier la version avant d’effectuer des mises à jour supplémentaires.

GET /api/2.0/lakeview/dashboards/04aab30f99ea444490c10c85852f216c

Response:

{
"dashboard_id": "04aab30f99ea444490c10c85852f216c",
"display_name": "Monthly Traffic Report",
"path": "/path/to/dir/Monthly Traffic Report.lvdash.json",
"create_time": "2019-08-24T14:15:22Z",
"update_time": "2019-08-24T14:15:22Z",
"warehouse_id": "47bb1c472649e711",
"etag": "80611980",
"serialized_dashboard": "{\"pages\":[{\"name\":\"b532570b\",\"displayName\":\"New Page\"}]}",
"lifecycle_state": "ACTIVE",
"parent_path": "/path/to/dir"
}

Mettre à jour un tableau de bord

Vous pouvez utiliser le dashboard_id de la réponse précédente pour mettre à jour le nouveau AI/BI dashboard créé avec cette opération. L'exemple suivant présente un exemple de requête et de réponse. Le dashboard_id de l'exemple précédent est inclus en tant que paramètre de chemin.

Les display_name et warehouse_id ont été modifiés. Le tableau de bord mis à jour a un nouveau nom et un default warehouse attribué, comme indiqué dans la réponse. Le etag champ est facultatif. Si la version spécifiée dans le etag ne correspond pas à la version actuelle, la mise à jour est rejetée.

PATCH /api/2.0/lakeview/dashboards/04aab30f99ea444490c10c85852f216c

Request body:

{
"display_name": "Monthly Traffic Report 2",
"warehouse_id": "c03a4f8a7162bc9f",
"etag": "80611980"
}

Response:

{
"dashboard_id": "04aab30f99ea444490c10c85852f216c",
"display_name": "Monthly Traffic Report 2",
"path": "/path/to/dir/Monthly Traffic Report 2.lvdash.json",
"create_time": "2019-08-24T14:15:22Z",
"update_time": "2019-08-24T14:15:22Z",
"warehouse_id": "c03a4f8a7162bc9f",
"etag": "80611981",
"serialized_dashboard": "{\"pages\":[{\"name\":\"b532570b\",\"displayName\":\"New Page\"}]}",
"lifecycle_state": "ACTIVE",
"parent_path": "/path/to/dir"
}

Créer un tableau de bord

Vous pouvez utiliser l'Endpoint **Créer un tableau de bord** dans l'API Lakeview pour déplacer votre tableau de bord entre les Workspace. L'exemple suivant inclut un corps de requête d'exemple et une réponse qui crée un nouveau tableau de bord. La clé serialized_dashboard de l’exemple précédent contient tous les détails nécessaires pour créer un tableau de bord brouillon en double.

L'exemple inclut une nouvelle valeur warehouse_id correspondant à un warehouse dans le nouveau Workspace. Voir POST /api/2.0/lakeview/dashboards.

POST /api/2.0/lakeview/dashboards

Request body:

{
"display_name": "Monthly Traffic Report 2",
"warehouse_id": "5e2f98ab3476cfd0",
"serialized_dashboard": "{\"pages\":[{\"name\":\"b532570b\",\"displayName\":\"New Page\"}]}",
"parent_path": "/path/to/dir"
}

Response:

{
"dashboard_id": "1e23fd84b6ac7894e2b053907dca9b2f",
"display_name": "Monthly Traffic Report 2",
"path": "/path/to/dir/Monthly Traffic Report 2.lvdash.json",
"create_time": "2019-08-24T14:15:22Z",
"update_time": "2019-08-24T14:15:22Z",
"warehouse_id": "5e2f98ab3476cfd0",
"etag": "14350695",
"serialized_dashboard": "{\"pages\":[{\"name\":\"b532570b\",\"displayName\":\"New Page\"}]}",
"lifecycle_state": "ACTIVE",
"parent_path": "/path/to/dir"
}

La seule propriété requise dans le corps de la requête est un display_name. Cet outil peut copier le contenu du tableau de bord ou créer de nouveaux tableaux de bord vierges.

Publier un tableau de bord

Vous pouvez utiliser l'Endpoint Publier le tableau de bord pour publier un tableau de bord, définir les identifiants des spectateurs et remplacer le warehouse_id défini dans le tableau de bord brouillon. Vous devez inclure l'UUID du tableau de bord comme paramètre de chemin.

Le corps de la requête définit la propriété embed_credentials à false. Par default, embed_credentials est défini sur true. L'intégration des identifiants permet aux utilisateurs au niveau du compte de visualiser les données du tableau de bord. Voir Publier un tableau de bord. Une nouvelle valeur warehouse_id est omise, de sorte que le tableau de bord publié utilise le même warehouse attribué au tableau de bord brouillon.

POST /api/2.0/lakeview/dashboards/1e23fd84b6ac7894e2b053907dca9b2f/published

Request body:

{
"embed_credentials": false
}

Response:

{
"display_name": "Monthly Traffic Report 2",
"warehouse_id": "5e2f98ab3476cfd0",
"embed_credentials": false,
"revision_create_time": "2019-08-24T14:15:22Z"
}

Publier un tableau de bord avec des identifiants de service principal

Vous pouvez publier un tableau de bord avec des identifiants de Service Principal incorporés en vous authentifiant en tant que Service Principal lors de l'appel d'API. Lorsque vous publiez à l'aide du jeton d'un Service Principal, le tableau de bord est publié avec les données et les autorisations de compute de ce Service Principal, ce qui permet aux utilisateurs sans accès direct aux données de consulter le tableau de bord.

Avant la publication, le service principal doit disposer d'au moins des autorisations CAN MANAGE sur le tableau de bord, des privilèges SELECT sur toutes les sources de données utilisées dans le tableau de bord, et des autorisations CAN USE sur le warehouse. Pour plus de détails sur la création de services principaux et la génération de secrets OAuth, consultez Services principaux et Autoriser l'accès du service principal à Databricks avec OAuth.

Tout d'abord, authentifiez-vous en tant que Service Principal pour obtenir un jeton d'accès :

POST https://<databricks-instance>/oidc/v1/token

Request body (form-urlencoded):

grant_type=client_credentials&scope=all-apis

Authorization header:

Basic <base64-encoded-client-id:client-secret>

Response:

{
"access_token": "eyJraWQiOiJkYTA4ZTVjZ...",
"token_type": "Bearer",
"expires_in": 3600
}

Ensuite, utilisez le jeton d'accès pour publier le tableau de bord avec les identifiants du Service Principal :

POST /api/2.0/lakeview/dashboards/1e23fd84b6ac7894e2b053907dca9b2f/published

Authorization header:

Bearer <service-principal-access-token>

Request body:

{
"embed_credentials": true,
"warehouse_id": "5e2f98ab3476cfd0"
}

Response:

{
"display_name": "Monthly Traffic Report 2",
"warehouse_id": "5e2f98ab3476cfd0",
"embed_credentials": true,
"revision_create_time": "2019-08-24T14:15:22Z"
}

Lorsque embed_credentials est défini sur true, les utilisateurs qui consultent le tableau de bord utilisent les autorisations du Service Principal pour accéder aux données et aux ressources de compute. Les utilisateurs n'ont besoin d'autorisations que pour accéder à l'objet tableau de bord lui-même. Toutes les queries de tableau de bord s'exécutent à l'aide de l'identité du Service Principal, de sorte que les logs d'audit affichent le Service Principal comme exécuteur de query.

Obtenir le tableau de bord publié

La réponse de GET /api/2.0/lakeview/dashboards/{dashboard_id}/published est similaire à la réponse fournie dans l'exemple précédent. Le dashboard_id est inclus comme paramètre de chemin.

GET /api/2.0/lakeview/dashboards/1e23fd84b6ac7894e2b053907dca9b2f/published

Response:

{
"display_name": "Monthly Traffic Report 2",
"warehouse_id": "5e2f98ab3476cfd0",
"embed_credentials": false,
"revision_create_time": "2019-08-24T14:15:22Z"
}

Annuler la publication d'un tableau de bord

Le tableau de bord brouillon est conservé lorsque vous utilisez l'API Lakeview pour dépublier un tableau de bord. Cette requête supprime la version publiée du tableau de bord.

L'exemple suivant utilise le dashboard_id de l'exemple précédent. Une requête réussie renvoie un code de statut 200. Il n'y a pas de corps de réponse.

DELETE /api/2.0/lakeview/dashboards/1e23fd84b6ac7894e2b053907dca9b2f/published

Corbeille - Tableau de bord

Utilisez DELETE /api/2.0/lakeview/dashboards/{dashboard_id} pour envoyer un brouillon de tableau de bord Lakeview à la corbeille. Le tableau de bord peut toujours être récupéré.

L'exemple suivant utilise le dashboard_id de l'exemple précédent. Une requête réussie renvoie un code de statut 200. Il n'y a pas de corps de réponse.

DELETE /api/2.0/lakeview/dashboards/1e23fd84b6ac7894e2b053907dca9b2f
remarque

Pour effectuer une suppression permanente, utilisez POST /api.2.0/workspace/delete

Étapes suivantes