注意:有关在 ClickHouse 中使用时间序列分析的更多示例,请参阅博客在 ClickHouse 中使用时间序列数据和函数。
ClickHouse 是一种通用的用于OLAP 工作负载的数据存储解决方案,而有很多专门的时间序列数据库管理系统。尽管如此,ClickHouse专注于查询执行速度,使其在许多情况下能够胜过专业化系统。关于此主题有很多独立的基准测试,因此我们在这里不做任何测试。相反,让我们关注在使用此用例时很重要的 ClickHouse 功能。
首先,有一些专门的编解码器,使典型的时间序列变得更容易。无论是常见的算法,如 DoubleDelta
和 Gorilla
,还是 ClickHouse 特有的算法,如 T64
。
其次,时间序列查询通常只命中最近的数据,例如一天或一周之前的数据。使用既有快速 nVME/SSD 驱动器又有高容量 HDD 驱动器的服务器是有意义的。ClickHouse 的TTL 功能允许配置将新鲜的热数据保留在快速驱动器上,并随着数据老化逐渐将其移动到较慢的驱动器上。如果您的需求需要,还可以进行更旧数据的汇总或删除。
尽管这违反了 ClickHouse 存储和处理原始数据的理念,但您可以使用物化视图来满足更严格的延迟或成本要求。