每天正确存储、归档和删除数 TB 的数据 - PostgreSQL

Properly storing, archiving and deleting TBs of data everyday - PostgreSQL

我有一个创建大量数据的系统,每天大约 3-4 TB。 它每天 24 小时从多个来源接收数据。我也有这个系统的复制品,如果需要的话可以让我有一些停机时间...

我只需要最新的24h数据可用,其余的我可以压缩并存储在硬盘中。

你会如何解决这个问题? postgresql 是否为我提供了足够的功能来解决它​​而不需要外部软件?

您可能希望在日期进行分区,删除前一天的分区。请参阅 Declarative Partitioning 了解如何操作。请确保尽可能使用最新版本的 PostgreSQL 以获得最新的分区功能。

使用分区可以非常快速地删除每天的数据,并避免 table 因死行而膨胀。

使用 vanilla Postgres,您需要手动创建和删除每天的分区。您可以提前进行分区。这可以通过脚本 运行 定期完成。或者您可以使用 pg_partman 等工具来管理分区。使用 p_type of native 的 Postgres 本机分区并设置 p_interval of daily.