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


Что такое Unity Catalog?

В этой статье представлен каталог Unity, унифицированное решение для управления данными и ресурсами искусственного интеллекта в Azure Databricks.

Примечание.

Каталог Unity также доступен как реализация с открытым кодом. Ознакомьтесь с блогом с объявлениями и общедоступным репозиторием Unity Catalog на GitHub.

Обзор Unity Catalog

Каталог Unity предоставляет централизованный контроль доступа, аудит, происхождение данных и возможности обнаружения данных в рабочих областях Azure Databricks.

Схема Unity Catalog

Ключевые функции Unity Catalog:

  • Определите один раз, безопасно везде: каталог Unity предлагает единое место для администрирования политик доступа к данным, применяемых во всех рабочих областях.
  • Модель безопасности, совместимая со стандартами: модель безопасности каталога Unity основана на стандарте ANSI SQL и позволяет администраторам предоставлять разрешения в существующем озере данных с помощью знакомого синтаксиса на уровне каталогов, схем (также называемых базами данных), таблицами и представлениями.
  • Встроенный аудит и происхождение: Unity Catalog автоматически сохраняет журналы аудита на уровне пользователя, фиксирующие доступ к данным. Каталог Unity также записывает данные о происхождении, которые отслеживают создание и использование ресурсов данных на всех языках.
  • Обнаружение данных: каталог Unity позволяет тегировать и документировать ресурсы данных, а также предоставляет интерфейс поиска, помогающий потребителям данных находить данные.
  • Системные таблицы (общедоступная предварительная версия): каталог Unity позволяет легко получать доступ к операционным данным вашей учетной записи, включая журналы аудита, оплачиваемое использование и происхождение.

Объектная модель Unity Catalog

В каталоге Unity все метаданные зарегистрированы в хранилище метаданных. Иерархия объектов базы данных в любом хранилище метаданных каталога Unity делится на три уровня, представленное как трехуровневое пространство имен (catalog.schema.table-etc) при ссылке на таблицы, представления, тома, модели и функции.

Схема модели объектов Unity Catalog

Хранилища метаданных

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

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

Иерархия объектов в хранилище метаданных

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

Уровень один:

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

Уровень два:

  • Схемы (также известные как базы данных) содержат таблицы, представления, тома , модели ИИ и функции. Схемы упорядочивают ресурсы данных и ИИ в логические категории, которые более детализированные, чем каталоги. Обычно схема представляет собой один сценарий использования, проект или командную песочницу. Посмотрите Что такое схемы в Azure Databricks?.

Уровень три:

  • Тома — это логические тома неструктурированных, не табличных данных в облачном хранилище объектов. Тома могут быть либо управляемыми, когда каталог Unity управляет полным жизненным циклом и структурой данных в хранилище, либо внешними, в этом случае каталог Unity управляет доступом к данным из Azure Databricks, но не контролирует доступ к данным в облачном хранилище для других клиентов. См. что такое тома каталога Unity? и управляемые и внешние таблицы и тома.
  • Таблицы — это коллекции данных, упорядоченные по строкам и столбцам. Таблицы могут быть либо управляемыми с помощью Unity Catalog, который управляет полным жизненным циклом таблицы, либо внешними, когда Unity Catalog управляет доступом к данным из Azure Databricks, но не обеспечивают доступ к данным в облачном хранилище для других клиентов. См. Что такое таблица? и Управляемые и внешние таблицы и тома.
  • Представления — это сохраненные запросы к одной или нескольким таблицам. Смотрите Что такое представление?.
  • Функции — это единицы сохраненной логики, возвращающие скалярное значение или набор строк. См. определяемые пользователем функции (UDF) в каталоге Unity.
  • Модели — это модели ИИ, упакованные с помощью MLflow и зарегистрированные в каталоге Unity в качестве функций. См. статью "Управление жизненным циклом модели" в каталоге Unity.

Работа с объектами базы данных в каталоге Unity

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

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

Другие защищаемые объекты

Помимо объектов базы данных и ресурсов ИИ, содержащихся в схемах, каталог Unity также управляет доступом к данным с помощью следующих защищаемых объектов:

  • Чистые комнаты, представляющие управляемую Databricks среду, в которой несколько участников могут совместно работать над проектами без совместного использования базовых данных друг с другом. См. Что такое Чистые комнаты Azure Databricks?.
  • Акции, являющиеся объектами Delta Sharing, представляющими коллекцию данных и ресурсов ИИ только для чтения, которыми поставщик данных делится с одним или несколькими получателями.
  • Получатели, являющиеся объектами Delta Sharing, представляющими сущность, которая получает общие ресурсы от поставщика данных.
  • Поставщики, которые представляют собой объекты Delta Sharing, представляющие сущность, которая предоставляет доступ к данным получателю.

