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


Подключение к облачному хранилищу объектов с помощью каталога Unity

В этой статье представлен обзор подключений к облачному хранилищу, которые необходимы для работы с данными с помощью каталога Unity, а также сведения о том, как каталог Unity управляет доступом к облачному хранилищу и внешним облачным службам.

Как каталог Unity использует облачное хранилище?

Databricks рекомендует использовать каталог Unity для управления доступом ко всем данным, хранящимся в облачном хранилище объектов. Каталог Unity предоставляет набор средств для настройки безопасных подключений к облачному хранилищу объектов. Эти подключения предоставляют доступ для выполнения следующих действий:

  • Загрузка необработанных данных в лейкхаус.
  • Создание и чтение управляемых таблиц и управляемых томов неструктурированных данных в облачном хранилище, управляемом каталогом Unity.
  • Зарегистрируйте или создайте внешние таблицы, содержащие табличные данные и внешние тома, содержащие неструктурированные данные в облачном хранилище, управляемом с помощью поставщика облачных служб.
  • Чтение и запись неструктурированных данных ( volumes каталога Unity).

Чтобы быть более конкретным, каталог Unity использует облачное хранилище двумя основными способами:

  • Расположения хранилища по умолчанию (или "управляемые") для управляемых таблиц и управляемых томов (неструктурированные, не табличные данные), которые вы создаете в Databricks. Эти расположения управляемого хранилища можно определить на уровне хранилища метаданных, каталога или схемы. Вы создаёте расположения управляемого хранилища у поставщика облачных услуг, но их жизненный цикл полностью контролируется каталогом Unity.
  • Места хранения, где сохраняются внешние таблицы и тома. Это таблицы и хранилища, доступ к которым из Azure Databricks управляется с помощью Unity Catalog, но жизненный цикл данных и структура файлов управляется вашим поставщиком облачных услуг и другими платформами данных. Как правило, внешние таблицы используются для регистрации больших объемов существующих данных в Azure Databricks или при необходимости записи доступа к данным с помощью средств за пределами Azure Databricks.

Дополнительные сведения об управляемых и внешних таблицах и томах см. в статье "Общие сведения о таблицах Azure Databricks " и "Что такое тома каталога Unity?".

Предупреждение

Не предоставляйте удостоверениям вне каталога Unity доступ на уровне хранилища данных к управляемым таблицам или томам каталога Unity. Это компрометирует безопасность и управление данными.

Предоставление пользователям, субъектам-службам или управляемым удостоверениям прямого доступа к контейнерам Azure Data Lake Storage, содержащим данные, которые регулируются Unity Catalog , позволяет обойти Unity Catalog. Это подвергает данные избыточному разрешению, эксплуатации и несанкционированному доступу, затрудняет аудит и увеличивает нагрузку на управление.

Прямой доступ к хранилищу не поддерживается для управляемых таблиц каталога Unity.

Параметры облачного хранилища, поддерживаемые каталогом Unity

Каталог Unity поддерживает следующие варианты облачного хранилища для Azure Databricks.

Вариант облачного хранилища Описание
Контейнеры Azure Data Lake Storage Azure Data Lake Storage подходит для большинства вариантов использования Azure Databricks. См. Создание учетных данных для подключения к Azure Data Lake Storage
контейнеры AWS S3; Azure Databricks поддерживает кроссплатформенный доступ только для чтения к контейнерам S3. Сведения о подключении к AWS S3 (только для чтения) см. в разделе "Создание учетных данных хранения".
Контейнеры Cloudflare R2 Cloudflare R2 предназначен в первую очередь для сценариев использования Delta Sharing, в которых вы хотите избежать платы за исходящий трафик данных. См. статью "Создание учетных данных хранения для подключения к Cloudflare R2".
Корневой каталог DBFS Корневой каталог DBFS — это устаревшее облачное хранилище. Хотя Databricks не рекомендует хранить данные в корневом хранилище DBFS, ваша рабочая область может хранить данные там из-за устаревших методик. См . статью "Создание внешнего расположения для данных в корневом каталоге DBFS (устаревшая версия)".

Как каталог Unity управляет доступом к облачному хранилищу?

Для управления доступом к базовому облачному хранилищу, в котором хранятся таблицы и тома, каталог Unity использует защищаемый объект, называемый внешним расположением, который определяет путь к расположению облачного хранилища и учетным данным, необходимым для доступа к такому расположению. Эти учетные данные, в свою очередь, определены в защищаемом объекте Каталога Unity, который называется учетные данные хранилища. Предоставляя и отменяя доступ к безопасным внешним расположениям в каталоге Unity, вы управляете доступом к данным в облачном хранилище. Предоставляя и отзывая доступ к безопасным учетным данным хранилища в каталоге Unity, вы управляете возможностью создания внешних объектов местоположения.

Учетные данные хранилища и внешние местоположения

Ниже приведены дополнительные сведения об этих двух защищаемых объектах:

  • Учетные данные хранилища представляют механизм проверки подлинности и авторизации для доступа к данным, хранящимся в вашем облачном арендаторе, например с помощью управляемого удостоверения Azure или участника службы для контейнеров Azure Data Lake Storage или маркера API R2 для контейнеров Cloudflare R2. Привилегии, предоставляемые в каталоге Unity, определяют, какие пользователи и группы могут использовать учетные данные для задания внешних расположений. Разрешение на создание и использование учетных данных хранения должно быть предоставлено только пользователям, которым необходимо создать объекты внешнего расположения. Дополнительные сведения см. в ссылках в параметрах облачного хранилища, поддерживаемых каталогом Unity.
  • Внешнее расположение объединяет путь к облачному хранилищу с учетными данными хранилища, которые разрешают доступ к пути к облачному хранилищу. Привилегии, предоставляемые в каталоге Unity, контролируют, какие пользователи и группы могут получить доступ к облачному хранилищу, определенному внешним расположением. Разрешение на создание и использование внешних расположений должно быть предоставлено только пользователям, которым необходимо создать внешние таблицы, внешние тома или управляемые расположения хранилища. См. статью "Создание внешнего расположения для подключения облачного хранилища к Azure Databricks".

