用于未排序数据系列的 TimescaleDB
TimescaleDB for unsorted data series
TimescaleDB 非常适合数据系列。
就我而言,我正在处理数据系列,但我的数据到达时未排序。
与排序后的数据相比,TimescaleDB 的工作方式是否相同?
TimescaleDB 可以很好地解决您的问题。它不会限制以排序方式出现的数据。时间刻度根据您选择的维度对数据进行分区,时间是单调维度的最常见示例(但任何整数类型都可用于对数据进行分区)。您指定分区大小(块大小),TimescaleDB 会为每个时间间隔自动创建新分区。只要您的数据位于几个块的间隔范围内,数据库就可以使用内存中的这些块,从而加快摄取速度。数据是否绝对排序并不重要。因为 TimescaleDB 是建立在 PostgreSQL 之上的,所以它没有仅附加的存储模型,这使得修改旧数据甚至回填而不牺牲性能成为可能。
使用 TimescaleDB 的另一个好处:
- 原生压缩,最多可减少 20 倍或 30 倍的存储需求(更多取决于您的数据布局)
- 数据分层:在较慢的存储上附加表空间,并自动将旧块移动到较慢的存储
- Continuous Aggreages:定义自动刷新的物化视图
- 根据您选择的分区,根据查询谓词有效删除不需要扫描的块的优化
TimescaleDB 非常适合数据系列。
就我而言,我正在处理数据系列,但我的数据到达时未排序。
与排序后的数据相比,TimescaleDB 的工作方式是否相同?
TimescaleDB 可以很好地解决您的问题。它不会限制以排序方式出现的数据。时间刻度根据您选择的维度对数据进行分区,时间是单调维度的最常见示例(但任何整数类型都可用于对数据进行分区)。您指定分区大小(块大小),TimescaleDB 会为每个时间间隔自动创建新分区。只要您的数据位于几个块的间隔范围内,数据库就可以使用内存中的这些块,从而加快摄取速度。数据是否绝对排序并不重要。因为 TimescaleDB 是建立在 PostgreSQL 之上的,所以它没有仅附加的存储模型,这使得修改旧数据甚至回填而不牺牲性能成为可能。
使用 TimescaleDB 的另一个好处:
- 原生压缩,最多可减少 20 倍或 30 倍的存储需求(更多取决于您的数据布局)
- 数据分层:在较慢的存储上附加表空间,并自动将旧块移动到较慢的存储
- Continuous Aggreages:定义自动刷新的物化视图
- 根据您选择的分区,根据查询谓词有效删除不需要扫描的块的优化