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


Что такое Unity Catalog?

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

Ключевые компоненты каталога Unity включают следующие компоненты:

  • Унифицированный контроль доступа: Каталог Unity предлагает одно место для управления разрешениями для таблиц, файлов, моделей и других объектов из одного интерфейса.
  • Обнаружение данных: Каталог Unity позволяет пользователям находить и понимать ресурсы данных с помощью интерфейса, обогащенного тегами, описаниями и метаданными.
  • Автоматическое отслеживание происхождения: Автоматически отслеживайте поток данных и способ ее преобразования из источника в конечные представления и панели мониторинга.
  • Аудита: Сохраняйте полную запись всех действий по доступу к данным и системе для удовлетворения требований безопасности и соответствия нормативным требованиям.
  • Мониторинг качества данных: Заранее отслеживайте работоспособность ресурсов данных с помощью встроенного профилирования и оповещений, которые перехватывают аномалии, прежде чем они достигают подчиненных потребителей.
  • Безопасный общий доступ к данным: Безопасно обмен динамическими данными между организациями и облаками с помощью открытого протокола Delta Sharing, что устраняет необходимость в сложном копировании ETL или данных.

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

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

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

Защищаемые объекты находятся в иерархии объектной модели каталога Unity, с корнями в специальном объекте, называемом хранилищем метаданных. В нем ресурсы данных, такие как таблицы, представления, тома, функции и модели соответствуют пространству имен трех уровней (catalog.schema.object). Другие объекты, такие как учетные данные хранения, внешние расположения, подключения и общие ресурсы, сидят непосредственно под хранилищем метаданных.

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

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

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

Администраторы отвечают за надзор за управлением в каталоге Unity. Ниже приведены различные уровни ролей администратора и их привилегии по умолчанию:

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

Дополнительные сведения см. в разделе "Права администратора" в каталоге Unity.

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

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

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

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

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

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

Администраторы хранилища метаданных, владельцы объекта и пользователи с MANAGE privilege объектом могут предоставлять и отзывать доступ. Сведения об управлении привилегиями в каталоге 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 использует облачное хранилище двумя основными способами:

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

Управление доступом к облачному хранилищу посредством внешних местоположений

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

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

Связь между учетными данными хранилища, внешними расположениями и облачным хранилищем

На этой схеме:

  • Каждое внешнее расположение ссылается на учетные данные для доступа к хранилищу и расположение облачного хранилища.
  • Несколько внешних локаций могут ссылаться на одни и те же учетные данные для хранения. Учетные данные хранилища 1 предоставляют доступ ко всему в пути bucket/tables/*, поэтому как внешнее расположение A, так и внешнее расположение B ссылаются на него.

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

Иерархия расположения управляемого хранилища

Уровень, на котором определяется управляемое хранилище в каталоге 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 рекомендует назначать отдельные управляемые расположения хранилища для каждого каталога.

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

Например, если таблица myCatalog.mySchema.myTable создана в my-region-metastore, расположение хранилища таблиц определяется в соответствии со следующим правилом:

  1. Если для mySchema было указано местоположение, оно будет там сохранено.
  2. Если нет, и если указано расположение на myCatalog, оно будет храниться там.
  3. Наконец, если местоположение не предоставлено на myCatalog, оно будет сохранено в месте, связанном с my-region-metastore.

Иерархия хранилища каталога Unity

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

Изоляция среды с помощью привязки каталога рабочей области

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

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

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

Каталоги каталога Unity

Примечание.

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

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

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

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

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

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

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

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

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

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

Чтобы узнать, как обновить рабочую область без каталога Unity до каталога Unity, см. Обновление рабочей области Azure Databricks до каталога Unity.

Требования и ограничения каталога 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 поддерживает следующие форматы таблиц:

Ограничения

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

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

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

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

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

    • Используйте выделенный вычислительный ресурс под управлением Databricks Runtime 15.4 LTS или более поздней версии для рабочих нагрузок в R, которые запрашивают динамические представления. Для таких рабочих нагрузок также требуется рабочая область, которая включена для бессерверных вычислений. Дополнительные сведения см. в Детализированном управлении доступом на выделенных вычислительных ресурсах.
  • Управляемая таблица может быть поверхностно клонирована в другую управляемую таблицу на Databricks Runtime 13.3 LTS и выше. Внешняя таблица может быть неглубоко клонирована в другую внешнюю таблицу начиная с Databricks Runtime 14.2 и выше. Управляемая таблица не может быть клонирована в внешнюю таблицу. Кроме того, внешняя таблица не может быть клонирована в управляемую таблицу. Дополнительные сведения см. в разделе "Мелкий клон" для таблиц каталога 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 и ниже в стандартном режиме доступа. Скалярные определяемые пользователем функции поддерживаются в Databricks Runtime 14.2 и более поздних версий для вычислений с стандартным режимом доступа.

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

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

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

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

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

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

Дополнительные ресурсы