Databricks REST API에는 특히 AI/BI 대시보드를 관리하기 위한 관리 도구가 포함되어 있습니다. 이 문서에서는 기존 레거시 대시보드에서 새 AI/BI 대시보드를 만드는 방법을 보여 줍니다. 그런 다음 API 도구를 사용하여 대시보드를 관리하는 방법을 보여줍니다.
메모
AI/BI 대시보드는 이전에 Lakeview 대시보드라고 했습니다. Lakeview API는 여전히 해당 이름을 유지합니다.
필수 구성 요소
- Azure Databricks 리소스에 액세스하도록 인증을 설정합니다. 인증 옵션에 대해 알아보고 설정 지침을 얻으려면 Azure Databricks 리소스에 대한 액세스 권한 부여를 참조하세요.
- 액세스하려는 작업 영역 URL이 필요합니다. 작업 영역 인스턴스 이름, URL 및 ID를 참조하세요.
- Databricks REST API 참조에 대한 숙지.
대시보드 마이그레이션
기존 레거시 대시보드에서 새 AI/BI 대시보드를 만들 수 있습니다. Lakeview API의 대시보드 엔드포인트는 마이그레이션을 위해 source_dashboard_id가 필요합니다. 필요에 따라 표시 이름과 새 대시보드를 저장할 경로를 포함할 수 있습니다.
레거시 대시보드 가져오기
source_dashboard_id가져오려면 레거시 대시보드 API를 사용하여 작업 영역에서 대시보드의 전체 목록을 가져오세요.
results 목록의 각 대시보드 개체에는 Azure Databricks REST API 서비스에서 레거시 대시보드를 참조하는 데 사용할 수 있는 UUID가 포함되어 있습니다.
다음 예에서는 대시보드 개체를 가져오기 위한 엔드포인트에 대한 샘플 요청 및 응답을 보여줍니다. 명확성을 위해 일부 응답 세부 정보는 생략되었습니다. 이 엔드포인트 및 샘플 응답에 대한 자세한 내용은 GET /api/2.0/preview/sql/dashboards 참조하세요.
레거시 대시보드의 UUID는 id에서 반환된 개체 목록의 최상위 수준에 있는 results입니다. 레거시 대시보드의 경우 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를 사용하여 새 AI/BI 대시보드로 자동으로 변환되는 복사본을 만듭니다. 이는 UI에서 사용할 수 있는 복제 기능처럼 AI/BI 대시보드 도구가 작동합니다. Azure Databricks UI를 사용하여 이 작업을 수행하는 방법을 알아보려면 레거시 대시보드를 AI/BI 대시보드로 복제하는 것을 참조하세요.
변환하려는 레거시 대시보드의 UUID는 요청 본문에 필요합니다. 필요에 따라 변환된 대시보드를 저장할 폴더의 작업 영역 경로를 식별하는 새 display_name 값과 parent_path 포함할 수 있습니다.
응답에는 새 대시보드에 대한 dashboard_idUUID가 포함됩니다. AI/BI 대시보드의 UUID는 04aab30f99ea444490c10c85852f216c같은 32자리 영숫자 값입니다. 이를 사용하여 Lakeview 네임스페이스 및 다양한 Azure Databricks REST API 서비스에서 이 대시보드를 식별할 수 있습니다.
다음 예제에서는 샘플 요청 및 응답을 보여줍니다. See 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 사용하여 해당 작업으로 만든 새 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
다음 단계
- 대시보드에 대한 자세한 내용은 대시보드참조하세요.
- REST API에 대한 자세한 내용은 Databricks REST API 참조 참조하세요.