我正在运行一个 PostgreSQL 数据库,该数据库正在记录许多系统的健康状况信息。目前,它在标准的 PostgreSQL 服务器上运行,但似乎 TimescaleDB 有一些可用的特性。
大多数系统都是直接记录的,因此数据在收集后立即存储。但有些系统并不总是在线。他们离线时会在本地记录数据,在线时会将收集到的数据下载并插入数据库。这种模式会对 TimescaleDB 造成任何问题吗?在某些文档中,按时间顺序写入数据似乎很重要。
我正在运行一个 PostgreSQL 数据库,该数据库正在记录许多系统的健康状况信息。目前,它在标准的 PostgreSQL 服务器上运行,但似乎 TimescaleDB 有一些可用的特性。
大多数系统都是直接记录的,因此数据在收集后立即存储。但有些系统并不总是在线。他们离线时会在本地记录数据,在线时会将收集到的数据下载并插入数据库。这种模式会对 TimescaleDB 造成任何问题吗?在某些文档中,按时间顺序写入数据似乎很重要。
Timescale 将数据拆分为跨时间称为块的“子表”。
块是基于时间间隔的,您可以选择时间间隔。
如果要压缩数据,可以添加可以每 X 小时运行一次的压缩策略,以压缩早于 X 时间间隔的数据。
如果系统离线时间超过您开始压缩的 X 时间间隔,则可能会出现问题。
假设您有 1 天的数据块,并且您在 7 天后压缩数据。如果您的系统离线 8 天,它会尝试在压缩块上插入数据,那么它可能会成为一个问题。您需要解压缩块以插入数据并稍后重新压缩。
如果这是您的系统的常见用法,您可以选择较小的块,例如 4 小时,然后它将是更少量的数据,可以轻松解压缩并再次重新压缩。压缩不会那么好,因为它会有太多的块,但这是决定的权衡:)