20.3. Удаление Parquet-файлов #
В Postgres Pro AXE удаление Parquet-файлов выполняется в два этапа. Сначала снимки, на которые ссылаются записи из таблицы метаданных pga_data_file, необходимо отметить как устаревшие, чтобы исключить связанные Parquet-файлы из аналитических запросов. После этого Parquet-файлы можно удалять.
Перед выполнением этой инструкции убедитесь, что вам назначена роль metastore_admin. За подробной информацией обратитесь к Главе 14.
Чтобы удалить Parquet-файлы:
Отметьте снимки как устаревшие одним из следующих способов:
Чтобы отметить снимки, созданные до определённой даты и времени, как устаревшие, выполните следующий запрос:
SELECT metastore.expire_snapshot(
пороговая_дата_и_время);Где
пороговая_дата_и_время— это пороговое значение для даты и времени создания снимка.Дата и время создания снимка содержатся в столбце
snapshot_timeтаблицы метаданныхpga_snapshot.Поддерживаемые форматы даты и времени:
Дата в формате гггг-мм-дд.
Пример 20.3.
2024-11-28Дата в формате гггг-мм-дд и время в формате чч:мм:сс.
Пример 20.4.
2025-11-28 12:22:46Дата в формате гггг-мм-дд и время в формате чч:мм:сс с указанием часового пояса.
Пример 20.5.
2025-11-28 12:22:46+03Дата в формате гггг-мм-дд и время в формате чч:мм:сс.сссссс с указанием часового пояса, где дробная часть секунд имеет не более 6 знаков.
Пример 20.6.
2025-11-28 12:22:46.123456+03
Пример 20.7.
SELECT metastore.expire_snapshot('2025-11-13 12:22:46.123456+03');Чтобы отметить снимки с определёнными идентификаторами как устаревшие, выполните следующий запрос:
SELECT metastore.expire_snapshot('[список_идентификаторов_снимков]');Где
список_идентификаторов_снимков— это разделённый запятыми список идентификаторов снимков.Идентификаторы снимков содержатся в столбце
snapshot_idтаблицы метаданныхpga_snapshot.Пример 20.8.
SELECT metastore.expire_snapshot('[1,2,3,4]');
После выполнения этого запроса pgpro_metastore выполняет следующие действия:
Отмечает снимки как устаревшие, если их записи из таблицы метаданных
pga_snapshotимеют значенияsnapshot_time, которые меньше, чемпороговая_дата_и_время, или имеют значенияsnapshot_id, которые равняются одному из указанных идентификаторов снимков.Находит записи в таблице метаданных
pga_data_fileсо значениямиbegin_snapshot, которые ссылаются на устаревшие снимки, и создаёт связанные записи в таблице метаданныхpga_files_scheduled_for_deletion, если эти записи не были созданы при предыдущих вызовахexpire_snapshot.Примечание
Это не влияет на другие таблицы метаданных, у которых значения
begin_snapshotссылаются на устаревшие снимки.
Повторно создайте представления Postgres Pro из аналитических таблиц, связанных с Parquet-файлами, чтобы исключить эти файлы из аналитических запросов.
Важно
Повторное создание представлений Postgres Pro возможно только в периоды отсутствия пользовательской активности. Это сделано для предотвращения потери данных.
Удалите Parquet-файлы:
SELECT metastore.delete_expired_files();
После выполнения этого запроса pgpro_metastore выполняет следующие действия:
Удаляет Parquet-файлы из хранилища , а также удаляет связанные записи из таблиц метаданных
pga_files_scheduled_for_deletion,pga_data_fileиpga_file_column_statistics.Пересчитывает статистику для записей, связанных с удалёнными Parquet-файлами, в таблицах метаданных
pga_table_statsиpga_table_column_stats.Пересчитывает значения
column_orderдля записей, связанных с удалёнными Parquet-файлами, в таблице метаданныхpga_column.