TimescaleDB 中的 space 分区和维度是什么
What is space partitioning and dimensions in TimesclaleDB
我是时间刻度数据库的新手。我正在学习块以及如何根据时间创建块。
但是还有另一个 time/space 分块让我很困惑。请帮助我解决以下问题。
- 时间刻度数据库中的维度是什么?
- 什么是 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.
我是时间刻度数据库的新手。我正在学习块以及如何根据时间创建块。 但是还有另一个 time/space 分块让我很困惑。请帮助我解决以下问题。
- 时间刻度数据库中的维度是什么?
- 什么是 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.