Lakeview APIを使用してダッシュボードを作成および管理する

Lakeview APIs Lakeviewダッシュボードを管理するための専用の管理ツールを提供します。 この記事では、既存のレガシー ダッシュボードから新しい Lakeview ダッシュボードを作成する方法を説明します。 次に、Lakeview API を使用してダッシュボードを管理する方法を示します。

前提条件

ダッシュボードの移行

既存のレガシー ダッシュボードから新しい Lakeview ダッシュボードを作成できます。 Lakeview API のMigrate ダッシュボードエンドポイントにはsource_dashboard_id必要です。 必要に応じて、表示名と、新しいダッシュボードを保存するパスを含めることができます。

Databricks SQLダッシュボードを入手する

source_dashboard_idを取得するには、Databricks SQL ダッシュボード API を使用して、ワークスペース内のすべてのダッシュボードのリストを取得します。 resultsリスト内の各ダッシュボード オブジェクトには、Databricks REST API サービス全体で従来のダッシュボードを参照するために使用できる UUID が含まれています。

次の例は、 Get dashboard objects エンドポイントの要求と応答の例を示しています。 わかりやすくするために、一部の回答の詳細は省略されています。 GET /api/2.0/preview/sql/dashboards を参照してください。 このエンドポイントの詳細な説明と応答の例を参照してください。

レガシーダッシュボードの UUID は、 resultsで返されるオブジェクトのリストの最上位からidです。従来のダッシュボードの場合、UUID は 4e443c27-9f61-4f2e-a12d-ea5668460bf1のようになります。

GET /api/2.0/preview/sql/dashboards

Query Parameters:

{
"page_size": <optional>,
"page": <optional>,
"order": <optional>
"q": <optional>
}

Response:

{
  "count": 1,
  "page": 1,
  "page_size": 25,
  "results": [
    {
      "id": "4e443c27-9f61-4f2e-a12d-ea5668460bf1",
      "slug": "sales-dashboard",
      "parent": "folders/2025532471912059",
      ...
    }
  ]
}

レガシーダッシュボードの移行

レガシー ダッシュボードに関連付けられた UUID を使用して、新しい Lakeview ダッシュボードに自動的に変換されるコピーを作成します。 これは、UI で利用できるClone to Lakeviewツールと同様に機能します。 Databricks UI を使用してこの操作を実行する方法については、「レガシー ダッシュボードを Lakeview ダッシュボードに複製する」を参照してください。

変換するレガシ ダッシュボードの UUID は、要求本文で必要です。 必要に応じて、新しいdisplay_name値と、変換されたダッシュボードを保存するフォルダーのワークスペース パスを識別するparent_pathを含めることができます。

応答には、新しいダッシュボードの UUID である dashboard_idが含まれます。 Lakeview ダッシュボードの UUID は、 04aab30f99ea444490c10c85852f216cのような 32 桁の英数字の値です。 これを使用して、Lakeview 名前空間内およびさまざまな Databricks REST API サービス間でこのダッシュボードを識別できます。

次の例は、要求と応答のサンプルを示しています。 POST /api/2.0/ Lakeview /dashboards/migrate を参照してください。

POST /api/2.0/lakeview/dashboards/migrate

Request body parameters:
{
  "source_dashboard_id": "4e443c27-9f61-4f2e-a12d-ea5668460bf1",
  "display_name": "Monthly Traffic Report",
  "parent_path": "/path/to/dir"
}

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

下書きダッシュボードを取得する

dashboard_idを使用して、下書きダッシュボードからダッシュボードの詳細を取得できます。次のサンプルのリクエストと応答には、ワークスペース内のドラフト ダッシュボードの現在のバージョンの詳細が含まれています。

[ etag ] フィールドは、ダッシュボードの最新バージョンを追跡します。 これを使用して、追加の更新を行う前にバージョンを確認できます。

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

ダッシュボードを更新する

前の応答のdashboard_idを使用して、その操作で作成された新しい Lakeview ダッシュボードを更新できます。 次の例は、要求と応答のサンプルを示しています。 前の例のdashboard_idはパスとして含まれています。

display_namewarehouse_idが変更されました。応答に示されているように、更新されたダッシュボードには新しい名前と割り当てられたデフォルトのウェアハウスがあります。 etag フィールドはオプションです。etagで指定されたバージョンが現在のバージョンと一致しない場合、更新は拒否されます。

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

ダッシュボードを作成する

Lakeview API のダッシュボード作成エンドポイントを使用して、ダッシュボードをワークスペース間で移動できます。 次の例には、新しいダッシュボードを作成する要求本文と応答のサンプルが含まれています。 前の例の serialized_dashboard キーには、複製する下書きダッシュボードを作成するために必要なすべての詳細が含まれています。

サンプルには、新しいワークスペース内のウェアハウスに対応する新しいwarehouse_id値が含まれています。 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"
}

要求本文の唯一の必須プロパティは display_nameです。 このツールでは、ダッシュボードのコンテンツをコピーしたり、新しい空白のダッシュボードを作成したりできます。

ダッシュボードの公開

[ダッシュボードの公開] エンドポイントを使用して、ダッシュボードの公開、閲覧者の認証情報の設定、下書きダッシュボードで設定されたwarehouse_idの上書きを行うことができます。ダッシュボードの UUID をパスとして含める必要があります。

要求本文は、 embed_credentials プロパティを falseに設定します。 デフォルトでは、 embed_credentialstrueに設定されています。 資格情報を埋め込むと、アカウント レベルのユーザーがダッシュボード データを表示できるようになります。 「 ダッシュボードの公開」を参照してください。 新しいwarehouse_id値が省略されているため、公開されたダッシュボードではドラフト ダッシュボードに割り当てられた同じウェアハウスが使用されます。

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

公開済みダッシュボードを取得する

GET /api/2.0/ Lakeview /dashboards/{dashboard_id}/publishedからの応答は、前の例で提供された応答と似ています。 dashboard_idはパスとして含まれています。

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

ダッシュボードの非公開

Lakeview API を使用してダッシュボードを非公開にすると、ドラフト ダッシュボードは保持されます。 この要求により、ダッシュボードの公開バージョンが削除されます。

次の例では、前の例の dashboard_id を使用します。 要求が成功すると、 200 状態コードが生成されます。 応答本文はありません。

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

ダッシュボードをごみ箱へ

ドラフトダッシュボードをゴミ箱に送信するには 、DELETE /api/2.0/ Lakeview /dashboards/{dashboard_id}を使用します。 ダッシュボードは引き続き復元できます。

次の例では、前の例の dashboard_id を使用します。 要求が成功すると、 200 状態コードが生成されます。 応答本文はありません。

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

注:

永久削除を実行するには、POST /api.2.0/ワークスペース/deleteを使用します。

次のステップ