작업 영역 API 2.0

작업 영역 API를 사용하면 Notebook 및 폴더를 나열, 가져오기, 내보내기 및 삭제할 수 있습니다. 작업 영역 API에 대한 요청의 최대 허용 크기는 10MB입니다. 이 API를 안내하는 방법은 클러스터 로그 전달 예제를 참조하세요.

중요

Databricks REST API에 액세스하려면 인증해야 합니다.

삭제

엔드포인트 HTTP 메서드
2.0/workspace/delete POST

개체 또는 디렉터리를 삭제하고 필요에 따라 디렉터리의 모든 개체를 재귀적으로 삭제합니다. path가 존재하지 않는 경우 이 호출은 RESOURCE_DOES_NOT_EXIST 오류를 반환합니다. path가 비어 있지 않은 디렉터리이고 recursivefalse로 설정된 경우 이 호출은 DIRECTORY_NOT_EMPTY 오류를 반환합니다. 개체 삭제를 취소할 수 없으며 디렉터리를 재귀적으로 삭제하는 것은 원자성이 아닙니다.

요청:

curl --netrc --request POST \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/delete \
  --header 'Accept: application/json' \
  --data '{ "path": "/Users/me@example.com/MyFolder", "recursive": true }'

성공하면 이 엔드포인트는 응답을 반환하지 않습니다.

요청 구조

필드 이름 유형 Description
path STRING Notebook 또는 디렉터리의 절대 경로입니다. 이 필드는 필수 필드입니다.
recursive BOOL 개체를 재귀적으로 삭제할지 여부를 지정하는 플래그입니다. 기본값은 false입니다. 이 삭제 디렉터리는 원자성이지 않습니다. 중간에 실패하면 이 디렉터리 아래에 있는 일부 개체가 삭제되어 취소할 수 없습니다.

내보내기

엔드포인트 HTTP 메서드
2.0/workspace/export GET

Notebook 또는 전체 디렉터리의 콘텐츠를 내보냅니다. Databricks 리포지토리 또는 Databricks 리포지토리에서 Notebook 또는 디렉터리를 내보낼 수도 있습니다. Notebook이 아닌 파일은 리포지토리에서 내보낼 수 없습니다. path가 존재하지 않는 경우 이 호출은 RESOURCE_DOES_NOT_EXIST 오류를 반환합니다. 디렉터리는 DBC 형식으로만 내보낼 수 있습니다. 내보낸 데이터가 크기 제한을 초과하는 경우 이 호출은 MAX_NOTEBOOK_SIZE_EXCEEDED 오류를 반환합니다. 이 API는 라이브러리 내보내기를 지원하지 않습니다.

요청:

curl --netrc --request GET \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/export \
  --header 'Accept: application/json' \
  --data '{ "path": "/Users/me@example.com/MyFolder/MyNotebook", "format": "SOURCE", "direct_download": true }'
curl --netrc --request GET \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/export \
  --header 'Accept: application/json' \
  --data '{ "path": "/Repos/me@example.com/MyFolder/MyNotebook", "format": "SOURCE", "direct_download": true }'

응답:

direct_download 필드가 false로 설정되었거나 요청에서 생략된 경우 다음과 같이 base64로 인코딩된 버전의 콘텐츠가 반환됩니다.

{
  "content": "Ly8gRGF0YWJyaWNrcyBub3RlYm9vayBzb3VyY2UKMSsx",
}

그렇지 않으면 요청에서 direct_downloadtrue로 설정된 경우 콘텐츠가 다운로드됩니다.

요청 구조

필드 이름 유형 Description
path STRING Notebook 또는 디렉터리의 절대 경로입니다. 디렉터리 내보내기는 DBC에 대해서만 지원됩니다. 이 필드는 필수 필드입니다.
format ExportFormat 내보낸 파일의 형식을 지정합니다. 기본적으로 이 값은 SOURCE입니다. 이 값은 대/소문자를 구분합니다.
direct_download BOOL 직접 다운로드를 활성화하도록 플래그를 지정합니다. true인 경우 응답은 내보낸 파일 자체가 됩니다. 그렇지 않으면 응답에 base64로 인코딩된 문자열로 콘텐츠가 포함됩니다. 사용하는 방법에 대한 자세한 내용은 Notebook 또는 폴더 내보내기를 참조하세요.

