29.1. Добавление Parquet-файлов в аналитическую таблицу (metastore.add_files) #

Требуемые права:

  • Право INSERT на аналитическую таблицу.

  • Право SELECT на общий каталог, если Parquet-файлы добавляются из этого каталога.

За подробной информацией о хранимых процедурах и правах на них обратитесь к Разделу 22.1.

Выполните следующую команду:

  SELECT metastore.add_files('имя_таблицы', 'путь_к_Parquet-файлам', 'путь_к_JSON');

Где:

  • имя_таблицы: имя аналитической таблицы, в которую добавляются Parquet-файлы.

  • путь_к_Parquet-файлам: путь к Parquet-файлам, которые добавляются в аналитическую таблицу.

    Возможные значения:

    • Путь к любому каталогу хранилища, начинающийся с префикса хранилища, например file:///tmp/my_data/ для локального хранилища или s3://bucket/path/ для S3-хранилища.

    • Путь внутри общего каталога из таблицы метаданных pga_folder, начиная с имени каталога.

    Для нескольких Parquet-файлов поместите все файлы в один каталог и укажите путь к каталогу с / в конце. Каталог должен содержать только добавляемые Parquet-файлы.

    Для отдельного Parquet-файла укажите полный путь с именем файла в конце.

  • путь_к_JSON: путь к JSON-файлу с параметрами хранения Parquet-файлов.

    Эти параметры применяются при создании новых Parquet-файлов. В хранимой процедуре metastore.add_files параметры игнорируются для несекционированных таблиц, так как Parquet-файлы добавляются в изначальном виде, но применяются для секционированных таблиц, где Parquet-файлы разделяются на несколько файлов. В хранимой процедуре metastore.copy_table параметры применяются всегда, поскольку из результатов SQL-команды создаются новые Parquet-файлы.

    За подробной информацией о секционировании обратитесь к Главе 30.

    Необязательный параметр.

Postgres Pro AXE выполняет следующие действия:

  1. Проверяет параметры ввода и права пользователя.

  2. Проверяет, что метаданные Parquet-файлов и аналитической таблицы совместимы: количество, порядок, имена и типы столбцов должны совпадать.

  3. Создаёт новые записи в таблицах метаданных pga_snapshot и pga_data_file.

  4. Копирует Parquet-файлы в каталог хранилища аналитической таблицы в новый подкаталог, именем которого является идентификатор снимка.

    Если Parquet-файлы добавляются в секционированную аналитическую таблицу, они разделяются на несколько файлов по столбцам секции и для этих файлов создаётся дерево каталогов.

  5. Обновляет статистику в таблицах метаданных pga_table_stats, pga_table_column_stats и pga_file_column_statistics.

Пример 29.1. Выполнение хранимой процедуры metastore.add_files

  SELECT metastore.add_files('table_example', 'folder/file.parquet', 'folder/options.json');