Дополнительные сведения об объектах безопасности Delta Sharing см. в разделе Что такое Delta Sharing?.

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

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

Стандартные команды ANSI SQL можно использовать для предоставления и отмены доступа к объектам в каталоге Unity. Например:

GRANT CREATE TABLE ON SCHEMA mycatalog.myschema TO `finance-team`;

Вы также можете использовать Catalog Explorer, интерфейс командной строки Databricks и интерфейсы REST API для управления правами доступа к объектам.

Предоставление привилегий с помощью обозревателя каталогов

Сведения об управлении привилегиями в каталоге Unity см. в статье "Управление привилегиями" в каталоге Unity.

Доступ к объектам базы данных по умолчанию в каталоге Unity

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

Роли администратора

Администраторы рабочей области и администраторы учетных записей имеют дополнительные привилегии по умолчанию. Администратор хранилища метаданных является необязательной ролью, необходимой, если вы хотите управлять хранилищем таблиц и томов на уровне хранилища метаданных и удобно, если вы хотите централизованно управлять данными в нескольких рабочих областях в регионе. Дополнительные сведения см. в разделе "Права администратора" в каталоге Unity и (необязательно) Назначение роли администратора хранилища метаданных.

Управляемые и внешние таблицы и тома

Таблицы и тома могут быть управляемыми или внешними.

  • Управляемые таблицы полностью управляются каталогом Unity, что означает, что каталог Unity управляет как управлением, так и базовыми файлами данных для каждой управляемой таблицы. Управляемые таблицы хранятся в управляемом каталогом Unity расположении в облачном хранилище. Управляемые таблицы всегда используют формат Delta Lake. Управляемые таблицы можно хранить на уровнях метаданных, каталога или схемы.
  • Внешние таблицы — это таблицы, доступ к которым из Azure Databricks управляется Unity Catalog, но жизненный цикл данных и макет файлов управляется с помощью вашего поставщика облачных услуг и других платформ данных. Как правило, внешние таблицы используются для регистрации больших объемов существующих данных в Azure Databricks или при необходимости записи доступа к данным с помощью средств за пределами Azure Databricks. Внешние таблицы поддерживаются в нескольких форматах данных. После регистрации внешней таблицы в хранилище метаданных каталога Unity вы можете управлять доступом Azure Databricks к ней и работать с ней так же, как и с управляемыми таблицами.
  • Управляемые тома полностью управляются каталогом Unity, что означает, что каталог Unity управляет доступом к расположению хранилища тома в учетной записи поставщика облачных служб. При создании управляемого тома он автоматически хранится в расположении управляемого хранилища , назначенном содержащей схеме.
  • Внешние тома представляют существующие данные в расположениях хранения, управляемых за пределами Azure Databricks, но зарегистрированные в каталоге Unity для управления доступом и аудита из Azure Databricks. При создании внешнего тома в Azure Databricks необходимо указать его расположение, которое должно находиться в пути, определенном во внешнем расположении каталога Unity.

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

См. "Работа с управляемыми таблицами", "Работа с внешними таблицами" и "Управляемые и внешние тома".

Изоляция данных с помощью управляемого хранилища

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

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

Например, предположим, что у вашей организации есть политика соответствия нормативным требованиям компании, требующая, чтобы производственные данные, связанные с персоналом, размещались в контейнере abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net. В каталоге Unity это требование можно достичь, задав расположение на уровне каталога, создав каталог, например hr_prod, и назначив ему расположение abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog. Это означает, что управляемые таблицы или тома, созданные в каталоге hr_prod (например, с помощью CREATE TABLE hr_prod.default.table …) хранят данные в abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog. При необходимости можно указать расположения уровня схемы для упорядочивания данных на hr_prod catalog более детальном уровне.

Если изоляция хранилища не требуется для некоторых каталогов, можно при необходимости задать расположение хранилища на уровне хранилища метаданных. Это расположение служит расположением по умолчанию для управляемых таблиц и томов в каталогах и схемах, которые не имеют назначенного хранилища. Однако, как правило, Databricks рекомендует назначать отдельные управляемые расположения хранилища для каждого каталога.

Дополнительные сведения см. в разделе "Указание управляемого расположения в Unity Catalog" и "Данные физически разделены в хранилище".

Привязка каталога рабочей области

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

Примечание.

Для повышения изоляции данных можно также привязать доступ к облачному хранилищу и доступ к облачным службам к определенным рабочим областям. См. (необязательно) Назначение учетных данных хранилища определенным рабочим областям, (необязательно) Назначение внешнего расположения определенным рабочим областям и (необязательно) Назначение учетных данных службы определенным рабочим областям.

