다음을 통해 공유


작업 영역 API를 사용하여 대시보드 관리

이 자습서에서는 Lakeview API 및 작업 영역 API를 사용하여 대시보드를 관리하는 방법을 보여 줍니다. 각 단계에는 샘플 요청 및 응답과 API 도구 및 속성을 함께 사용하는 방법에 대한 설명이 포함됩니다. 각 단계는 자체적으로 참조할 수 있습니다. 순서대로 모든 단계를 수행하면 전체 워크플로를 안내합니다.

참고 항목

이 워크플로는 작업 영역 API를 호출하여 Lakeview 대시보드를 일반 작업 영역 개체로 검색합니다.

필수 조건

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 대시보드 파일은 대시보드의 초안 버전을 반영합니다. 다음 예제의 응답은 최소 대시보드 정의의 내용을 보여 줍니다. 더 많은 serialization 세부 정보를 탐색하고 이해하려면 고유한 대시보드 중 일부를 내보냅니다.

내보낸 파일 다운로드

다음 예제에서는 API를 사용하여 대시보드 파일을 다운로드하는 방법을 보여줍니다.

이 예제의 속성은 "path" 파일 형식 확장 lvdash.json프로그램인 Lakeview 대시보드로 끝납니다. 파일 이름은 작업 영역에 표시되는 대로 해당 확장명 앞에 섰습니다. 이 경우는 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단계: 대시보드 가져오기

작업 영역 가져오기 API POST /api /2.0/workspace/import 를 사용하여 초안 대시보드를 작업 영역으로 가져올 수 있습니다. 예를 들어 이전 예제와 같이 인코딩된 파일을 내보낸 후 해당 대시보드를 새 작업 영역으로 가져올 수 있습니다.

가져오기를 Lakeview 대시보드로 인식하려면 두 개의 매개 변수를 설정해야 합니다.

  • "format": "AUTO" - 이 설정을 사용하면 시스템에서 자산 유형을 자동으로 검색할 수 있습니다.
    • "path": ".lvdash.json"로 끝나는 파일 경로를 포함해야 합니다.

Important

이러한 설정이 제대로 구성되지 않은 경우 가져오기가 성공할 수 있지만 대시보드는 일반 파일처럼 처리됩니다.

다음 예제에서는 올바르게 구성된 가져오기 요청을 보여줍니다.


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-상태 참조하세요.

다음 예제에서는 이전 예제에서 가져온 대시보드에 대한 요청을 보여줍니다 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를 사용하여 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

고유한 링크를 생성하려면 다음을 수행합니다.

  • 배포 URL로 대체 <deployment-url> 합니다. 이 링크는 Azure Databricks 작업 영역 홈페이지에 있는 경우 브라우저 주소 표시줄의 주소입니다.
  • 메타데이터 검색에서 식별한 속성의 "resource_id" 값으로 바꿉 <resource_id> 다.

7단계: 대시보드 삭제

대시보드를 삭제하려면 작업 영역 API를 사용합니다. POST /api/2.0/workspace/delete를 참조하세요.

Important

이것은 하드 삭제입니다. 명령이 완료되면 대시보드가 영구적으로 삭제됩니다.

다음 예제에서 요청에는 이전 단계에서 만든 파일의 경로가 포함됩니다.

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 참조를 참조하세요.