ARM技术论坛
直播中

李夏昕

4年用户 6经验值
私信 关注
[问答]

嵌入式系统到底该选哪款数据库,SQLite真的是最优解吗?

由于受嵌入式设备资源的限制,SQLite凭借其轻小的优势在嵌入式系统的数据处理中独占鳌头,装机总量超过千亿台,远远超过大家熟悉的MySQL, Oracle等数据库

但SQLite真的是嵌入式系统数据库选型的最优解吗?

在边缘计算、物联网网关、嵌入式系统中,数据往往是各种传感器或设备采集的时序数据,这些数据具有如下鲜明的特点,1:数据是时序的,一定带有时间戳;2:数据是结构化的;3: 数据极少有更新或删除操作;4:数据产生源是唯一的;5:相对互联网应用,写多读少;6:用户关注的是一段时间的趋势,而不是某一特点时间点的值;7: 数据是有保留期限的;8:数据的查询分析一定是基于时间段和地理区域的;9:除存储查询外,还往往需要各种统计、插值和其他实时计算操作;10:数据流量平稳。

SQLite是关系型数据库,没有利用上述数据特点,因此在存储、查询数据的性能上严重不足,而且不提供插值、不提供流式计算、不提供数据生命周期管理、无账号、无远程登录等功能,也难实现边云协同。随着物联网、工业互联网的发展,SQLite的局限越来越明显。

最近,TDengine推出了ARM版本,为边缘计算、嵌入式场景下时序数据的存储、查询、分析与计算提供一强大的工具,以解决流行的SQLite在该场景下的诸多不足,并且100%开源。与InfluxDB, OpenTSDB等其他专业时序数据库相比,除超强的插入、查询性能外,TDengine还具有几大优势,1:体量很小,安装包不到1.3M;2:占用的CPU、内存资源很少;3:数据压缩率高,占用的存储资源大幅减少。这几大优势让TDengine在资源紧张的嵌入式系统里如鱼得水。

比SQLite,TDengine具有哪些优势?

  • 提供数据库远程登录功能:你可以使用TDengine shell程序从Windows、Linux系统通过网络直接访问数据库,与使用MySQL没有区别。

  • 提供数据的生命周期管理:你可以设置数据保留时长,数据超过保留时长后,会被自动删除,这样不用担心硬盘塞满。

  • 提供流式计算:通过连续查询的方式,可以对一个或多个数据流进行实时计算,包括数据降采样、插值、多个数据流的聚合等等。

  • 提供数据订阅服务:云端或其他设备可以订阅嵌入式系统里存储于TDengine里的符合过滤条件的数据,不用自己再去实现断点续传,不用担心网络中断等系列问题,很容易实现边云协同。

  • 支持更好的并发:TDengine的服务是单个持久性进程,对每个时间序列单独建表,支持很好的并发;而SQLite只提供数据库级的定,在并发的读写方面性能不是很好,数据库可能会被写操作独占,从而导致其它读写操作阻塞或出错。

  • 本土开源,最好的技术支持:TDengine的研发团队在北京,是中国本土100%自主开发的底层软件,没有依赖任何第三方或其他开源软件,你将获得最好的技术支持。



TDengine ARM 32位版100%开源,请访问(www.github.com/taosdata/) 获取源代码,点击技术博客,了解详细的编译和安装步骤。从下载到运行成功,几秒钟搞定。我觉得TDengine可以解决流行的SQLite在该场景下的诸多不足。

更多回帖

发帖
×
20
完善资料,
赚取积分