每一秒钟建立一个数据的索引,500个通道,要提取一年的,也就是大概有150亿条左右。
目标:
1.如何快速找到指定某一秒的索引位置?
2.这条索引如何设计存储?
请多多指教啊
如果你用时间作为查询条件,可以考虑cassandra,hbase等timestamp字段特性,其可以通过函数限定单次返回结果数量。唯一的问题就是如果你有多个字段,还有全文检索,类似搜索引擎方式的,考虑用solr/lucene之类,对于时间信息也采用timestamp 存储为Long类型,不进行分词,快速可以实现检索。
但你的性能会耗费在IO上面,除非你硬件规模很大,否则无论如何处理返回都会有性能缺陷。
可以考虑Lucene+HBase合作,将索引信息存储在(内存)磁盘,将原文信息存储在HBase,增加HBase内存,这样性能会很高。
但你需要在hbase server接口,例如thrift server这一层拦截新增/修改/删除数据,利用lucene建立索引。
这种方案taobao,facebook也有使用,细节略有差异。
大哥,这个是实时数据库要处理的事情吧?不应该是普通关系型数据库处理的吧?