部分超级表下的子表消失,导致没有数据

Blade 未结 1 12

一、该问题的重现步骤是什么?

  1. TDengine中的数据不知道什么原因丢失,导致历史数据以及实时数据消失

    cd1eaa65d95e402f0b40ad8f661f627b.png

2. image.png

3.


二、你期待的结果是什么?实际看到的又是什么?

我想知道这个数据是为何丢失的

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

BladexIOT ubuntu

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  •    平台只有在发布产品物模型时才会动超级表,而且只动属性超级表(事件、指令的超级表结构固定 

      ,不会删改),没有删除子表的逻辑,设备子表会一直保留。                                 

                                                                                             

      入口是 ProductFunctionEngineServiceImpl.publishOnline()(第 594 行调用                 

      saveOrUpdateTsl),满足条件时有两种操作:                                              

                                                                                             

      1. 删整张超级表:发布时物模型属性为空(所有属性都删光了再发布),会把整张超级表删掉。见

      ProductTslServiceImpl.java:58-59。                                                     

      2. 删字段:发布时如果某些属性在新物模型里没有了,会把对应字段删掉。见                  

      ProductTslServiceImpl.java:127-129(内置字段 time / product_key / device_name          

      不会删,定义在 TDField.java:93)。                                                     

                                                                                             

      相关文件完整路径:                                                                     

      - blade-service/blade-server/src/main/java/org/springblade/iot/product/service/impl/Pro

      ductFunctionEngineServiceImpl.java                                                     

      - blade-core/blade-tsdb-tdengine/src/main/java/org/springblade/iot/tsdb/tdengine/impl/P

      roductTslServiceImpl.java                                                              

      - blade-core/blade-tsdb-tdengine/src/main/java/org/springblade/iot/tsdb/tdengine/sql/TD

      Field.java                                                                             

                                                                                             

      简单说就是:属性全删光→删超级表,删部分属性→删对应字段,子表和数据行都不会动。


      具体你的问题,超级表没变,只有部分子表消失了,得从其他地方去排查,和平台本身应该没什么关系,因为他就没有删子表的代码在。


    0 讨论(0)
提交回复