Как пути работают для данных, управляемых каталогом Unity?
В этой статье описываются ограничения на пути, перекрывающиеся в каталоге Unity, шаблоны доступа на основе пути для файлов данных в объектах каталога Unity, а также описывается, как каталог Unity управляет путями для таблиц и томов.
Примечание.
Тома поддерживаются только в Databricks Runtime 13.3 LTS и более поздних версиях. В Databricks Runtime 12.2 LTS и ниже операции с /Volumes
путями могут быть успешными, но они могут записывать данные только в временные диски хранилища, подключенные к вычислительным кластерам, а не сохранять данные в томах каталога Unity, как ожидалось.
Пути для объектов каталога Unity не могут перекрываться
Каталог Unity применяет управление данными, предотвращая перекрытие управляемых каталогов данных. Каталог Unity применяет следующие правила:
- Внешние расположения не могут перекрываться другими внешними расположениями.
- Таблицы и тома хранят файлы данных во внешних расположениях или корневом расположении хранилища метаданных.
- Тома не могут перекрываться другими томами.
- Таблицы не могут перекрываться другими таблицами.
- Таблицы и тома не могут перекрываться друг с другом.
- Управляемые расположения хранилища не могут перекрываться друг с другом. См. раздел "Указание расположения управляемого хранилища" в каталоге Unity.
- Внешние тома не могут перекрываться расположениями управляемого хранилища.
- Внешние таблицы не могут перекрываться расположениями управляемого хранилища.
Эти правила означают, что в каталоге Unity существуют следующие ограничения:
- Нельзя определить внешнее расположение в другом внешнем расположении.
- Невозможно определить том в другом томе.
- Нельзя определить таблицу в другой таблице.
- Нельзя определить таблицу в файлах данных или каталогах в томе.
- Невозможно определить том в каталоге в таблице.
Примечание.
Вы всегда можете использовать доступ на основе пути для записи или чтения файлов данных из томов, включая Delta Lake. Эти файлы данных нельзя зарегистрировать в качестве таблиц в хранилище метаданных каталога Unity.
Пути для управляемых таблиц и управляемых томов полностью управляются каталогом Unity
При создании управляемой таблицы или управляемого тома каталог Unity создает новый каталог в расположении хранилища, настроенном каталогом Unity, связанном с содержащей схемой. Имя этого каталога создается случайным образом, чтобы избежать любого потенциального столкновения с другими каталогами, которые уже присутствуют.
Это поведение отличается от того, как хранилище метаданных Hive создает управляемые таблицы. Databricks рекомендует всегда взаимодействовать с управляемыми таблицами каталога Unity с помощью имен таблиц и управляемых томов каталога Unity с помощью путей томов.
Пути для внешних таблиц и внешних томов управляются каталогом Unity
При создании внешней таблицы или внешнего тома необходимо указать путь в внешнем расположении, управляемом каталогом Unity.
Внимание
Databricks рекомендует никогда не создавать внешний том или внешнюю таблицу в корне внешнего расположения. Вместо этого создайте внешние тома и внешние таблицы в вложенных каталогах в пределах внешнего расположения. Эти рекомендации должны помочь избежать случайного перекрытия путей. См . пути для объектов каталога Unity, которые не могут перекрываться.
Для удобства использования Databricks рекомендует взаимодействовать с внешними таблицами каталога Unity, используя имена таблиц и внешние тома каталога Unity с помощью путей томов.
Кроме того, пользователи с достаточными привилегиями в соответствующем объекте каталога Unity могут получить доступ к данным из внешней таблицы или внешнего тома с помощью полного пути к хранилищу облачных объектов.
Внимание
Каталог Unity управляет всеми привилегиями для доступа с помощью облачных URI к данным, связанным с внешними таблицами или внешними томами. Эти привилегии переопределяют все привилегии, связанные с внешними расположениями. См. сведения о привилегиях каталога Unity и защищаемых объектах
Как получить доступ к данным в каталоге Unity?
Объекты каталога Unity предоставляют доступ к данным через идентификаторы объектов, пути тома или облачные URI. Эти значения можно использовать для доступа к данным, связанным с томами и таблицами.
К таблицам каталога Unity обращаются с помощью трехуровневого идентификатора со следующим шаблоном:
<catalog_name>.<schema_name>.<table_name>
Каковы пути к файлам тома в каталоге Unity?
Тома предоставляют путь к файлам данных со следующим шаблоном:
/Volumes/<catalog_name>/<schema_name>/<volume_name>/<path_to_file>
Облачные URI требуют, чтобы пользователи предоставили драйвер, идентификатор контейнера хранилища и полный путь к целевым файлам, как показано в следующем примере:
abfss://<container_name>@<storage_account>.dfs.core.windows.net/<path>
В следующей таблице показаны методы доступа, разрешенные для объектов каталога Unity:
Object | Идентификаторы объектов | Путь к файлу | URI облака |
---|---|---|---|
Внешнее расположение | no | no | yes |
Управляемая таблица | yes | no | no |
Внешняя таблица | yes | no | yes |
Управляемый том | no | yes | no |
Внешний том | no | yes | yes |
Примечание.
Тома каталога Unity используют идентификаторы объектов трехуровневого уровня со следующим шаблоном для команд управления (например CREATE VOLUME
, и DROP VOLUME
):
<catalog_name>.<schema_name>.<volume_name>
Чтобы фактически работать с файлами в томах, необходимо использовать доступ на основе пути.