物联网实时数据库最好采用时序数据库(如opentsdb、influxdb),因为物联网的数据一般都是连续的、带有时间戳的采集记录。不过,在某些特殊情况下,必须或最好使用MySQL。
两个叠加策略:
- 将MySQL的引擎替换为myrocks。myrocks引擎的内核是rocksdb,而rocksdb和时序数据库都是基于相同的底层机制(lsm索引机制)。因此,myrocks引擎特别适合连续的、大规模写入的、近期数据查找极快的情况。
- 在数据表的模型设计层面,设计物联网的时序模型。尽管MySQL引擎已经更换成了与时序数据库相同的底层机制,但上层结构设计并没有适配时序数据的结构与模型,所以需要在数据表设计时进行适配。可以学习opentsdb等时序数据库的记录模型,例如使用类似于opentsdb的datapoint结构,包括metric指标任务、timestamp时间戳、value数据和tags标签。这样的设计能够减少很多不必要的麻烦。
要使用MySQL作为物联网实时数据库,采用以下两个策略:
- 替换MySQL的引擎为myrocks:myrocks引擎的内核是rocksdb,而rocksdb和一些时序数据库都是基于lsm索引机制的。myrocks适合于大规模写入、近期数据查找快的情况,因此从底层机制上能提供适合物联网实时数据的支持。
- 在数据库表的模型设计上,采用时序模型:学习类似opentsdb的时序数据库的记录模型,设计数据表结构。一个典型的时序数据点(datapoint)结构包括:指标任务(metric)、时间戳(timestamp)、数据值(value)和标签(tags)。通过这样的设计,能够更有效地存储和查询物联网实时数据。
具体的代码实现可以根据具体的需求和业务逻辑来编写,可以使用MySQL提供的API或者相关的编程语言进行操作。