Создание представлений и управление ими
В этой статье объясняется, как создавать представления в каталоге Unity. См . представление?.
Необходимые разрешения
Чтобы создать представление, выполните приведенные действия.
- Необходимо разрешение
USE CATALOG
для родительского каталога и разрешенияUSE SCHEMA
иCREATE TABLE
для родительской схемы. Администратор хранилища метаданных или владелец каталога могут предоставить вам все эти разрешения. Владелец схемы может предоставить вам разрешения наUSE SCHEMA
иCREATE TABLE
для схемы. - Вы должны иметь возможность читать таблицы и представления, на которые ссылается представление (
SELECT
в таблице или представлении, а такжеUSE CATALOG
в каталоге иUSE SCHEMA
схеме). - Если представление ссылается на таблицы в локальном хранилище метаданных Hive рабочей области, доступ к представлению можно получить только из рабочей области, содержащей локальные таблицы рабочей области. По этой причине Databricks рекомендует создавать представления только из таблиц или представлений, которые находятся в хранилище метаданных каталога Unity.
- Невозможно создать представление, которое ссылается на представление, которое было предоставлено вам совместно с помощью разностного общего доступа. См. раздел "Что такое разностный общий доступ?".
Для чтения представления необходимые разрешения зависят от типа вычислений, версии Databricks Runtime и режима доступа:
- Для всех вычислительных ресурсов необходимо иметь
SELECT
представление в самом представлении,USE CATALOG
в родительском каталоге иUSE SCHEMA
родительской схеме. Это относится ко всем типам вычислений, которые поддерживают каталог Unity, включая хранилища SQL, кластеры в режиме общего доступа и кластеры в режиме доступа к одному пользователю в Databricks Runtime 15.4 и более поздних версий. - Для кластеров в Databricks Runtime 15.3 и ниже, использующих режим доступа к одному пользователю, также необходимо иметь
SELECT
все таблицы и представления, на которые ссылается представление, в дополнение кUSE CATALOG
родительским каталогам иUSE SCHEMA
их родительским схемам.
Примечание.
Если вы используете кластер с одним пользователем в Databricks Runtime 15.4 LTS и выше, и вы хотите избежать требования к использованию SELECT
базовых таблиц и представлений, убедитесь, что рабочая область включена для бессерверных вычислений.
Бессерверные вычислительные ресурсы обрабатывают фильтрацию данных, которая позволяет получить доступ к представлению, не требуя разрешений для базовых таблиц и представлений. Помните, что при использовании отдельных пользовательских вычислений для запросов представлений могут взиматься бессерверные затраты на вычисления. Дополнительные сведения см. в разделе "Точное управление доступом" для вычислений одного пользователя.
Создание представления
Чтобы создать представление, выполните следующую команду SQL. Элементы в квадратных скобках являются необязательными. Замените значения-заполнители:
<catalog-name>
— имя каталога.<schema-name>
— имя схемы.<view-name>
— имя представления.<query>
— запрос, столбцы, таблицы и представления, используемые для формирования представления.
CREATE VIEW <catalog-name>.<schema-name>.<view-name> AS
SELECT <query>;
Например, чтобы создать представление с именем sales_redacted
из столбцов в таблице sales_raw
, выполните следующие действия.
CREATE VIEW sales_metastore.sales.sales_redacted AS
SELECT
user_id,
email,
country,
product,
total
FROM sales_metastore.sales.sales_raw;
Вы также можете создать представление с помощью поставщика Databricks Terraform и databricks_table. Вы можете получить список полных имен представлений с помощью databricks_views.
Удаление представления
Вы должны быть владельцем представления, чтобы удалить представление. Чтобы удалить представление, выполните следующую команду SQL:
DROP VIEW IF EXISTS catalog_name.schema_name.view_name;