tdengine设计如此

106 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第10天,点击查看活动详情

前言

taos 数据库为什么被物联网广泛使用呢?主要还是因为他的时序性特性。主要是随着时间的推移而追加数据,基本上不需要修改已存在数据或者说压根不关心数据是否被修改,他们更加关心的是一段时间的数据统计分析。

为什么设备对应表

  • TDengine中有几个关键名词【采集量】【标签】【采集点】
  • 所谓的采集点就是我们的采集设备。在一个物理设备上可以能配备多个采集设备。这个也很好理解比如我们的空调设备就可能有采集电的采集设备,也有采集出风的采集设备。按采集的功能区分的这些采集设备TDengine中可以理解为【采集点】

事务

  • 上面我们已经知道了一个采集点实际上对应一张表,这样就能保证这张表只有一个写入口,所以TDengine就不需要考虑事物的问题了。单入口性能提升很大
  • TDengine为什么要这么设计呢?每一个设备对应一张表这样做的好处是每个设备的数据是连贯的且不受干扰的。

性能

  • 另外还有一点一个设备的采集频率是固定,或者说设备采集频率是个常量值,这个在存储的一段时间就能够预测出来的。也方便我们汇总一段时间的数据统计,TDengine也提供函数帮我们统计一段周期INTERVAL(1s, 500a),500毫秒开始统计1S间隔时间内的数据情况。
  • 另外因为一个设备对应一张表,数据都是时效性的,这样在写数据的时候只需要追加即可,从这个角度也能说明TDengine的写入性能会很高。
  • 和mysql按页存储一样,TDengine是按照块进行存储读取的。因为物联网的特性,我们关注的也是一段时间内的数据。所以按块读取也能够提升我们的命中率。比如说用电量,我们不关注某一刻用多少点。我们更加关注的是1天用了多少,1月用了多少。