25.3. Создание представления Postgres Pro для аналитической таблицы (metastore.create_view) #
Вы можете создать представление Postgres Pro на основе Parquet-файлов аналитической таблицы, чтобы работать с этой таблицей как со стандартной реляционной таблицей, используя команды SELECT.
Важно
Представления Postgres Pro можно создать повторно только в периоды нулевой активности пользователей, чтобы предотвратить возможную потерю данных.
Перед созданием представления Postgres Pro убедитесь, что аналитическая таблица содержит Parquet-файлы. Если нет, Postgres Pro AXE возвращает ошибку.
Требуемые права:
Право
SELECTна аналитическую таблицу.Право
CREATEна схему Postgres Pro, которая содержит представление.
За подробной информацией о хранимых процедурах и правах на них обратитесь к Разделу 22.1.
Выполните следующую команду:
SELECT metastore.create_view('имя_схемы.имя_таблицы', ['имя_схемы_Postgres_Pro'], [true_или_false']);Где:
имя_схемы.имя_таблицы: имя аналитической схемы, содержащей аналитическую таблицу, для которой создаётся представление Postgres Pro, а также имя самой таблицы.Имя схемы можно пропустить и просто указать имя таблицы (без точки). В этом случае используется аналитическая схема по умолчанию
main.имя_схемы_Postgres_Pro: имя схемы Postgres Pro, в которой создаётся представление.Важно
Это не имя аналитической схемы из таблицы метаданных
pga_schema.Значение по умолчанию: '' (пустая строка).
Необязательный параметр. Если он не задан, Postgres Pro выбирает схему автоматически. Как правило, это схема
public.true_или_false: указывает, следует ли удалить существующее представление Postgres Pro с таким же именем в указанной схеме перед созданием нового представления.Значение по умолчанию:
false.Необязательный параметр.
Postgres Pro AXE выполняет следующие действия:
Проверяет параметры ввода и права пользователя.
Получает метаданные аналитической таблицы и путь к каталогу хранилища с Parquet-файлами этой таблицы.
Генерирует команду
CREATE VIEW, в которой источником данных является результат вызова функцииread_parquet().Выполняет команду
CREATE VIEW.Предоставляет текущему пользователю права на представление Postgres Pro.
Пример 25.4. Выполнение хранимой процедуры metastore.create_view
Если аналитическая таблица создана без указания аналитической схемы, таблица содержится в аналитической схеме по умолчанию — main, а представление Postgres Pro также имеет имя table_name:
SELECT metastore.create_view('table_name');Если аналитическая таблица содержится в аналитической схеме my_schema, имя представления Postgres Pro — my_schema.table_name:
SELECT metastore.create_view('my_schema.table_name');Пример 25.5. Как обрабатывается третий параметр
Предположим, вы успешно создали представление Postgres Pro, выполнив следующую команду:
SELECT metastore.create_view('my_view');Вы не удаляли представление Postgres Pro с помощью следующей команды:
DROP VIEW my_view;
Затем вы попытались создать представление Postgres Pro с таким же именем:
SELECT metastore.create_view('my_view');Вы получаете ошибку, указывающую, что представление Postgres Pro с таким именем уже существует.
Однако если выполнить следующую команду:
SELECT metastore.create_view('my_view', '', true);Ошибки нет, хранимая процедура metastore.create_view проверяет, существует ли представление Postgres Pro с таким же именем:
Если представление Postgres Pro не существует, создаётся новое представление.
Если представление Postgres Pro существует, проверяется, используется ли это представление какой-либо командой в СУБД:
Если такой команды нет, удаляет существующее представление и создаёт новое.
Если представление используется в команде, операция завершается с сообщением о том, что существующее представление невозможно безопасно удалить.