我一直在研究几种不同的数据存储技术,这些技术可用于存储大量半结构化日志,供人们稍后搜索。到目前为止,我已经查看了cassandra,riak和弹性搜索,看起来弹性搜索最适合我感兴趣的内容(主要是因为它透明地对所有内容进行索引)。但是,我感兴趣的一个功能似乎是逃避了它们,我想知道是否有一个具有此功能的数据存储。
我想到的是在多个密钥上透明分片的能力。要清楚,我不谈论使用复合键进行分片。我的意思是,如果您有一个按user_id
,time_of_creation
和ip_address
分片的表,并且您插入了一行,则会创建该行的三个副本,每个副本都在一个不同的集群被不同的密钥分割(或者它们可能在某种程度上实际上都在同一个集群中。重要的部分是数据将被复制)。当您想稍后查询此表时,数据存储将透明地选择要使用的集群。
在我读过关于Cassandra的文章中,人们经常建议做这样的事情,但它至少在三个方面肯定是一个手动过程:
虽然我使用cassandra作为例子,但我相信riak和弹性搜索的情况类似。据我所知,提供此功能的数据存储可能必须进行大量交易才能这样做。可能无法再更新/删除(或者性能极差),并且一致性会受到影响。但是,这是我在处理日志时可以接受的一组交易,所以我想知道是否有人熟悉提供此功能的技术。