每日产生 1440 万条数据,如何做到查询效率在百毫秒内体验?

2015 年 7 月 9 日
 hbq

现行需求分析

  1. 每隔十秒产生1万条数据,每一条数据约260字节。
  2. 数据产生时间9:30-11:30;13:00 -15:00。在这个时间段内一天数据量约为:$1万*6*60*4 = 1440万条,约3.5GB数据$。长期预估1-3年内产生:3.7TB数据。
  3. 已产生数据非常小量更新操作,可以任务数据库无更新操作(如update ,delete),只有插入、查询操作(insert 、select)
  4. 无复杂查询。如:group by ,join
  5. 查询操作并发度不高,但查询效率严格控制在十毫秒到几百毫秒内。
  6. 对写数据库操作要求高,达到10秒内完成插入1万条数据
  7. 每条数据字段都是数字或段文字,没有复杂字段。
  8. 选择什么样物理服务器+数据库+数据架构?如dell r730+mysql+分库分表?
12166 次点击
所在节点    程序员
40 条回复
gamecreating
2015 年 7 月 9 日
股市????
hbq
2015 年 7 月 9 日
@em70 嗯!你说的反向索引是不错的方案。谢谢
hbq
2015 年 7 月 9 日
@webflier 我准备收拾收拾东西 ,跳楼了。。。。不要拦我
dingyaguang117
2015 年 7 月 9 日
mongodb无压力
billwang
2015 年 7 月 9 日
我们这边一天产生4g的数据量,按日分表建立索引。数据进入时采用缓存,每隔15秒插入一次。
ksupertu
2015 年 7 月 9 日
后端elasticsearch存储,调优后单台2W/S写入速度,可水平扩展集群系统,前面可以在加个mogodb之类的数据库来持久化一下,elasticsearch丢起数据来集群恢复起来很慢
taowen
2015 年 7 月 9 日
taowen.gitbooks.io
用elasticsearch设计好mapping
xujif
2015 年 7 月 9 日
一看就知道是l2数据,别问我为什么知道
cxe2v
2015 年 7 月 9 日
@xujif 看时间都知道了
simonlei
2015 年 7 月 9 日
xlvecle
2015 年 7 月 9 日
elasticsearch,solr,sphinx
hwind
2015 年 7 月 10 日
NoSQL的解决方案就可以满足你的需求,比如HBase
kurosagi
2015 年 7 月 10 日
1,可以不更新,就插入和查询
2,无复杂查询
3 写数据库操作要求高
4 没有复杂字段

我知道可能不行,以前也就实习的时候用过,但是dynamoDB和cassandra怎么样?

理论上,可能,好像,没问题,但是似乎有人告诫我NoSQL是坑不要入。
caomaocao
2015 年 7 月 10 日
放mongo?
hbq
2015 年 7 月 10 日
@scys 我是在设计架构。查询效率在500ms都是可以接受的。
kurosagi
2015 年 7 月 10 日
@caomaocao Mongo 显然不行,访问量高了丢数据。
zhanglp888
2015 年 7 月 10 日
@hbq 我是你的百分之一的量,效率方面也就没有参考价值了!我的问题还要面对很多数据去组合,group by 的问题。

@em70 讲的最好了,想要速度,就得需要更大的空间去做索引或缓存
ybh37
2015 年 7 月 10 日
Redis?
Ryans
2015 年 7 月 10 日
@hbq 这个时间段像是A股交易
liuweisj
2015 年 7 月 10 日
数据库的话试试Hbase吧,性能的话可以根据需求来部署HDFS集群

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

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

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

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

© 2021 V2EX