Что такое представление?
Представление — это объект, доступный только для чтения, который является результатом запроса по одной или нескольким таблицам и представлениям в хранилище метаданных каталога 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
в базовых таблицах и представлениях, убедитесь, что рабочей области включена для бессерверных вычислений.
Бессерверные вычислительные ресурсы обрабатывают фильтрацию данных, которая позволяет получить доступ к представлению, не требуя разрешений для базовых таблиц и представлений. Имейте в виду, что при использовании вычислений для одного пользователя для выполнения запросов к представлениям вы можете понести расходы на бессерверные вычисления. Дополнительные сведения см. в разделе о детализированном управлении доступом на вычислениях для одного пользователя.