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


Что такое представление?

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

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

Сведения о создании представлений см. в следующем разделе:

Представления в каталоге Unity

В каталоге Unity представления располагаются на третьем уровне трехуровневого пространства имен (catalog.schema.view):

схема объектной модели каталога Unity , ориентированная на представление

Представление обычно хранит текст запроса для одного или нескольких источников данных или таблиц в хранилище метаданных. В Azure Databricks представление эквивалентно кадру данных Spark, сохраненному как объект в схеме. В отличие от DataFrame, можно запрашивать представления из любого места в Azure Databricks, при условии, что у вас есть разрешение на это. Создание представления не обрабатывает и не записывает данные. Только текст запроса регистрируется в хранилище метаданных в связанной схеме.

Примечание.

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

Материализованные представления

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

Вы можете зарегистрировать материализованные представления в каталоге Unity с помощью Databricks SQL или определить их как часть конвейера Delta Live Tables. См. статью "Использование материализованных представлений в Databricks SQL" и "Что такое Delta Live Tables?".

Временные представления

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

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

Динамические представления

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

Представления в хранилище метаданных Hive (устаревшая версия)

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

Глобальное временное представление Hive (устаревшая версия)

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

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

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

Примечание.

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

  • Хранилища SQL.
  • Общие вычислительные ресурсы.
  • Однопользовательские вычисления в Databricks Runtime 15.4 LTS и более поздних версий с поддержкой точного управления доступом.

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

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

  • Для всех вычислительных ресурсов необходимо иметь SELECT в самом представлении, USE CATALOG в родительском каталоге и USE SCHEMA в родительской схеме. Это относится ко всем типам вычислений, которые поддерживают каталог Unity, включая хранилища SQL, кластеры в режиме общего доступа и кластеры в режиме доступа к одному пользователю в Databricks Runtime 15.4 и более поздних версий.
  • Для кластеров версии 15.3 и ниже Databricks Runtime, использующих режим доступа с одним пользователем, необходимо также иметь SELECT для всех таблиц и представлений, на которые ссылается представление, помимо USE CATALOG в родительских каталогах и USE SCHEMA в их родительских схемах.

Примечание.

Если вы используете один пользовательский кластер в Databricks Runtime 15.4 LTS и выше, и вы хотите избежать необходимости SELECT в базовых таблицах и представлениях, убедитесь, что рабочей области включена для бессерверных вычислений.

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