共用方式為


使用儀錶板 API 來建立和管理儀錶板

Databricks REST API 包含特別用來管理 AI/BI 儀錶板的管理工具。 本文示範如何從現有的舊版儀錶板建立新的 AI/BI 儀錶板。 然後,它會示範如何使用 API 工具來管理儀錶板。

注意

AI/BI 儀錶板先前稱為 Lakeview 儀錶板。 Lakeview API 仍會保留該名稱。

先決條件

遷移儀表板

您可以從現有的舊版儀錶板建立新的 AI/BI 儀錶板。 Lakeview API 中的 Migrate 儀表板 端點需要 source_dashboard_id。 您可以選擇性地包含顯示名稱和您要儲存新儀錶板的路徑。

獲取 Databricks SQL 儀錶板

若要取得 source_dashboard_id,請使用 Databricks SQL 儀錶板 API 來取得工作區中所有儀錶板的清單。 results 清單中的每個儀錶板物件都包含一個 UUID,您可以利用它在 Azure Databricks REST API 服務中參照到過去的儀錶板。

下列範例示範 取得儀錶板物件 端點的範例要求和回應。 為了清楚起見,已省略一些回應詳細數據。 如需此端點和範例回應的完整描述,請參閱 GET /api/workspace/dashboards/list

舊版儀錶板的 UUID 是從 id中傳回之物件清單的最上層 results。 針對舊版儀錶板,UUID(唯一識別碼)看起來像 4e443c27-9f61-4f2e-a12d-ea5668460bf1

GET /api/workspace/dashboards/list

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,來建立一個自動轉換為新 AI/BI 儀錶板的副本。 這個工具的運作方式類似於UI中可用的 複製到 AI/BI 儀表板 工具。 請參閱 將舊版儀錶板複製到 AI/BI 儀錶板 瞭解如何使用 Azure Databricks UI 執行這項作業。

在要求的本文中需要提供您想要轉換的舊版儀錶板的 UUID。 您可以選擇性地包含新的 display_name 值和 parent_path,以識別您要儲存已轉換儀錶板的資料夾工作區路徑。

回應包含 dashboard_id,這是新儀錶板的 UUID。 AI/BI 儀錶板的 UUID 是 32 位數的英數位元值,例如 04aab30f99ea444490c10c85852f216c。 您可以使用它來識別 Lakeview 命名空間中的此儀錶板,以及在不同的 Azure 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/workspace/dashboards/list/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 來更新使用該作業建立的新 AI/BI 儀錶板。 下列範例顯示範例要求和回應。 上一個範例中的 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_credentials 會設定為 true。 內嵌認證可讓帳戶層級用戶檢視儀錶板數據。 請參閱 發佈儀錶板。 由於省略了新的 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/workspace/delete

後續步驟