Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch cassandra vs elastic search vs任何其他设计建议_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Cassandra_Amazon Dynamodb_Relational Database - Fatal编程技术网 elasticsearch cassandra vs elastic search vs任何其他设计建议,elasticsearch,cassandra,amazon-dynamodb,relational-database,elasticsearch,Cassandra,Amazon Dynamodb,Relational Database" /> elasticsearch cassandra vs elastic search vs任何其他设计建议,elasticsearch,cassandra,amazon-dynamodb,relational-database,elasticsearch,Cassandra,Amazon Dynamodb,Relational Database" />

elasticsearch cassandra vs elastic search vs任何其他设计建议

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

我们需要对存储在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.group_id=group.id and alm.con_id=con.id group by name, group.type, con.ip
我们还希望用户将来运行自定义聚合查询,而不是我们将来提供的修复查询


到目前为止,我们正在考虑的选项是转移到Cassandra、Elasticsearch或Dynamo db,以便聚合速度更快。有人能指导如何解决这个问题吗?或者有什么经验?有人知道任何技术都比其他技术有着巨大的优势吗?

卡桑德拉和迪纳莫德与ElasticSearch截然不同。这三种服务都与关系数据库产品截然不同

对于即席分析,具有精心设计的模式的关系数据库可以非常好,直到您需要在多个服务器上拆分数据为止(然后复制问题开始占据优势)。这就是非关系数据库的主要动机。但问题在于,为了解决水平伸缩问题,它们通常会交换一些特性,例如连接和聚合

弹性搜索非常擅长回答搜索查询,但并不擅长聚合(除了非常基本的计数、总和及其估计)。它在索引大量数据方面非常出色,但它无法回答需要复杂交叉索引操作的查询。它也没有那么健壮(有时可能需要重建索引)

如果您有大量数据,并且需要聚合,那么您几乎有两种选择:

  • 如果你可以摆脱离线分析,那么像Spark这样的分布式数据处理框架可以非常高效地为你提供所需的答案

  • 如果您需要在线分析,最常用的方法是预计算聚合并在获得更多数据时进行更新,这样查询的答案可以非常快速,而无需为每个查询处理大量数据

  • 不过,不要害怕混搭。关系数据库和非关系数据库一样有其用途。不过,没有什么灵丹妙药。

    另外一个选择是,当您有许多数据字段,并且希望执行聚合或提取一些字段子集以获取大量数据时,这种数据库更适合于“分析”情况


    最近变得非常流行,Amazon-提供了面向专栏的服务。另外还有其他几个

    存储在拼花地板中并有效使用spark、分区

    相关问题:次要说明:elasticsearch可以查询多个索引:是的,谢谢。我已经更新了答案。我的意思是ES不是设计用来进行复杂连接的