物联网系统开发时数据库如何选择?

admin 2020-12-11 17:51 物联网

因为数据库负责积累接收到的数据,所以接收数据量增多意味着我们还需要在数据库方面有所应对。具体来说就是提升数据库积累处理大量数据的性能,确保用于积累数据的数据库容量。然而,物联网服务连接着大量设备,我们很难明确其极限所在。再说,用一台服务器处理,处理性能和容量方面也有限制。

因此物联网服务的数据库在一般情况下(根据条件不同也会有所差异),需要具备可扩展性(易于向外扩展)、写入速度以及数据库模式的通用性。最后说的数据库模式的通用性用于应对以下情况:在存储多种设备的不同数据时,非结构化数据无法全部存入一开始设计的方案。

数据库的类型多种多样,有 RDB、KVS、文档型数据库、图形数据库等,它们各自有着不同的特征。其中主流的数据库有RDB和分布式KVS,下面将通常会被比较的项目总结在下图中。


比较RDB和分布式KVS

为了保证表连接和 ACID 特性,RDB 不易向多个服务器扩展。而就KVS 而言,只要在处理性能和容量不足的情况下追加服务器就能向外扩展。因此物联网服务和传感器网络系统多采用 KVS。


但是分布式 KVS 也有缺点。首先它不能使用关系,无法通过 SQL进行复杂的连接和采集。因此需要在应用程序端取出数据,进行连接和加工处理。另外也要在应用程序端来实现一致性处理。因此,不建议胡乱采用 KVS,只在需要利用到 KVS 的两个大特征,即“可扩展性”和“高性能”时再去考虑采用它。在下述这些情况下采用 RDB 处理起来会更方便。
 

● 物联网服务处于初期验证阶段,或者整体规模较小时

● 想结构化地存储接收数据时

● 能够支持 RDB 的设计和应用设计时
 

除此之外,也有一些将RDB和KVS混合应用的案例,例如利用 RDB来处理管理类的信息,利用分布式 KVS 来作为专门积累采集到的数据的数据库。


上一篇:物联网系统开发如何应对接收数据量的增多
下一篇:终端数量太大,物联网系统开发应该怎么处理?

猜你喜欢

手机扫一扫添加微信

18665308582