대시보드 API를 사용하여 대시보드 만들기 및 관리

Databricks REST API에는 특히 AI/BI 대시보드를 관리하기 위한 관리 도구가 포함되어 있습니다. 이 페이지에서는 API 도구를 사용하여 대시보드를 만들고 관리하는 방법을 보여 줍니다. UI를 사용하여 이러한 작업을 수행하려면 작성자 대시보드를 참조하세요.

메모

AI/BI 대시보드는 이전에 Lakeview 대시보드라고 했습니다. Lakeview API는 여전히 해당 이름을 유지합니다.

필수 구성 요소

초안 대시보드 가져오기

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 사용하여 해당 작업으로 만든 새 AI/BI 대시보드를 업데이트할 수 있습니다. 다음 예제에서는 샘플 요청 및 응답을 보여줍니다. 이전 예제의 dashboard_id 경로 매개 변수로 포함됩니다.

display_name 및 warehouse_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"
}

서비스 주체 자격 증명을 사용하여 대시보드 게시

API 호출을 수행할 때 서비스 주체로 인증하여 서비스 주체 자격 증명이 포함된 대시보드를 게시할 수 있습니다. 서비스 주체의 토큰을 사용하여 게시하는 경우 대시보드는 해당 서비스 주체의 데이터 및 컴퓨팅 권한으로 게시되므로 직접 데이터 액세스 권한이 없는 사용자가 대시보드를 볼 수 있습니다.

게시하기 전에 서비스 주체는 적어도 대시보드에 대한 CAN MANAGE 권한, SELECT 대시보드에 사용되는 모든 데이터 원본에 대한 권한 및 웨어하우스에 대한 CAN USE 권한이 있어야 합니다. 서비스 주체를 만들고 OAuth 비밀을 생성하는 방법에 대한 자세한 내용은 서비스 주체 및 OAuth를 사용하여 Azure Databricks 대한 서비스 주체 액세스 권한 인증 참조하세요.

먼저 서비스 주체로 인증하여 액세스 토큰을 가져옵니다.

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
}

그런 다음 액세스 토큰을 사용하여 서비스 주체의 자격 증명을 사용하여 대시보드를 게시합니다.

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

embed_credentials이 true로 설정되면, 대시보드 뷰어는 서비스 주체의 권한을 사용하여 데이터 및 컴퓨팅 리소스에 액세스합니다. 사용자는 대시보드 개체 자체에 액세스할 수 있는 권한만 있으면 됩니다. 모든 대시보드 쿼리는 서비스 주체의 ID를 사용하여 실행되므로 감사 로그는 서비스 주체를 쿼리 실행기로 표시합니다.

게시된 대시보드 가져오기

GET /api/2.0/lakeview/dashboards/{dashboard_id}/게시된 응답은 이전 예제에서 제공한 응답과 유사합니다. 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

다음 단계