Skip to content

Thingsboard 图表数据统计部分源码简单展示

codeHui edited this page Feb 27, 2024 · 8 revisions

大家用Thingsboard肯定做过下面的统计图

image

前后端通讯用websocket

  • request image

  • response (所以是后端做的统计如SUM)
    image

后端部分代码

  • 统计类型的枚举类 image
  • 这里处理统计,tsService.findAllByQueries查出原始时序数据

image image 我下面的代码路径就展示Cassandra的路径,如果是用PostgreSQL,就看另外一个实现 image

  • 返回前端的时间戳ts,实际是每个时间段开始和结束时间段中间值 image image
  • Cassandra 查询统计数据 image
    • getPartitionsFuture ,根据时序时间段的开始结束时间,从数据库获取Cassandra的分区List Cassandra的某个设备的某个字段的某个时间段(默认一个月)分区,是维护在数据库中的 image

    • getFetchChunksAsyncFunction 根据分区List,將所有分区的原始数据查出来(多个分区并发查询) image

    • AggregatePartitionsFunction 将所有分区的原始数据进行统计 image image image