25.1. Создание аналитической таблицы (metastore.add_table) #
25.1.1. Создание аналитической таблицы из Parquet-файла #
Требуемые права: только администратор Postgres Pro AXE. За подробной информацией о хранимых процедурах и правах обратитесь к Разделу 22.1.
Выполните следующую команду:
SELECT metastore.add_table('имя_схемы.имя_таблицы', 'имя_хранилища', 'URI_Parquet-файла', 'столбцы_для_секционирования');Где:
имя_схемы.имя_таблицы: имя аналитической схемы, в которой создаётся аналитическая таблица, а также имя самой таблицы.Имя схемы можно пропустить и просто указать имя таблицы (без точки). В этом случае используется аналитическая схема по умолчанию
main.В одной схеме невозможно создать две таблицы с одинаковым именем. Имена аналитических схем содержатся в столбце
schema_nameтаблицы метаданныхpga_schema. Имена аналитических таблиц содержатся в столбцеtable_nameтаблицы метаданныхpga_table.имя_хранилища: имя хранилища, в котором располагаются Parquet-файлы аналитической таблицы.URI_Parquet-файла: URI Parquet-файла, из которого создаётся аналитическая таблица.URI должен начинаться с
file:///илиs3://.столбцы_для_секционирования: разделённый запятыми список столбцов, по которым аналитическая таблица секционируется.Необязательный параметр.
Postgres Pro AXE выполняет следующие действия:
Проверяет параметры ввода и права пользователя.
Проверяет, что Parquet-файл существует.
Извлекает информацию о столбцах из Parquet-файла.
Устанавливает соответствие между типом данных каждого столбца из Parquet-файла и типом данных, поддерживаемым pgpro_metastore.
Создаёт новые записи в таблицах метаданных
pga_snapshot,pga_tableиpga_column.Создаёт новые записи в таблицах метаданных
pga_partition_info,pga_partition_columnиpga_partition_value, если аналитическая таблица секционирована.
Пример 25.1. Выполнение хранимой процедуры metastore.add_table
SELECT metastore.add_table('table_example', 'storage_example', 'file:///home/user/tmp/parquet_data/t.parquet', 'column_1,column_2,column_3');25.1.2. Создание аналитической таблицы из таблицы-кучи #
Требуемые права: только администратор Postgres Pro AXE. За подробной информацией о хранимых процедурах и правах обратитесь к Разделу 22.1.
Выполните следующую команду:
SELECT metastore.add_table('имя_схемы.имя_таблицы', 'имя_хранилища', 'имя_таблицы-кучи', 'столбцы_для_секционирования');Где:
имя_схемы.имя_таблицы: имя аналитической схемы, в которой создаётся аналитическая таблица, а также имя самой таблицы.Имя схемы можно пропустить и просто указать имя таблицы (без точки). В этом случае используется аналитическая схема по умолчанию
main.В одной схеме невозможно создать две таблицы с одинаковым именем. Имена аналитических схем содержатся в столбце
schema_nameтаблицы метаданныхpga_schema. Имена аналитических таблиц содержатся в столбцеtable_nameтаблицы метаданныхpga_table.имя_хранилища: имя хранилища, в котором располагаются Parquet-файлы аналитической таблицы.имя_таблицы-кучи: полностью заданное имя таблицы-кучи, из которой создаётся аналитическая таблица, начинающееся с имени схемы.столбцы_для_секционирования: разделённый запятыми список столбцов, по которым аналитическая таблица секционируется.Необязательный параметр.
Postgres Pro AXE выполняет следующие действия:
Проверяет параметры ввода и права пользователя.
Проверяет, что таблица-куча существует.
Извлекает информацию о столбцах таблицы-кучи через запросы к служебным таблицам Postgres Pro.
Устанавливает соответствие между типом данных каждого столбца и типом данных, поддерживаемым pgpro_metastore.
Создаёт новые записи в таблицах метаданных
pga_snapshot,pga_tableиpga_column.Создаёт новые записи в таблицах метаданных
pga_partition_info,pga_partition_columnиpga_partition_value, если аналитическая таблица секционирована.
Пример 25.2. Выполнение хранимой процедуры metastore.add_table
SELECT metastore.add_table('table_example', 'storage_example', 'public.heap_table_example', 'column_1,column_2,column_3');