在ThingsBoard中转换为UUID

问题描述

我刚刚从Thingsboard 2.4升级到3.0,并且也从Postgresql 9.6升级到了12。
我一直在从Postgre检索数据,同时使用不带连字符值的键从ts_kv表中获取数据。 ts_kv表的entity_id字段类似于Postgresql 9.6中的“ 1e81629b3d597b0b9dd7d78e05760aa”。该值没有hypyens。但是ts_kv表的entity_id字段已更改,如postgre 12中的'b3d597b0-1629-11e8-b9dd-7d78e05760aa'一样,除了ts_kv表之外,所有id字段都类似于'1e81629b3d597b0b9dd7d78e05760aa'。带有连字符的值可能是UUID。

我可以从设备表中获取没有连字符的id字段的值,然后我想从ts_kv表中选择一些键值。

我可以将不带连字符的值转换为UUID吗? 还有一些从ThingsBoard数据库检索数据的方法吗?

谢谢

解决方法

我们在2.x中使用了UUID的怪异表示法,以保持我们的Cassandra和Postgresql API之间的兼容性,并允许按创建时间对实体进行排序。这是一个糟糕的设计,这就是为什么在3.x版中,我们用普通表示法替换了UUID的怪异表示法,并且还添加了created_time。请参阅转换功能:

https://github.com/thingsboard/thingsboard/blob/35feb2fea43bbb8d39071af63fa6426f25502dd5/dao/src/main/resources/sql/schema-entities.sql#L344