1、概述
有很多人在讨论如何实现将非结构化数据存储到ThingsBoard,首先我需要声明,肯定不能使用PG和Cassandra来存储,这种方式根本不合适,正所谓术业有专攻,例如我需要将摄像头视频或者声音采集器采集的音频能够在ThingsBoard上面播放,那肯定只需要一个链接即可,存储交给专门的软件来存储。下面我将以一个真实的案例来讲解。
2、需求
现在我们有一个声音采集器设备,需要放在养猪场采集猪的声音,并且把声音上传到对象存储Minio(自己搭建),设备肯定能够采集到数据,并且肯定会联网,所以设备可以上传音频到Minio,然后设备就可以拿到音频在minio的存储地址,然后设备就可以将这个地址上传来ThingsBoard,通过http上传遥测的形式,这样遥测就会随着时间记录每一次的声音链接以及一些分析数据。声音采集器是使用Python来完成的,可以查看Minio官方文档,里面使用Python相关的SDK。也有可能你的硬件设备不支持Python的库,你们可以叫设备端发送http上传文件,然后自己编写java程序来实现一个上传文件的接口,也就是说使用java程序来帮助设备上传文件到Minio,然后并返回一个文件地址给设备,设备收到地址然后就上报遥测数据。这样也是可以的,我们当时就是选择的自定义的辅助程序来实现的,我自己使用java封装了Minio的SDK来实现上传。