物联网的五种数据模型结构
admin
2023-09-22 13:02:07
0

物联网正在生成大量需要存储、查询和分析的时间序列数据。Apache Cassandra是这项任务的好选择:不仅因为它的速度、可靠性和可扩展性,还因为它的内部数据模型内置了对时间排序数据的支持。

在Cassandra中,时间序列通常由源(例如物联网设备或传感器)或主题(例如参数或指标)存储和检索。有许多很好的资源非常详细地介绍了这个主题,包括这个会议演示视频,以及用于传感器数据和时间序列的即用型Cassandra数据模型。

给定一组物联网设备或传感器,它们生成包含时间戳、数据点和状态的按时间顺序排列的事件序列,查找所有物联网设备报告的具有已知状态的最新事件。这个问题的三个关键组成部分如下所示:

(1)输入由物联网设备生成的时间序列组成。时间序列通常存储在一个或多个Cassandra表中。

(2)中间视图仅是物联网设备报告的最新事件的快照。可以单独显式存储最新事件,也可以根据输入动态计算它们。

(3)最终结果是所有具有已知状态的最新事件。具有相同状态的最新事件应该存储在一起或易于计算。

解决方案一:物化视图

物化视图解决方案具有以下特点:

适用性:基于状态的查询返回100K行/100MB或更少的数据。

优点:视图自动维护和出色的性能。

缺点:物化视图有一些限制;数据分布可能会出现偏差。

只要了解并愿意抵消物化视图的限制,这一数据模型就可以成为许多应用程序的简单、有效和高效的选择。这种数据模型的另一个不太明显的优势是从Apache Pulsar或Apache Kafka等事件流平台提供数据是多么容易。所有事件都可以转到基表,而其余的由物化视图处理。

解决方案二:二级索引

二级索引方案具有以下特点:

适用性:基于状态的查询返回100K行/100MBs或更多的数据;基于状态的查询很少执行。

优点:在检索大型结果集时,可以更好地在集群中的节点之间分配查询工作负载。

缺点:二级索引有一些限制;对于实时应用程序,性能可能会变得让人不满意。

解决方案三:状态分区表

状态分区表解决方案具有以下特点:

适用性:基于状态的查询返回100K行/100MB或更少的数据。

优点:出色的性能。

缺点:需要额外的删除来维护表;可能需要采取措施防止Cassandra的问题;数据分布可能会出现偏差。

想了解更多,请关注公众号{西安盛图科技}

解决方案四:多个表

多表解决方案具有以下特点:

适用性:基于状态的查询返回100K行/100MBs或更多的数据;基于状态的查询很少执行。

优点:在检索大型结果集时,可以更好地在集群中的节点之间分配查询工作负载。

缺点:实时应用程序的性能可能无法令人满意;需要额外的删除来维护表;可能需要采取措施防止与Cassandra有关的问题。

解决方案五:可自定义的分区

可定制的分区方案具有以下特点:

适用性:定制时可满足不同要求。

优点:灵活性;可以通过自定义分区来优化性能。

缺点:必须提供良好的分区功能;需要额外的删除来维护表;可能需要采取措施防止与Cassandra有关的问题。

描述了如何在Apache Cassandra中使用五种不同的数据模型来解决它。此外还阐述了每个数据模型的适用性、优缺点。最终的建议是关注物化视图、状态分区表和可自定义的分区数据模型。选择前两个是因为它们简单易用。当采用其他选项时,考虑可定制的分区以获得最大的灵活性。最后,开放探索新的可能解决方案,这些解决方案可能会将一些计算推向应用程序或依赖专门的搜索索引和其他技术。

相关内容