응답 구조

필드 이름 유형 Description
콘텐츠 BYTES Base64로 인코딩된 콘텐츠입니다. 제한(10MB)을 초과하면 오류 코드 MAX_NOTEBOOK_SIZE_EXCEEDED로 인해 예외가 throw됩니다.

상태 가져오기

엔드포인트 HTTP 메서드
2.0/workspace/get-status GET

개체 또는 디렉터리의 상태를 가져옵니다. path가 존재하지 않는 경우 이 호출은 RESOURCE_DOES_NOT_EXIST 오류를 반환합니다.

요청:

curl --netrc --request GET \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/get-status \
  --header 'Accept: application/json' \
  --data '{ "path": "/Users/me@example.com/MyFolder/MyNotebook" }'

응답:

{
  "object_type": "NOTEBOOK",
  "path": "/Users/me@example.com/MyFolder/MyNotebook",
  "language": "PYTHON",
  "object_id": 123456789012345
}

요청 구조

필드 이름 유형 Description
path STRING Notebook 또는 디렉터리의 절대 경로입니다. 이 필드는 필수 필드입니다.

응답 구조체

필드 이름 유형 Description
object_type ObjectType 개체의 형식입니다.
object_id INT64 개체에 대한 고유 식별자입니다.
path STRING 개체의 절대 경로입니다.
언어 언어 개체의 언어입니다. 이 값은 개체 형식이 NOTEBOOK인 경우에만 설정됩니다.

가져오기

엔드포인트 HTTP 메서드
2.0/workspace/import POST

Notebook 또는 전체 디렉터리의 콘텐츠를 가져옵니다. path가 이미 존재하고 overwritefalse로 설정된 경우 이 호출은 RESOURCE_ALREADY_EXISTS 오류를 반환합니다. DBC 형식만 사용하여 디렉터리를 가져올 수 있습니다.

Base64로 인코딩된 문자열을 가져옵니다.

curl --netrc --request POST \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/import \
  --header 'Accept: application/json' \
  --data '{ "path": "/Users/me@example.com/MyFolder/MyNotebook", "content": "Ly8gRGF0YWJyaWNrcyBub3RlYm9vayBzb3VyY2UKMSsx", "language": "PYTHON", "overwrite": true, "format": "SOURCE" }'

로컬 파일을 가져옵니다.

curl --netrc --request POST \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/import \
  --header 'Content-Type: multipart/form-data' \
  --form path=/Users/me@example.com/MyFolder/MyNotebook \
  --form content=@myCode.py.zip

성공하면 이 엔드포인트는 응답을 반환하지 않습니다.

요청 구조

필드 이름 유형 Description
path STRING Notebook 또는 디렉터리의 절대 경로입니다. 디렉터리 가져오기는 DBC 형식에 대해서만 지원됩니다. 이 필드는 필수 필드입니다.
format ExportFormat 가져올 파일의 형식을 지정합니다. 기본적으로 이 값은 SOURCE입니다. 이 값은 대/소문자를 구분합니다.
언어 언어 언어입니다. 형식이 SOURCE로 설정된 경우 이 필드가 필수입니다. 그렇지 않으면 무시됩니다.
콘텐츠 BYTES Base64로 인코딩된 콘텐츠입니다. 10MB로 제한됩니다. 제한(10MB)을 초과하면 오류 코드 MAX_NOTEBOOK_SIZE_EXCEEDED로 인해 예외가 throw됩니다. 이 매개 변수가 없을 수 있으며, 대신 게시된 파일이 사용됩니다. 사용하는 방법에 대한 자세한 내용은 Notebook 또는 디렉터리 가져오기를 참조하세요.
overwrite BOOL 기존 개체를 덮어쓸지 여부를 지정하는 플래그입니다. 기본값은 false입니다. DBC 형식의 경우 디렉터리를 포함할 수 있으므로 덮어쓰기가 지원되지 않습니다.

목록

