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


Как пути работают для данных, управляемых каталогом 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>

Чтобы фактически работать с файлами в томах, необходимо использовать доступ на основе пути.