TimescaleDB 中的 space 分区和维度是什么

What is space partitioning and dimensions in TimesclaleDB

我是时间刻度数据库的新手。我正在学习块以及如何根据时间创建块。 但是还有另一个 time/space 分块让我很困惑。请帮助我解决以下问题。

  1. 时间刻度数据库中的维度是什么?
  2. 什么是 space 分块及其工作原理?

提前致谢。

TimescaleDB 中的一个维度与一个列相关联。每个超表至少需要定义一个时间维度,即时间序列的时间列。然后将超表划分为块,其中每个块包含时间维度的时间间隔的数据。因此,所有新数据通常都会到达 latets 块,而其他块包含旧数据。

然后,可以在其他列上定义 space 维度,例如 device 列 or/and location 列。没有为 space 维度定义间隔,而是定义了多个分区。所以对于相同的时间间隔,会创建若干个chunk,相当于partition的个数。数据由 space 维度值的散列函数分布。例如,如果为 device 列上的 space 维度定义了 3 个分区,并且数据中存在 12 个不同的设备值,则每个 space 块将包含 4 个具有哈希函数的不同值均匀分布值。

当数据存储在多个磁盘上时,

Space 维度对于并行 I/O 特别有用。另一种场景是多节点,即 hypertable 的分布式版本(beta 功能,即将在 2.0 中发布)。

在一些复杂的使用情况下,space 分区也会有所帮助。

您可以在 add_dimension docs, cloud KB about space partitioning

中阅读更多内容

文档中的注释:

Supporting more than one additional dimension is currently experimental.