====数据库选型的问题====

2021-10-28 14:08:32 +08:00
FreeWong  FreeWong

一个 web 应用用于接收 iot 设备的数据,并转换成另一种协议使用 http 发送出去 我担心在发送 http 数据到对端时对方的 web 服务器离线或是故障,导致数据丢失. 我现在希望将从 iot 设备接收到的数据保存到一个数据库中,我的场景是短时间内接收大量的 iot 设备的数据,并发写入数据库,但几乎很少读。 同时,我的软件部署到用户时,不能让用户安装这种大型的 sqlserver,mysql 这种。 但是 sqlite 似乎对于并发写不合适。 所以请问各位大侠,哪种数据库易部署,也支持我上面说的场景。 感谢感谢。

2388 次点击
所在节点   问与答  问与答
19 条回复
whoosy
whoosy
2021-10-28 14:26:00 +08:00
写文件
FrankFang128
FrankFang128
2021-10-28 14:26:48 +08:00
mysql 教程最多,适合新手。
我老手用 postgresql
murmur
murmur
2021-10-28 14:30:39 +08:00
mysql 未必以 installer 安装,直接解压的版本也有
auxox
auxox
2021-10-28 14:53:03 +08:00
用 RocksDB?
singerll
singerll
2021-10-28 14:54:50 +08:00
用 mqtt 发
flyingfz
flyingfz
2021-10-28 16:51:52 +08:00
之前看过 TDengine 的介绍 ,国内一个公司做的。
貌似比较符合你的需求。 你可以评估下 . https://www.taosdata.com/cn/
flyingfz
flyingfz
2021-10-28 16:54:28 +08:00
附带提一下, 他们有云服务。 不用自己部署。 只是有成本开销。
TomVista
TomVista
2021-10-28 17:01:05 +08:00
web 自带的 indexdDb, 简单插入 1w qps 轻轻松松
TomVista
TomVista
2021-10-28 17:05:42 +08:00
dfdragon
dfdragon
2021-10-28 17:25:04 +08:00
时序数据库
jjianwen68
jjianwen68
2021-10-28 17:30:51 +08:00
java 的话,h2db ?
Ediacaran
Ediacaran
2021-10-28 17:33:17 +08:00
很少读是怎么读啊
只是缓存的话建议 redis
netnr
netnr
2021-10-28 18:49:16 +08:00
sqlite 循环内存队列分批事物写
eason1874
eason1874
2021-10-28 19:38:08 +08:00
用不着关系型数据库,就 localStorage 、IndexedDB 这种 Web 原生数据库就可以了

请求失败的时候把 object 写入 storage ,另外用一个定时任务去检查 storage 有没有堆积,有就检查网络连通性并批量推送,成功回调才把 storage 里对应的条目删掉
pydiff
pydiff
2021-10-28 19:41:10 +08:00
我以前做 iot 数据接入时就是用 influxdb,用了一年多,感觉还行.部署是用 docker 部署的,很快,就看你要不要做集群而已,要不然很简单的
slipper
slipper
2021-10-29 08:06:06 +08:00
influxdb+1 ,开箱即用。就是对内存占用比较大,需要规划好 series 。
arvinsilm
arvinsilm
2021-10-29 09:13:05 +08:00
我理解需求就是发生故障时将请求保留下来,以备后续恢复用?那是否有必要上数据库呢,直接写文件或者用日志方式保存不可以吗。
ymmud
ymmud
2021-10-29 10:14:53 +08:00
RocksD 比较合适
legiorange
legiorange
2021-10-29 10:55:36 +08:00
建议采用云端处理:
协议选择:mqtt5 弱网协议 /HTTP2.0 协议
推荐通过 MQTT5 进行传输到你们的 MQTT 服务端中,在服务端进行存储读写。
此时:如果服务不可用,存储在本地.
建议尝试一下阿里云的微消息队列 MQTT 版,堆积队列,联网直接推过去(我记得可以)
其他的日志就可以处理。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/811248

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX