教學課程:使用工作區 API 管理儀錶板
本教學課程示範如何使用 Lakeview API 和工作區 API 來管理儀錶板。 每個步驟都包含範例要求和回應,以及有關如何一起使用 API 工具和屬性的說明。 每個步驟都可以單獨參考。 遵循所有步驟,引導您完成完整的工作流程。
注意
此工作流程會呼叫工作區 API,以將 Lakeview 儀錶板擷取為一般工作區物件。
必要條件
- 您需要個人存取令牌才能與工作區連線。 請參閱 Azure Databricks 個人存取令牌驗證。
- 您需要您想要存取之工作區的工作區識別碼。 請參閱 工作區實例名稱、URL 和識別碼
- 熟悉 Databricks REST API 參考。
步驟 1:探索工作區目錄
工作區清單 API GET /api/2.0/workspace/list 可讓您探索工作區的目錄結構。 例如,您可以擷取目前工作區中所有檔案和目錄的清單。
在下列範例中, path
要求中的 屬性會指向儲存在使用者主資料夾中的資料夾 examples_folder
。 用戶名稱會在路徑 first.last@example.com
中提供。
回應顯示資料夾包含文字檔、目錄和 Lakeview 儀錶板。
GET /api/2.0/workspace/list
Query Parameters:
{
"path": "/Users/first.last@example.com/examples_folder"
}
Response:
{
"objects": [
{
"object_type": "FILE",
"path": "/Users/first.last@example.com/examples_folder/myfile.txt",
"created_at": 1706822278103,
"modified_at": 1706822278103,
"object_id": 3976707922053539,
"resource_id": "3976707922053539"
},
{
"object_type": "DIRECTORY",
"path": "/Users/first.last@example.com/examples_folder/another_folder",
"object_id": 2514959868792596,
"resource_id": "2514959868792596"
},
{
"object_type": "DASHBOARD",
"path": "/Users/first.last@example.com/examples_folder/mydashboard.lvdash.json",
"object_id": 7944020886653361,
"resource_id": "01eec14769f616949d7a44244a53ed10"
}
]
}
步驟 2:匯出儀錶板
工作區匯出 API GET /api/2.0/workspace/export 可讓您將儀錶板的內容導出為檔案。 Lakeview 儀錶板檔案會反映儀錶板的草稿版本。 下列範例中的回應會顯示最小儀錶板定義的內容。 若要探索並瞭解更多串行化詳細數據,請嘗試匯出一些您自己的儀錶板。
下載導出的檔案
下列範例示範如何使用 API 下載儀錶板檔案。
"path"
此範例中的 屬性以擴展名 lvdash.json
為 、Lakeview 儀錶板結尾。 檔名,如工作區中所示,位於該擴展名之前。 在這裡情況下,它是 mydashboard
。
此外, "direct_download"
這個要求的 屬性會設定為 true
,因此響應是導出的檔案本身。
注意
回應 "displayName"
的 pages 屬性中顯示的 屬性不會反映工作區中儀錶板的可見名稱。
GET /api/2.0/workspace/export
Query parameters:
{
"path": "/Users/first.last@example.com/examples_folder/mydashboard.lvdash.json",
"direct_download": true
}
Response:
{
"pages": [
{
"name": "880de22a",
"displayName": "New Page"
}
]
}
編碼導出的檔案
下列程式代碼顯示屬性設定為 false 的 "direct_download"
範例回應。 回應會以base64編碼字串的形式包含內容。
GET /api/2.0/workspace/export
Query parameters:
{
"path": "/Users/first.last@example.com/examples_folder/mydashboard.lvdash.json",
"direct_download": false
}
Response:
{
"content": "IORd/DYYsCNElspwM9XBZS/i5Z9dYgW5SkLpKJs48dR5p5KkIW8OmEHU8lx6CZotiCDS9hkppQG=",
"file_type": "lvdash.json"
}
步驟 3:匯入儀錶板
您可以使用工作區匯入 API POST /api/2.0/workspace/import 將草稿儀錶板匯入工作區。 例如,導出編碼的檔案之後,如上一個範例所示,您可以將該儀錶板匯入至新的工作區。
若要將匯入辨識為 Lakeview 儀錶板,必須設定兩個參數:
"format"
:“AUTO” - 此設定可讓系統自動偵測資產類型。"path"
:必須包含以 「.lvdash.json」 結尾的檔案路徑。
重要
如果未正確設定這些設定,匯入可能會成功,但儀錶板會被視為一般檔案。
下列範例顯示正確設定的匯入要求。
POST /api/2.0/workspace/import
Request body parameters:
{
"path": "/Users/first.last@example.com/examples_folder/myseconddashboard.lvdash.json",
"content": "IORd/DYYsCNElspwM9XBZS/i5Z9dYgW5SkLpKJs48dR5p5KkIW8OmEHU8lx6CZotiCDS9hkppQG=",
"format": "AUTO"
}
Response:
{}
步驟 4:在匯入時覆寫 (選擇性)
嘗試重新發出相同的 API 要求會導致下列錯誤:
{
"error_code": "RESOURCE_ALREADY_EXISTS",
"message": "Path (/Users/first.last@example.com/examples_folder/myseconddashboard.lvdash.json) already exists."
}
如果您想要改為覆寫重複的要求,請將 屬性true
設定"overwrite"
為 ,如下列範例所示。
POST /api/2.0/workspace/import
Request body parameters:
{
"path": /Users/first.last@example.com/examples_folder/myseconddashboard.lvdash.json",
"content": "IORd/DYYsCNElspwM9XBZS/i5Z9dYgW5SkLpKJs48dR5p5KkIW8OmEHU8lx6CZotiCDS9hkppQG=",
"format": "AUTO",
"overwrite": true
}
Response:
{}
步驟 5:擷取元數據
您可以擷取任何工作區物件的元數據,包括 Lakeview 儀錶板。 請參閱 GET /api/2.0/workspace/get-status。
下列範例顯示 get-status
先前範例中匯入儀錶板的要求。 回應包含詳細資料,確認檔案已成功匯入為 "DASHBOARD"
。 此外,它是由 "resource_id"
屬性所組成,您可以搭配 Lakeview API 做為標識符。
GET /api/2.0/workspace/get-status
Query parameters:
{
"path": "/Users/first.last@example.com/examples_folder/myseconddashboard.lvdash.json"
}
Response:
{
"object_type": "DASHBOARD",
"path": "/Users/first.last@example.com/examples_folder/myseconddashboard.lvdash.json",
"object_id": 7616304051637820,
"resource_id": "9c1fbf4ad3449be67d6cb64c8acc730b"
}
步驟 6:發佈儀錶板
上述範例使用工作區 API,讓使用 Lakeview 儀錶板作為一般工作區物件。 下列範例會使用 Lakeview API 來執行 Lakeview 儀錶板專屬的發佈作業。 請參閱 POST /api/2.0/lakeview/dashboards/{dashboard_id}/published。
API 端點的路徑包含 "resource_id"
上一個範例中傳回的屬性。 在要求參數中, "embed_credentials"
會設定為 true
,讓發行者的認證內嵌在儀錶板中。 在此情況下,發行者是發出授權 API 要求的使用者。 發行者無法內嵌不同的用戶認證。 請參閱 發佈儀錶板 以瞭解內 嵌認證 設定的運作方式。
屬性會 "warehouse_id"
設定要用於已發佈儀錶板的倉儲。 如果指定,此屬性會覆寫為草稿儀錶板指定的倉儲,如果有的話。
POST /api/2.0/lakeview/dashboards/9c1fbf4ad3449be67d6cb64c8acc730b/published
Request parameters
{
"embed_credentials": true,
"warehouse_id": "1234567890ABCD12"
}
Response:
{}
當命令完成時,您可以從瀏覽器存取已發佈的儀錶板。 下列範例示範如何建構已發佈儀錶板的連結。
https://<deployment-url>/dashboardsv3/<resource_id>/published
若要建構唯一的連結:
- 將取代
<deployment-url>
為您的部署URL。 當您在 Azure Databricks 工作區首頁上時,此連結是瀏覽器網址列中的位址。 - 將 取代
<resource_id>
為您在擷取元數據中所識別的屬性"resource_id"
值。
步驟 7:刪除儀錶板
若要刪除儀錶板,請使用工作區 API。 請參閱 POST /api/2.0/workspace/delete。
重要
這是一個硬式刪除。 當命令完成時,儀錶板會永久刪除。
在下列範例中,要求會包含先前步驟中建立之檔案的路徑。
POST /api/2.0/workspace/delete
Query parameters:
{
"path": "/Users/first.last@example.com/examples_folder/myseconddashboard.lvdash.json"
}
Response:
{}
下一步
- 若要深入瞭解儀錶板,請參閱 儀錶板。
- 若要深入瞭解 REST API,請參閱 Databricks REST API 參考。