Volumes
적용 대상: Databricks SQL Databricks Runtime 13.3 LTS 이상 Unity Catalog에만 적용
Volumes는 클라우드 객체 스토리지 위치에서 스토리지의 논리적 볼륨을 나타내는 Unity Catalog 개체입니다. Volumes 파일 액세스, 저장, 관리 및 구성 기능을 제공합니다. tables가 테이블 형식 데이터 세트에 거버넌스를 제공하는 동안, volumes은 비테이블 형식 데이터 세트에 대한 거버넌스를 추가합니다. volumes 사용하여 구조화, 반구조화 및 구조화되지 않은 데이터를 비롯한 모든 형식의 파일을 저장하고 액세스할 수 있습니다.
Volumes은 Unity Catalog의 schema 아래에 조직된 tables, views및 기타 개체의 형제입니다.
볼륨을 관리하거나 외부로 관리할 수 있습니다.
자세한 내용 및 제한 사항은 Unity Catalogvolumes이 무엇인가요?.
관리되는 볼륨
관리되는 볼륨은 Unity Catalog가 관리하고 있는 스토리지 볼륨으로, 포함된 schema의 관리되는 스토리지 위치 내에 생성된 것입니다. 관리되는 volumes는 외부 위치 및 스토리지 credentials의 오버헤드 없이 파일 작업을 위한 관리 스토리지 생성을 허용합니다. 관리되는 볼륨을 만들 때 위치를 지정할 필요가 없으며 관리되는 volumes 데이터에 대한 모든 파일 액세스는 Unity Catalog관리되는 경로를 통해 수행됩니다.
외부 볼륨
외부 볼륨은 외부 위치에 있는 디렉터리에 대해 등록된 Unity Catalog에서 관리하는 스토리지 볼륨입니다.
볼륨 이름 지정 및 참조
볼륨 이름 SQL 명령에서 catalog 및 schema 이름으로 한정할 수 있는 identifier.
volumes 파일에 액세스하는 경로는 다음 형식을 사용합니다.
/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>
Azure Databricks는 식별자를 소문자로 정규화합니다.
또한 Azure Databricks는 선택적 dbfs:/
체계를 지원하므로 다음 경로도 작동합니다.
dbfs:/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>
참고 항목
클라우드 스토리지 URI를 사용하여 외부 volumes 데이터에 액세스할 수도 있습니다.
volumes의 파일 관리
적용 대상: Databricks SQL 커넥터
Databricks SQL Connector를 사용하여 다음 명령을 사용하여 volumes 파일을 관리할 수 있습니다.
예제
--- Create an external volume under the directory “my-path”
> CREATE EXTERNAL VOLUME IF NOT EXISTS myCatalog.mySchema.myExternalVolume
COMMENT 'This is my example external volume'
LOCATION 's3://my-bucket/my-location/my-path'
OK
--- Set the current catalog
> USE CATALOG myCatalog;
OK
--- Set the current schema
> USE SCHEMA mySchema;
OK
--- Create a managed volume; it is not necessary to specify a location
> CREATE VOLUME myManagedVolume
COMMENT 'This is my example managed volume';
OK
--- List the files inside the volume, all names are lowercase
> LIST '/Volumes/mycatalog/myschema/myexternalvolume'
sample.csv
> LIST 'dbfs:/Volumes/mycatalog/myschema/mymanagedvolume'
sample.csv
--- Print the content of a csv file
> SELECT * FROM csv.`/Volumes/mycatalog/myschema/myexternalvolume/sample.csv`
20
> SELECT * FROM csv.`dbfs:/Volumes/mycatalog/myschema/mymanagedvolume/sample.csv`
20