首页 新闻 搜索 专区 学院

150亿的索引数据如何存?

0
悬赏园豆:100 [已解决问题] 解决于 2012-03-26 16:45

每一秒钟建立一个数据的索引,500个通道,要提取一年的,也就是大概有150亿条左右。

目标:

1.如何快速找到指定某一秒的索引位置?

2.这条索引如何设计存储?

请多多指教啊

ChessYoung的主页 ChessYoung | 初学一级 | 园豆:78
提问于:2012-03-23 17:35
< >
分享
最佳答案
0

如果你用时间作为查询条件,可以考虑cassandra,hbase等timestamp字段特性,其可以通过函数限定单次返回结果数量。唯一的问题就是如果你有多个字段,还有全文检索,类似搜索引擎方式的,考虑用solr/lucene之类,对于时间信息也采用timestamp 存储为Long类型,不进行分词,快速可以实现检索。

但你的性能会耗费在IO上面,除非你硬件规模很大,否则无论如何处理返回都会有性能缺陷。

可以考虑Lucene+HBase合作,将索引信息存储在(内存)磁盘,将原文信息存储在HBase,增加HBase内存,这样性能会很高。

但你需要在hbase server接口,例如thrift server这一层拦截新增/修改/删除数据,利用lucene建立索引。

这种方案taobao,facebook也有使用,细节略有差异。

收获园豆:95
reck for zhou | 菜鸟二级 |园豆:301 | 2012-03-23 18:12
其他回答(1)
1

大哥,这个是实时数据库要处理的事情吧?不应该是普通关系型数据库处理的吧?

收获园豆:5
通用C#系统架构 | 园豆:504 (小虾三级) | 2012-03-24 00:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册