작업 영역 API 2.0
작업 영역 API를 사용하면 Notebook 및 폴더를 나열, 가져오기, 내보내기 및 삭제할 수 있습니다. 작업 영역 API에 대한 요청의 최대 허용 크기는 10MB입니다. 이 API를 안내하는 방법은 클러스터 로그 전달 예제를 참조하세요.
중요
Databricks REST API에 액세스하려면 인증해야 합니다.
삭제
엔드포인트 | HTTP 메서드 |
---|---|
2.0/workspace/delete |
POST |
개체 또는 디렉터리를 삭제하고 필요에 따라 디렉터리의 모든 개체를 재귀적으로 삭제합니다.
path
가 존재하지 않는 경우 이 호출은 RESOURCE_DOES_NOT_EXIST
오류를 반환합니다.
path
가 비어 있지 않은 디렉터리이고 recursive
가 false
로 설정된 경우 이 호출은 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_download
가 true
로 설정된 경우 콘텐츠가 다운로드됩니다.
요청 구조
필드 이름 | 유형 | 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
가 이미 존재하고 overwrite
가 false
로 설정된 경우 이 호출은 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
작업 영역에 있는 개체의 정보입니다. list
및 get-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 | 리포지토리 |