Внешние расположения используются в каталоге Unity как для внешних данных, таких как внешние таблицы и внешние томы, так и для управляемых данных, таких как управляемые таблицы и управляемые томы. Дополнительные сведения о различиях между внешними и управляемыми ресурсами данных в каталоге Unity см. в статье "Общие сведения о таблицах Azure Databricks " и " Что такое тома каталога Unity?".

Дополнительные сведения об использовании внешних расположений см. в разделе "Внешние расположения".

Использование внешних хранилищ при создании внешних таблиц и томов

Внешние таблицы и внешние тома, зарегистрированные в каталоге Unity, по сути, указывают на данные в облачном хранилище, которое вы управляете за пределами Azure Databricks. При создании внешней таблицы или внешнего тома в каталоге Unity необходимо ссылаться на путь к облачному хранилищу, включенный в объект внешнего расположения, на который вы получили достаточные привилегии. Дополнительные сведения о различиях между внешними и управляемыми ресурсами данных в каталоге Unity см. в статье "Общие сведения о таблицах Azure Databricks " и " Что такое тома каталога Unity?". Сведения о привилегиях см. в разделе Предоставление разрешений для внешнего расположения.

Использование внешних расположений при создании управляемого хранилища

Управляемые таблицы и управляемые тома полностью управляются каталогом Unity. Они хранятся по умолчанию в управляемом расположении хранилища, которое можно определить на уровне хранилища метаданных, каталога или схемы. При назначении управляемого расположения хранилища в хранилище метаданных, каталоге или схеме необходимо ссылаться на объект внешнего расположения и иметь соответствующие привилегии для его использования. См. Укажите управляемое расположение хранилища в Unity Catalog и лучшие практики для Unity Catalog .

Доступ на основе пути к данным в облачном хранилище

Хотя каталог Unity поддерживает доступ на основе путей к внешним таблицам и внешним томам, используя URI облачного хранилища, Databricks рекомендует пользователям читать из и записывать все таблицы каталога Unity, используя имена таблиц, а для доступа к данным в томах использовать пути /Volumes. тома — это объекты, подлежащие защите, которые большинство пользователей Azure Databricks должны использовать для непосредственного взаимодействия с нетабличными данными в облачном хранилище объектов. См. статью Что такое тома каталога Unity?.

Предупреждение

Если вы обновляете метаданные внешней таблицы, используя клиента, отличного от Databricks, или доступ по пути изнутри Databricks, то состояние этих метаданных автоматически не синхронизируется с Unity Catalog. Databricks не рекомендует такие обновления метаданных, но если вы их выполняете, необходимо выполнить команду MSCK REPAIR TABLE <table-name> SYNC METADATA, чтобы привести схему в каталоге Unity в актуальное состояние. См. REPAIR TABLE.

Рабочий процесс управления доступом к облачному хранилищу в каталоге Unity

Чтобы управлять доступом к облачному хранилищу с помощью каталога Unity, выполните следующие действия.

  1. Создайте объект учетных данных хранилища, содержащий долгосрочные облачные учетные данные, такие как управляемое удостоверение Azure или субъект-служба, с доступом к пути к облачному хранилищу.
  2. Создайте объект внешнего расположения, ссылающийся на путь к хранилищу и объект учетных данных хранилища.
  3. Ссылаться на путь, включенный во внешнее местоположение при создании внешних таблиц, внешних томов или местоположений управляемого хранилища по умолчанию. Это может быть точный путь, определенный во внешнем хранилище или подпуть.

Рекомендации по облачному хранилищу Azure с каталогом Unity

Azure Databricks требует использования Azure Data Lake Storage в качестве службы хранилища Azure для данных, обрабатываемых в Azure Databricks с помощью управления каталогом Unity. Azure Data Lake Storage позволяет отделять затраты на хранение и вычисления и использовать более точное управление доступом, предоставляемое каталогом Unity. Если данные хранятся в OneLake (озере данных Microsoft Fabric) и обрабатываются Databricks, минуя каталог Unity, вы понесете единые затраты на хранение и вычисление. Это может привести к затратам, которые примерно 3x выше для операций чтения и 1,6x выше для записи по сравнению с Azure Data Lake Storage для хранения, чтения и записи данных. Хранилище BLOB-объектов Azure также несовместимо с каталогом Unity.

Функция Azure Blob-хранилище Azure Data Lake Storage OneLake
Поддерживается каталогом Unity X X
Требуется дополнительная покупка емкости Fabric X X
Поддерживаемые операции внешними движками
  • Читайте
  • Напишите
  • Читайте
  • Напишите
  • Чтение (при чтении затраты возрастут в 3 раза по сравнению со считыванием данных из Azure Data Lake Storage).
  • Запись данных обходится в 1,6 раза дороже по сравнению с записью данных в Azure Data Lake Storage.

Дополнительные сведения см. в документации по OneLake.
Развертывание Региональный Региональный Глобальный
Аутентификация Подпись общего доступа Entra ID Подпись общего доступа Entra ID Идентификатор записи
События хранилища X
Мягкое удаление
Управление доступом RBAC RBAC, ABAC, ACL RBAC (только для таблиц и папок, ярлыки ACL не поддерживаются)
Ключи шифрования X
Уровни доступа Онлайн-архив Горячий, тёплый, холодный, архив Только горячее

Следующие шаги