Настройте автономные материализованные представления

Настройте автономные материализованные представления, включая управление доступом к результатам запроса, при создании материализованного представления с помощью CREATE OR REPLACE MATERIALIZED VIEW или после его создания с помощью ALTER TABLE.

Описание материализованного представления

Чтобы получить столбцы и типы данных для материализованного представления, используйте инструкцию DESCRIBE. Чтобы получить столбцы, типы данных и метаданные, такие как владелец, расположение, время создания и состояние обновления для материализованного представления, используйте .DESCRIBE EXTENDED Чтобы отправить DESCRIBE инструкцию, используйте редактор SQL в пользовательском интерфейсе Azure Databricks, Databricks SQL CLI или Databricks SQL API.

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

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

  1. Щелкните значок данных.Каталог на боковой панели.
  2. В дереве обозревателя каталогов слева откройте каталог и выберите схему, в которой находится материализованное представление.
  3. Откройте элемент Таблиц в выбранной схеме, а затем щелкните материализованное представление.

Здесь вы можете использовать вкладки под именем материализованного представления для просмотра и редактирования сведений о нём, включая:

  • Обновление состояния и расписания
  • Просмотрите сведения о конвейере, чтобы увидеть историю обновлений и подробные журналы для каждого обновления. Щелкните Просмотреть сведения об обновлении на вкладке Обзор, чтобы просмотреть сведения о конвейере.
  • Схема таблицы
  • Примеры данных (требуется активный вычислительный ресурс)
  • Permissions
  • Происхождение, включая таблицы и потоки данных, от которых зависит это материализованное представление
  • Аналитические сведения об использовании
  • Мониторы, созданные для этого материализованного представления

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

Обновление определения материализованного представления

Запрос, указывающий материализованное представление, является его определением. Чтобы изменить определение материализованного представления, изменить запрос или создать новый запрос CREATE OR REPLACE MATERIALIZED VIEW с тем же именем представления, а затем запустите его. Полное обновление выполняется для обновления материализованного представления, а дальнейшие обновления используют новое определение.

Управление доступом к материализованным представлениям

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

Вы также можете изменить владельца материализованного представления.

Предоставление привилегий материализованному представлению

Чтобы предоставить доступ к материализованному представлению, используйте инструкциюGRANT:

GRANT <privilege_type> ON <mv_name> TO <principal>;

Privilege_type может принимать следующие значения:

  • SELECT — пользователь может SELECT материализованное представление.
  • REFRESH — пользователь может REFRESH материализованное представление. Обновления выполняются с помощью разрешений владельца.

В следующем примере создается материализованное представление и предоставляются права выбора и обновления для пользователей:

CREATE MATERIALIZED VIEW mv_name AS SELECT * FROM source_table;

-- Grant read-only access:
GRANT SELECT ON mv_name TO read_only_user;

-- Grant read and refresh access:
GRANT SELECT ON mv_name TO refresh_user;
GRANT REFRESH ON mv_name TO refresh_user;

Отмена привилегий из материализованного представления

Чтобы отменить доступ из материализованного представления, используйте инструкциюREVOKE:

REVOKE privilege_type ON <mv_name> FROM principal;

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

  • Владелец материализованного представления или другие пользователи, которые потеряли доступ к материализованному представлению, больше не могут REFRESH использовать это материализованное представление, и материализованное представление становится неактуальным.
  • Если автоматизировано с расписанием, следующий запланированный REFRESH либо не выполняется, либо завершится сбоем.

В следующем примере привилегия SELECT отзывается у read_only_user.

REVOKE SELECT ON mv_name FROM read_only_user;

Изменение владельца материализованного представления

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

  1. В рабочей области Azure Databricks щелкните значок данных.Каталог , чтобы открыть обозреватель каталогов.

  2. Выберите материализованное представление, которое требуется обновить.

  3. В правой боковой панели в разделе "Об этом материализованном представлении" найдите Владельца и щелкните значок карандаша для редактирования.

    Note

    Если вы получаете сообщение о необходимости обновить владельца, изменив пользователя в поле Run as в настройках конвейера, это означает, что материализованное представление задано в конвейере Lakeflow, а не как отдельная таблица. Сообщение содержит ссылку на параметры конвейера, где можно изменить пользователя "Запуск от имени ".

  4. Выберите нового владельца для материализованного представления.

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

    Выберите права "Предоставить управление " и "Предоставить SELECT " для предоставления прав на сохранение.

  5. Нажмите кнопку "Сохранить", чтобы изменить владельца.

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

Когда владелец теряет права доступа к исходным таблицам

Если вы измените владельца, и у нового владельца не будет доступа к таблицам-источникам (или если привилегии SELECT будут отозваны на исходных базовых таблицах), пользователи по-прежнему смогут запрашивать материализованное представление. Однако:

  • Они не могут REFRESH материализованное представление.
  • Следующее запланированное обновление материализованного представления завершается ошибкой.

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

Версия для выполнения

Материализованные представления всегда работают на последней версии Databricks SQL runtime. Свойство pipelines.channel таблицы, ранее использовавшееся для выбора preview канала current во время выполнения, больше не поддерживается и не действует. Если существующее определение включает это свойство, оно безопасно игнорируется, и вам не нужно его удалять.