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


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

В этой статье объясняется, как создавать представления в каталоге 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;