ワークスペースAPIsでダッシュボードを管理する
このチュートリアルでは、 Lakeview APIと ワークスペースAPIを使用してダッシュボードを管理する方法を説明します。 各ステップには、サンプルのリクエストと応答、および API ツールとプロパティを一緒に使用する方法の説明が含まれています。 各ステップは個別に参照できます。 すべてのステップを順番に実行すると、ワークフロー全体がガイドされます。
注:
このワークフローは、ワークスペースAPIを呼び出して、 AI/BIダッシュボードを汎用のワークスペース オブジェクトとして取得します。
前提条件
ワークスペースに接続するには、個人用アクセストークンが必要です。 Databricks個人用アクセストークン認証を参照してください。
アクセスするワークスペースのワークスペース ID が必要です。 ワークスペースインスタンス名、URL、IDを確認する
Databricks REST API リファレンスに精通していること。
ステップ 1: ワークスペースディレクトリを探索する
ワークスペースリストAPI GET /api/2.0/workspace/list ワークスペースのディレクトリ構造を調べることができます。 たとえば、現在のワークスペース内のすべてのファイルとディレクトリのリストを取得できます。
次の例では、リクエスト内のpath
プロパティは、ユーザーのホームフォルダーに保存されているexamples_folder
という名前のフォルダーを指します。 ユーザー名は、パス first.last@example.com
で指定されます。
応答には、フォルダーにテキスト ファイル、ディレクトリ、および AI/BI ダッシュボードが含まれていることが示されます。
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: ダッシュボードをエクスポートする
ワークスペースエクスポートAPIGET /api/2.0/ワークスペース/export ダッシュボードの内容をファイルとしてエクスポートできます。 AI/BI ダッシュボード ファイルには、ダッシュボードのドラフト バージョンが反映されます。 次の例の応答は、最小限のダッシュボード定義の内容を示しています。 シリアル化の詳細を調べて理解するには、独自のダッシュボードの一部をエクスポートしてみてください。
エクスポートしたファイルをダウンロードする
次の例は、API を使用してダッシュボード ファイルをダウンロードする方法を示しています。
この例の"path"
プロパティは、ファイル タイプ拡張子lvdash.json
(AI/BI ダッシュボード) で終わります。 ワークスペースに表示されるファイル名は、その拡張子の前に付きます。 この場合は、 mydashboard
です。
さらに、この要求の "direct_download"
プロパティは true
に設定されているため、応答はエクスポートされたファイル自体になります。
注:
応答の pages プロパティに表示される"displayName"
プロパティは、ワークスペース内のダッシュボードの表示名を反映していません。
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"
}
]
}
エクスポートされたファイルをエンコードする
次のコードは、プロパティ "direct_download"
false に設定された応答の例を示しています。 応答には、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: ダッシュボードをインポートする
ワークスペース インポートAPIPOST /api/2.0/workspace/importを使用して、ドラフト ダッシュボードをワークスペースにインポートできます。 たとえば、前の例のようにエンコードされたファイルをエクスポートした後、そのダッシュボードを新しいワークスペースにインポートできます。
インポートをAI/BIダッシュボードとして認識するには、次の 2 つの問題を設定する必要があります。
"format"
: "AUTO" - この設定により、システムはアセットタイプを自動的に検出できます。"path"
: 「 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."
}
代わりに重複する要求を上書きする場合は、次の例のように "overwrite"
プロパティを true
に設定します。
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: メタデータを取得する
AI/BI ダッシュボードを含む任意のワークスペース オブジェクトのメタデータを取得できます。 GET /api/2.0/ワークスペース/get-statusを参照してください。
次の例は、前の例からインポートされたダッシュボードに対する get-status
要求を示しています。 応答には、ファイルが "DASHBOARD"
として正常にインポートされたことを確認する詳細が含まれます。 また、Lakeview API で識別子として使用できる"resource_id"
プロパティで構成されています。
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を使用し、 AI/BIダッシュボードを汎用のワークスペース オブジェクトとして操作できるようにしました。 次の例では、Lakeview API を使用して、AI/BI ダッシュボードに固有の公開操作を実行します。 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 に置き換えます。このリンクは、Databricks ワークスペースのホームページにアクセスしたときにブラウザーのアドレス バーに表示されるアドレスです。<resource_id>
を、「メタデータの取得」で特定した"resource_id"
プロパティの値に置き換えます。
ステップ7: ダッシュボードを削除する
ダッシュボードを削除するには、ワークスペースAPIを使用します。 POST /api/2.0/ワークスペース/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 リファレンス」を参照してください。