29.2. Копирование OLAP-данных из таблиц-куч в аналитическую таблицу (metastore.copy_table) #
Вы можете использовать SQL-команду, чтобы скопировать OLAP-данные из таблиц-куч в аналитическую таблицу.
Требуемые права:
Право
INSERTна аналитическую таблицу.Право на выполнение SQL-команды, которая передаётся вторым параметром.
За подробной информацией о хранимых процедурах и правах на них обратитесь к Разделу 22.1.
Выполните следующую команду:
SELECT metastore.copy_table('имя_таблицы', SQL-команда, 'путь_к_JSON');Где:
имя_таблицы: имя аналитической таблицы, в которую копируются OLAP-данные.SQL-команда: SQL-команда, которая извлекает OLAP-данные из таблиц-куч, напримерSELECT * FROM my_pgtable.Функции вне схемы
pg_catalogне поддерживаются.путь_к_JSON: путь к JSON-файлу с параметрами хранения Parquet-файлов.Эти параметры применяются при создании новых Parquet-файлов. В хранимой процедуре
metastore.add_filesпараметры игнорируются для несекционированных таблиц, так как Parquet-файлы добавляются в изначальном виде, но применяются для секционированных таблиц, где Parquet-файлы разделяются на несколько файлов. В хранимой процедуреmetastore.copy_tableпараметры применяются всегда, поскольку из результатов SQL-команды создаются новые Parquet-файлы.За подробной информацией о секционировании обратитесь к Главе 30.
Необязательный параметр.
Postgres Pro AXE выполняет следующие действия:
Проверяет параметры ввода и права пользователя.
Создаёт временный каталог хранилища для результатов SQL-команды.
Выполняет SQL-команду и создаёт Parquet-файлы с её результатами.
Проверяет, что метаданные Parquet-файлов и аналитической таблицы совместимы: количество, порядок, имена и типы столбцов должны совпадать.
Создаёт новые записи в таблицах метаданных
pga_snapshotиpga_data_file.Копирует Parquet-файлы в каталог хранилища аналитической таблицы в новый подкаталог, именем которого является идентификатор снимка.
Если Parquet-файлы добавляются в секционированную аналитическую таблицу, они разделяются на несколько файлов по столбцам секции и для этих файлов создаётся дерево каталогов.
Обновляет статистику в таблицах метаданных
pga_table_stats,pga_table_column_statsиpga_file_column_statistics.
Пример 29.2. Выполнение хранимой процедуры metastore.copy_table
SELECT metastore.copy_table('my_metastore_table', $$select * from my_pgtable$$, 'folder/options.json');