Аудит доступа к данным

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

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

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

Отслеживание происхождения данных

Каталог Unity можно использовать для сбора линейной последовательности данных времени выполнения по всем запросам, выполненным на любом языке, в кластере Azure Databricks или SQL-складе. История фиксируется до уровня столбца и включает записные книжки, задания и панели мониторинга, связанные с запросом. Дополнительные сведения см. в статье "Сбор и просмотр происхождения данных с помощью каталога Unity".

Федерация Lakehouse и Каталог Unity

Платформа Lakehouse Federation представляет собой платформу федерации запросов для Azure Databricks. Термин федерации запросов описывает набор функций, которые позволяют пользователям и системам выполнять запросы к нескольким изолированным источникам данных без необходимости мигрировать все данные в единую систему.

Azure Databricks использует каталог Unity для управления федерацией запросов. Используйте каталог Unity для настройки подключений только для чтения к популярным системам внешних баз данных и создания внешних каталогов, которые отражают базы данных внешних источников. Средства управления доступом к данным и отслеживания происхождения данных Unity Catalog гарантируют, что доступ к данным управляется и проверяется для всех федеративных запросов, сделанных пользователями в рабочих областях Azure Databricks.

См. статью "Что такое Федерация Lakehouse?".

Delta Sharing, Databricks Marketplace и Каталог Unity

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

Databricks Marketplace, открытый форум для обмена продуктами данных, построен на технологии Delta Sharing, и поэтому у вас должна быть рабочая область с поддержкой Unity Catalog, чтобы быть поставщиком Marketplace. См. раздел "Что такое Databricks Marketplace?".

Как мне настроить каталог Unity для моей организации?

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

Как подключается рабочая область к хранилищу метаданных? Она зависит от учетной записи и рабочей области:

  • Как правило, при создании рабочей области Azure Databricks в регионе в первый раз хранилище метаданных создается автоматически и присоединяется к рабочей области.
  • Для некоторых старых учетных записей администратор учетной записи должен создать хранилище метаданных и назначить рабочие области в этом регионе в хранилище метаданных. Указания см. в статье Создание хранилища метаданных в каталоге Unity.
  • Если у учетной записи уже есть хранилище метаданных, назначенное для региона, администратор учетной записи может решить, следует ли автоматически присоединить хранилище метаданных ко всем новым рабочим областям в этом регионе. См. раздел "Включить автоматическое назначение хранилища метаданных для новых рабочих областей".

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

  • Создайте каталоги и схемы для хранения таких объектов базы данных, как таблицы и тома.
  • Создайте управляемые места хранения для сохранения управляемых таблиц и томов в этих каталогах и схемах.
  • Предоставьте пользователю доступ к каталогам, схемам и объектам базы данных.

Рабочие области, которые автоматически активированы для Unity Catalog, подготавливают каталог рабочей области с обширными привилегиями, предоставленными всем пользователям рабочей области. Этот каталог является удобной отправной точкой для пробного каталога Unity.

Подробные инструкции по настройке см. в разделе "Настройка каталога Unity" и управление ими.

Перенос существующей рабочей области в каталог Unity

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

Миграция включает в себя следующее:

  1. Преобразование любых локальных групп рабочей области в группы уровня учетных записей. Каталог Unity централизует управление идентификацией на уровне учетной записи.
  2. Перенос таблиц и представлений, управляемых в хранилище метаданных Hive в каталог Unity.
  3. Обновите запросы и задания, чтобы ссылаться на новые таблицы каталога Unity вместо старых таблиц хранилища метаданных Hive.

Ниже приведены инструкции по управлению миграцией.

Требования и ограничения каталога Unity

Для каталога Unity требуются определенные типы форматов вычислений и файлов, описанные ниже. Ниже перечислены некоторые функции Azure Databricks, которые не поддерживаются в каталоге Unity во всех версиях среды выполнения Databricks.

Поддержка регионов

Все регионы поддерживают каталог Unity. Дополнительные сведения см. в разделе регионы Azure Databricks.

Требования к вычислениям

Каталог Unity поддерживается в кластерах под управлением Databricks Runtime 11.3 LTS или более поздней версии. Каталог Unity поддерживается по умолчанию во всех вычислительных версиях хранилища SQL.

Кластеры, работающие на более ранних версиях Databricks Runtime, не поддерживают все функции и возможности, доступные в общем доступе (GA) каталога Unity.

Чтобы обеспечить доступ к данным в Unity Catalog, для кластеров нужно настроить правильный режим доступа. Решение Unity Catalog защищено по умолчанию. Если кластер не настроен в стандартном или выделенном режиме доступа, кластер не может получить доступ к данным в каталоге Unity. См. режимы доступа.

