请教下,物联网的大量数据采集如何保存数据

2019-05-20 12:20:06 +08:00
 Essaim
公司突然要求做行车轨迹,而且还不调用地图软件的开放 api.然后让我这个半年开发经验,没有任何物联网数据的蔡狗子来搞.一点头绪都没有.
简单的以公司 10W 个设备来计算,每天平均 3 小时在线,每 10 秒钟采集一条数据,那么一天的数据量就能达到上亿条.那么 mysql 等关系数据库肯定是不行了.但是实际数据大小肯定不大,一个设备 ID,一个经纬度信息,一个时间戳.
简单的想了个思路:
以一段路程作为一个单位,从起点开始采集数据,将数据放在 nosql 缓存中,然后当设备发送结束路径请求的时候,将数据打包序列化到文件中,通过 fastdfs 存储起来,然后在 mysql 中存储一条文件索引记录,因为系统的查询量比较少,所以性能应该还是过得去的.
大佬们有没有更好的想法,或者我这个想法有什么不可行的地方,希望大家斧正.
8580 次点击
所在节点    Java
49 条回复
leeyuzhe
2019-05-20 12:27:11 +08:00
时序数据库了解一下
wizzer
2019-05-20 12:32:19 +08:00
1、业务拆分,实时数据只是在需要查看的时候才显示,比如 10 分钟内的实时数据可以放 redis ;
2、历史数据,根据需要,每隔多长时间存 mongodb 去,而不是 10s 一次的保存;
3、统计数据,可以实时统计出来的数据、或通过历史数据统计出的数据,放 mysql 里去,按月分表等;
4、队列肯定是要加的,并发转队列,慢慢处理生成以上数据;
MoHen9
2019-05-20 12:37:19 +08:00
一楼是正解,但是数据量一上去就必须得大数据了。
snappyone
2019-05-20 12:42:30 +08:00
时序数据库+1
David1119
2019-05-20 12:44:57 +08:00
timescaleDB
looseChen
2019-05-20 12:45:07 +08:00
influxdb
Essaim
2019-05-20 12:56:14 +08:00
@leeyuzhe 谢谢,我去了解一下~
goodryb
2019-05-20 12:56:26 +08:00
云计算 IOT 平台了解一下,一条龙服务
Essaim
2019-05-20 13:02:27 +08:00
先说下另外一个想法,如果一段路线看做一个单位,并且绝对不会用这些数据来查询,那么是否可以直接把这段路程的所有数据打包成一个 json 字符串,然后存储到一个字段里面去,这样的话就可以忽略数据条数带来的影响了.但是相应的,是否会影响数据的使用?如果以后有什么新需求,需要对数据做统计的话.
然后现在去了解一下时序数据库,统一谢过楼上各位.
Essaim
2019-05-20 13:08:16 +08:00
@goodryb 我先吐槽下公司决策层,虽然这些东西涉及到物联网,但是他们似乎根本没想往这方面发展,所以需求都是,数据保存一段时间后删除.
采集这么多数据,然后后面还不用,还得出这么多钱,他们肯定不愿意了.
goodryb
2019-05-20 13:11:42 +08:00
@Essaim #10 你们公司有架构师吗,有的话这个问题应该是他来考虑的,如果没有,根据需求,给出 2-3 个解决方案和所需要的资源,提交老板审批即可。
Essaim
2019-05-20 13:15:30 +08:00
@goodryb 没有!后端目前就两人,我的上级以前还是搞安卓开发的,没有任何后端经验,在我两个月前进来后公司才开始做互联网项目.
ps:我也不明白公司为什么不找个大牛招个半年开发经验的过来,我现在都特别想溜了.
Essaim
2019-05-20 13:16:46 +08:00
@goodryb 明白了,谢了,我看下几个方案,稍微评估下交给上级去.最难受的是上级还请陪产假了,公司后端目前就我一个.Orz
goodryb
2019-05-20 13:16:57 +08:00
@Essaim #12 没有就找第三方服务商去买,要不就用云平台,自己搞不了就不要硬抗,要不然到时候还要甩锅
Essaim
2019-05-20 13:18:55 +08:00
@goodryb 好的,谢谢.
youngce
2019-05-20 13:37:32 +08:00
influxdb+1
opengps
2019-05-20 13:38:25 +08:00
咱可以沟通一下,我做了 6 年多的汽车位置平台
opengps
2019-05-20 13:39:32 +08:00
我第一版设计的 sqlserver,单数据库单表,实际应用达到了 15 亿行数据毫无压力,设计峰值每秒 3000,实际才用到 100 多点
Vkery
2019-05-20 13:41:19 +08:00
cassandra
liprais
2019-05-20 13:42:58 +08:00
keep 以前存跑步轨迹的时候,是把 gps 坐标放到一个 json 数组里面,然后把这个数组 base64 之后用 zip 压缩这个字符串,然后放到 hbase 里.
做分析的时候简直噩梦一样

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

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

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

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

© 2021 V2EX