1

我正在使用Prefect来自动化我的流程(python 脚本)。运行后,一些数据会持久保存到 postgresql 数据库,问题,pg_data 的大小会迅速失控(~20Gb),我想知道是否有办法在运行代理时减少存储到 pg_data 的数据量或如果有办法自动清理目录。

在此先感谢您的帮助,

最好的,

基督教

4

1 回答 1

1

我假设您正在运行 Prefect Server,并且您想清理底层数据库实例以节省空间?如果是这样,有几种方法可以清理 Postgres 数据库:

  • 您可以使用 SQL 中的 DELETE FROM 手动删除旧记录,尤其是流运行表中的日志,
  • 您可以以自动化方式执行相同的操作,例如,某些用户有一个按计划运行并从数据库中清除旧数据的实际流程,
  • 或者,您可以使用 Postgres 的开源pg_cron作业调度程序来安排此类数据库管理任务,
  • 您也可以使用 GraphQL 执行相同操作:您需要使用查询查询“旧”流运行的流运行 ID flow_run,然后执行delete_flow_run突变,
  • 最后,为了更加主动,您可以通过减少日志记录(仅记录需要的内容)并将日志级别设置为较低的类别来减少生成的日志数量,例如,不要在代理上使用 DEBUG 日志,而是切换到 INFO 应该显着减少数据库中日志占用的空间量。
于 2022-01-12T11:00:39.183 回答