elasticsearch cassandra vs elastic search vs任何其他设计建议
我们需要对存储在rds中的数据运行分析查询。这变得非常缓慢,因为分组查询和不断增加的表大小。 例如,我们在RDS中有以下3个表:
elasticsearch cassandra vs elastic search vs任何其他设计建议,
elasticsearch,cassandra,amazon-dynamodb,relational-database,
elasticsearch,Cassandra,Amazon Dynamodb,Relational Database,我们需要对存储在rds中的数据运行分析查询。这变得非常缓慢,因为分组查询和不断增加的表大小。 例如,我们在RDS中有以下3个表: alm(id,name,cli, group_id, con_id ...) group(id, type,timestamp ...) con(id,ip,port ...) 每个表的数据量都非常大,并且随着新数据的到来,每分钟都会更新几次 现在,我们希望运行聚合查询,如: select name from alm, group, con where alm.gr
alm(id,name,cli, group_id, con_id ...)
group(id, type,timestamp ...)
con(id,ip,port ...)
每个表的数据量都非常大,并且随着新数据的到来,每分钟都会更新几次
现在,我们希望运行聚合查询,如:
select name from alm, group, con where alm.group_id=group.id and alm.con_id=con.id group by name, group.type, con.ip
我们还希望用户将来运行自定义聚合查询,而不是我们将来提供的修复查询
到目前为止,我们正在考虑的选项是转移到Cassandra、Elasticsearch或Dynamo db,以便聚合速度更快。有人能指导如何解决这个问题吗?或者有什么经验?有人知道任何技术都比其他技术有着巨大的优势吗?卡桑德拉和迪纳莫德与ElasticSearch截然不同。这三种服务都与关系数据库产品截然不同 对于即席分析,具有精心设计的模式的关系数据库可以非常好,直到您需要在多个服务器上拆分数据为止(然后复制问题开始占据优势)。这就是非关系数据库的主要动机。但问题在于,为了解决水平伸缩问题,它们通常会交换一些特性,例如连接和聚合 弹性搜索非常擅长回答搜索查询,但并不擅长聚合(除了非常基本的计数、总和及其估计)。它在索引大量数据方面非常出色,但它无法回答需要复杂交叉索引操作的查询。它也没有那么健壮(有时可能需要重建索引) 如果您有大量数据,并且需要聚合,那么您几乎有两种选择:
最近变得非常流行,Amazon-提供了面向专栏的服务。另外还有其他几个存储在拼花地板中并有效使用spark、分区相关问题:次要说明:elasticsearch可以查询多个索引:是的,谢谢。我已经更新了答案。我的意思是ES不是设计用来进行复杂连接的