Для получения подробной информации об изменениях функциональности Unity Catalog в каждой версии Databricks Runtime, см. примечания к выпуску.

Ограничения для каталога Unity зависят от режима доступа и версии среды выполнения Databricks. Сведения об ограничениях режима доступа к вычислительным ресурсам для каталога Unity.

Поддержка формата файлов

Каталог Unity поддерживает следующие форматы таблиц:

Ограничения

Каталог Unity имеет следующие ограничения. Некоторые из них относятся к старым версиям Databricks Runtime и режимам доступа к вычислительным ресурсам.

Структурированные рабочие нагрузки потоковой передачи имеют дополнительные ограничения в зависимости от режима выполнения Databricks и режима доступа. Смотрите ограничения режима доступа к вычислительным ресурсам для Unity Catalog.

Databricks выпускает новые функциональные возможности, которые регулярно сжимают этот список.

  • Группы, созданные ранее в рабочей области (то есть группы уровня рабочей области), нельзя использовать в инструкциях каталога GRANT Unity. Это позволяет обеспечить согласованное представление групп, которые могут охватывать несколько рабочих областей. Чтобы использовать группы в инструкциях GRANT, создайте группы на уровне учетной записи и обновите любую автоматизацию для управления пользователями или группами (например, для коннекторов SCIM, Okta и Microsoft Entra ID, а также для Terraform), чтобы ссылаться на конечные точки учетных записей вместо конечных точек рабочих пространств. См. Типы групп в Azure Databricks.
  • Рабочие нагрузки в R не поддерживают использование динамических представлений для обеспечения безопасности на уровне строк или на уровне столбцов для вычислений, работающих под управлением Databricks Runtime 15.3 и ниже.

Используйте выделенный вычислительный ресурс под управлением Databricks Runtime 15.4 LTS или более поздней версии для рабочих нагрузок в R, которые запрашивают динамические представления. Для таких рабочих нагрузок также требуется рабочая область, которая включена для бессерверных вычислений. Дополнительные сведения см. в разделе Точное управление доступом для выделенных вычислений (ранее однопользовательских вычислений).

  • Неглубокие клоны не поддерживаются в каталоге Unity для вычислительных процессов, использующих Databricks Runtime версии 12.2 LTS и ниже. Для создания управляемых таблиц в Databricks Runtime 13.3 LTS и более поздних версий можно использовать мелкие клоны. Их нельзя использовать для создания внешних таблиц независимо от версии Databricks Runtime. См. раздел "Неглубокое копирование для таблиц каталога Unity".

  • Разделение на сегменты не поддерживается для таблиц каталога Unity. При выполнении команд, пытающихся создать сегментированную таблицу в каталоге Unity, возникнет исключение.

  • Запись в одну и ту же папку или таблицу Delta Lake из рабочих областей в нескольких регионах может привести к ненадежной работе, если некоторые кластеры обращаются к каталогу Unity, а другие — нет.

  • Управление секциями для внешних таблиц с помощью таких команд, как ALTER TABLE ADD PARTITION требует включения ведения журнала метаданных секций. См. обнаружение секций для внешних таблиц.

  • При использовании режима перезаписи для таблиц, не находящихся в формате Delta, пользователь должен иметь привилегию CREATE TABLE на родительскую схему и должен быть владельцем существующего объекта ИЛИ иметь привилегию MODIFY для объекта.

  • Пользовательские функции Python не поддерживаются в Databricks Runtime 12.2 LTS и ниже. К ним относятся UDAF, UDTF и Pandas на Spark (applyInPandas и mapInPandas). Скалярные определяемые пользователем функции (UDF) Python поддерживаются в Databricks Runtime 13.3 LTS и более поздних версиях.

  • Scala UDFs не поддерживаются в среде выполнения Databricks 14.1 и ниже в стандартном режиме доступа. Scala скалярные UDF поддерживаются в Databricks Runtime 14.2 и выше на вычислениях со стандартным режимом доступа.

  • Стандартные пулы потоков Scala не поддерживаются. Вместо этого используйте специальные пулы потоков в org.apache.spark.util.ThreadUtils, например, org.apache.spark.util.ThreadUtils.newDaemonFixedThreadPool. Однако следующие пулы потоков в ThreadUtils не поддерживаются: ThreadUtils.newForkJoinPool и любой пул потоков ScheduledExecutorService.

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

Модели, зарегистрированные в каталоге Unity, имеют дополнительные ограничения. Смотрите ограничения.

Квоты ресурсов

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

Вы можете отслеживать использование своей квоты с помощью API квот ресурсов Unity Catalog. См. статью "Мониторинг использования квот ресурсов каталога Unity".