TDengine3.0如何优化设计应对高基数数据的时序数据库?

2026-06-09 14:252阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1807个文字,预计阅读时间需要8分钟。

TDengine3.0如何优化设计应对高基数数据的时序数据库?

小T导读:数据集的高基数问题直接困扰着众多主流的时间序列数据库(Time Series Database,TSDB)产品。一些数据库管理系统在基数较低时表现良好;然而,随着基数的增加,问题也随之而来。

小 T 导读: 数据集的高基数(High-Cardinality)问题一直困扰着诸多主流的时序数据库(Time Series Database,TSDB)产品。一些数据库管理系统,在基数较低时表现良好;但是随着基数的增加,数据库的表现也会变差,这就给数据库管理员带来了很大的挑战,他们需要通过相关设计降低基数,避免与之相关的问题。 TDengine 3.0 是第一个解决了高基数问题的时序数据库,本文将分享其设计思路。

何谓高基数问题?

讲到高基数问题,首先,我们要理解什么是基数(Cardinality)。基数可以定义为一个数据集中值的数量。数据集不同,基数可以很高,也可以很低。比如,如果是布尔数据,它的值只能是 true 或 false,则该数据集的基数为 2。但是如果是像设备 ID 这样的数据集,其基数就非常大了。

对于时序数据,事情就更复杂了。时序数据总会关联一些元数据,比如标签。因此,一个系统的基数就是每个标签的基数的叉乘。比如,以智能电表为例,它会关联设备 ID、城市 ID、厂商 ID 和模型 ID 等标签。几百个城市,百万级设备,再加上不同的厂商、模型,基数轻松超过百亿级。

高基数有什么问题呢?这会增加定位一个唯一的值所需要的时间。对于数据库而言,延迟与基数直接相关。许多时序数据库,如 InfluxDB、OpenTSDB 和 Prometheus,都采用了键值存储模型,其中的键是由标签组合唯一识别的。这种模式有个副作用,它会极大增加数据集的基数。

阅读全文
标签:

本文共计1807个文字,预计阅读时间需要8分钟。

TDengine3.0如何优化设计应对高基数数据的时序数据库?

小T导读:数据集的高基数问题直接困扰着众多主流的时间序列数据库(Time Series Database,TSDB)产品。一些数据库管理系统在基数较低时表现良好;然而,随着基数的增加,问题也随之而来。

小 T 导读: 数据集的高基数(High-Cardinality)问题一直困扰着诸多主流的时序数据库(Time Series Database,TSDB)产品。一些数据库管理系统,在基数较低时表现良好;但是随着基数的增加,数据库的表现也会变差,这就给数据库管理员带来了很大的挑战,他们需要通过相关设计降低基数,避免与之相关的问题。 TDengine 3.0 是第一个解决了高基数问题的时序数据库,本文将分享其设计思路。

何谓高基数问题?

讲到高基数问题,首先,我们要理解什么是基数(Cardinality)。基数可以定义为一个数据集中值的数量。数据集不同,基数可以很高,也可以很低。比如,如果是布尔数据,它的值只能是 true 或 false,则该数据集的基数为 2。但是如果是像设备 ID 这样的数据集,其基数就非常大了。

对于时序数据,事情就更复杂了。时序数据总会关联一些元数据,比如标签。因此,一个系统的基数就是每个标签的基数的叉乘。比如,以智能电表为例,它会关联设备 ID、城市 ID、厂商 ID 和模型 ID 等标签。几百个城市,百万级设备,再加上不同的厂商、模型,基数轻松超过百亿级。

高基数有什么问题呢?这会增加定位一个唯一的值所需要的时间。对于数据库而言,延迟与基数直接相关。许多时序数据库,如 InfluxDB、OpenTSDB 和 Prometheus,都采用了键值存储模型,其中的键是由标签组合唯一识别的。这种模式有个副作用,它会极大增加数据集的基数。

阅读全文
标签: