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


Что такое Unity Catalog?

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

Примечание.

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

Обзор Unity Catalog

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

Схема Unity Catalog

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

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

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

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

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

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

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

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

См. статью Создание хранилища метаданных Unity Catalog.

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

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

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

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

Уровень два:

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

Уровень три:

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

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

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

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

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

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

Дополнительные сведения о защищаемых объектах Delta Share см. в разделе "Общий доступ к данным и ресурсам искусственного интеллекта" безопасно с помощью разностного общего доступа.

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

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

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

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

Вы также можете использовать обозреватель каталогов, интерфейс командной строки Databricks и ИНТЕРФЕЙСы REST API для управления разрешениями объектов.

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

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

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

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

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

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

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

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

  • Управляемые таблицы полностью управляются каталогом Unity, что означает, что каталог Unity управляет как управлением, так и базовыми файлами данных для каждой управляемой таблицы. Управляемые таблицы хранятся в управляемом каталогом Unity расположении в облачном хранилище. Управляемые таблицы всегда используют формат Delta Lake. Управляемые таблицы можно хранить на уровнях метаданных, каталога или схемы.
  • Внешние таблицы — это таблицы , доступ которых из Azure Databricks управляется каталогом Unity, но жизненный цикл данных и макет файлов управляется с помощью поставщика облачных служб и других платформ данных. Как правило, внешние таблицы используются для регистрации больших объемов существующих данных в 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. Это означает, что управляемые таблицы или тома, созданные в hr_prod каталоге (например, с помощью) CREATE TABLE hr_prod.default.table …хранят данные в abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/каталоге unity. При необходимости можно указать расположения уровня схемы для упорядочивания данных на hr_prod catalog более детальном уровне.

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

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

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

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

Примечание.

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

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

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

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

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

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

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

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

Федерация Lakehouse — это платформа федерации запросов для Azure Databricks. Федерация запросов терминов описывает коллекцию функций, позволяющих пользователям и системам выполнять запросы к нескольким разложенным источникам данных без необходимости переносить все данные в единую систему.

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

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

Разностный доступ, Databricks Marketplace и каталог Unity

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

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

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

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

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

Рабочие области, которые автоматически включены для каталога Unity, подготавливают каталог рабочей области с широкими привилегиями, предоставленными всем пользователям рабочей области. Этот каталог является удобной отправной точкой для пробного каталога 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, не поддерживают все функции и функциональные возможности каталога Unity.

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

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

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

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

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

Ограничения

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

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

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

  • Группы, созданные ранее в рабочей области (то есть группы уровня рабочей области), нельзя использовать в инструкциях каталога GRANT Unity. Это позволяет обеспечить согласованное представление групп, которые могут охватывать несколько рабочих областей. Чтобы использовать группы в GRANинструкциях T, создайте группы на уровне учетной записи и обновите любую автоматизацию для управления субъектами или группами (например, SCIM, Okta и Microsoft Entra ID (ранее Azure Active Directory) соединителей и Terraform), чтобы ссылаться на конечные точки учетных записей вместо конечных точек рабочей области. См . разницу между группами учетных записей и локальными группами рабочей области.

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

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

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

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

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

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

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

  • В Databricks Runtime 14.1 и ниже в общих кластерах не поддерживаются функции Scala UDFs. Скалярные определяемые пользователем функции scala поддерживаются в 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.

Приведенные ниже значения квоты указаны относительно родительского (или прародительского) объекта в каталоге Unity.

Object Parent Значение
table schema 10000
table хранилище метаданных 1000 000
том schema 10000
function schema 10000
зарегистрированная модель schema 1000
зарегистрированная модель хранилище метаданных 5000
версия модели зарегистрированная модель 10000
версия модели хранилище метаданных 100000
schema сценариев 10000
сценариев хранилище метаданных 1000
подключение хранилище метаданных 1000
Учетные данные хранилища хранилище метаданных 200
Внешнее расположение хранилище метаданных 10000

Ограничения разностного общего доступа см. в разделе "Квоты ресурсов".