Поделиться через


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