一个程序开发问题请教各位 V 友大佬,每秒 10 万条数据需要存储,怎样选择技术方案

查看 206|回复 27
bthulu   
缓冲一下分批量写入就行
a33291   
为啥你们想的这么复杂呢? 就起个服务接收物联网设备请求, 顺序写文件就行了, 什么设备都能满足要求.
你们 BT 下过小姐姐嘛? 每秒几十 M 都毫无压力, 存储数据这块, 就他这个每秒 2M, 随便搞个树莓派都能做到.
唯一难点就是, 这每秒 10 万条数据来自几个设备, 如果是 10 万个设备, 那可能确实需要两三千块钱买个 ryzen 5600 级别的主机.
如果就那么几十个设备, 真的需要花钱吗?
yunpiao111   
@bthulu +1 tcp 收先存内存,然后分块落盘,即使 hdd 也至少几十 M 的写入,另外一侧读做业务完事
只要磁盘够就行
csys   
存的话 怎么样都可以,  存成文件都可以, 你接下来的这部分数据除了保存, 是不是还有读取需求和留存时间要求, 这部分需求也影响选型
- 如果后期要检索, 最好性能好点+大存储的机器搭一个时序数据库, 或者直接用一个云时序数据库
- 如果只是留存, 机器选型成数据压缩后转发->云对象存储
SoulSleep   
这种技术方案在遥测领域有很多
粗看下来我的直觉方案是:
缓冲(内存+本地),使用 WAL
批量填入 tsdb
甚至可以不写入 tsdb ,取决于你有多少传感器,如果是有限数量的话,可以直接写入文件,看使用数据的场景来决定是否需要 parquet+bloom filter
如果传感器数量很多又是动态的话,可以使用云对象存储来做
ymz   
@bthulu #16 “几十块收个几年前的斐讯盒子, 刷机, 把自己的程序放上去就行了.”..................你只考虑 1 秒里发生的事+理论数值,实际情况怕是 10 个斐讯盒子也撑不住
————————————————————————————————
1.10 万/秒+物联网,显然是落库到时序数据库,想要高频那就批量插,持久化之前不要搞太多逻辑,存下来再说处理的事
2.如果每秒 10 万条===每秒 10 万个请求,那你得瓶颈可能在网络、CPU 上,网络比较传统,大力出奇迹,上高带宽,CPU 低频多核,不行就分布式多台扛。
内存没太特殊,硬盘现在很多数据库有压缩技术,你这个数据量不大。
ymz   
InfluxDB
morota
OP
  
@songyoucai 边缘网关是硬件设计好阈值,直接对数据进行清洗后再向服务器上报么
您需要登录后才可以回帖 登录 | 立即注册

返回顶部