엔드포인트 HTTP 메서드
2.0/workspace/list GET

디렉터리의 내용을 나열하거나 디렉터리가 아닌 경우 개체를 나열합니다. 입력 경로가 없는 경우 이 호출은 RESOURCE_DOES_NOT_EXIST 오류를 반환합니다.

디렉터리 및 해당 콘텐츠를 나열합니다.

요청:

curl --netrc --request GET \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/list \
  --header 'Accept: application/json' \
  --data '{ "path": "/Users/me@example.com" }'

응답:

{
  "objects": [
    {
      "path": "/Users/me@example.com/MyFolder",
      "object_type": "DIRECTORY",
      "object_id": 234567890123456
    },
    {
      "path": "/Users/me@example.com/MyFolder/MyNotebook",
      "object_type": "NOTEBOOK",
      "language": "PYTHON",
      "object_id": 123456789012345
    },
    {
      "..."
    }
  ]
}

목록 리포지토리:

curl --netrc --request GET \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/list \
  --header 'Accept: application/json' \
  --data '{ "path": "/Repos/me@example.com" }'

응답:

{
  "objects": [
    {
      "path": "/Repos/me@example.com/MyRepo1",
      "object_type": "REPO",
      "object_id": 234567890123456
    },
    {
      "path": "/Repos/me@example.com/MyRepo2",
      "object_type": "REPO",
      "object_id": 123456789012345
    },
    {
      "..."
    }
  ]
}

요청 구조

필드 이름 유형 Description
path STRING Notebook 또는 디렉터리의 절대 경로입니다. 이 필드는 필수 필드입니다.

응답 구조체

필드 이름 유형 Description
개체 ObjectInfo의 배열 개체 목록입니다.

Mkdirs

엔드포인트 HTTP 메서드
2.0/workspace/mkdirs POST

지정된 디렉터리와 필요한 부모 디렉터리가 없는 경우 만듭니다. 입력 경로의 접두사에 개체(디렉터리가 아님)가 있는 경우 이 호출은 RESOURCE_ALREADY_EXISTS 오류를 반환합니다. 이 작업이 실패하면 필요한 부모 디렉터리 중 일부를 만드는 데 성공했을 수 있습니다.

요청:

curl --netrc --request POST \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/mkdirs \
  --header 'Accept: application/json' \
  --data '{ "path": "/Users/me@example.com/MyFolder" }'

성공하면 이 엔드포인트는 응답을 반환하지 않습니다.

요청 구조

필드 이름 유형 Description
path STRING 디렉터리의 절대 경로입니다. 부모 디렉터리가 없는 경우 해당 디렉터리도 만듭니다. 디렉터리가 이미 있는 경우 이 명령은 아무 작업도 수행하지 않고 성공합니다. 이 필드는 필수 필드입니다.

데이터 구조체

이 섹션에서는 다음 작업을 수행합니다.

ObjectInfo

작업 영역에 있는 개체의 정보입니다. listget-status에 의해 반환됩니다.

필드 이름 유형 Description
object_type ObjectType 개체의 형식입니다.
object_id INT64 개체에 대한 고유 식별자입니다.
path STRING 개체의 절대 경로입니다.
언어 언어 개체의 언어입니다. 이 값은 개체 형식이 NOTEBOOK인 경우에만 설정됩니다.

ExportFormat

Notebook 가져오기 및 내보내기 형식입니다.

서식 Description
원본 Notebook을 소스 코드로 가져오거나 내보냅니다.
HTML Notebook을 HTML 파일로 가져오거나 내보냅니다.
JUPYTER Notebook을 Jupyter/IPython Notebook 파일로 가져오거나 내보냅니다.
DBC Notebook을 Databricks 보관 형식으로 가져오거나 내보냅니다.

언어

Notebook의 언어입니다.

언어 Description
SCALA Scala Notebook.
PYTHON Python Notebook.
SQL SQL Notebook.
R R Notebook.

ObjectType

작업 영역에 있는 개체의 형식입니다.

유형 Description
NOTEBOOK Notebook
디렉터리 디렉터리
FILE 파일
LIBRARY Library
REPO 리포지토리