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');