Volumes
применимо: Databricks SQL Databricks Runtime версия 13.3 LTS и более поздние версии Unity Catalog только
Volumes — это объекты Unity Catalog, представляющие логический объем хранилища в облачном расположении хранилища объектов. Volumes предоставляют возможности для доступа, хранения, управления и упорядочения файлов. Хотя tables обеспечивают управление табличными наборами данных, volumes добавляют управление не табличными наборами данных. Вы можете использовать volumes для хранения и доступа к файлам в любом формате, включая структурированные, полуструктурированные и неструктурированные данные.
Volumes являются братьями tables, viewsи другим объектам, организованным под schema в Unity Catalog.
Том может быть управляемым или внешним.
Дополнительные сведения и ограничения см. в разделе Что такое CatalogvolumesUnity?.
Управляемый том
Управляемый том — это том хранилища, находящийся под управлением Unity Catalog, созданный в управляемом расположении хранилища, содержащего schema. Системы volumes позволяют создавать управляемое хранилище для работы с файлами без дополнительных затрат на внешние расположения и хранилища credentials. Вам не нужно указывать расположение при создании управляемого тома, а доступ ко всем файлам для данных в управляемых volumes осуществляется по путям, управляемым Unity Catalog.
Внешний том
Внешний том, управляемый CatalogUnity, это том хранилища, зарегистрированный в каталоге, который находится во внешнем расположении.
Именование томов и ссылка
Имя тома — это identifier, которое может быть уточнено с помощью имен catalog и schema в командах SQL.
Путь к файлам в 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>
Примечание.
Вы также можете получить доступ к данным во внешних volumes через облачные URI.
Управление файлами в volumes
Область применения: Databricks SQL Connector
С помощью соединителя SQL Databricks можно управлять файлами в volumes с помощью следующих команд:
- PUT INTO, чтобы скопировать файл из локального хранилища в хранилище данных.
- GET для копирования файла из тома в локальное хранилище.
- REMOVE remove файла из тома.
Примеры
--- 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