Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
在AWS中,对于大量易失性数据集(elasticsearch、Redis或DynamoDB),推荐使用哪种可扩展数据库平台?_Redis_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Amazon Dynamodb_Autoscaling - Fatal编程技术网 elasticsearch,amazon-dynamodb,autoscaling,Redis,elasticsearch,Amazon Dynamodb,Autoscaling" /> elasticsearch,amazon-dynamodb,autoscaling,Redis,elasticsearch,Amazon Dynamodb,Autoscaling" />

在AWS中,对于大量易失性数据集(elasticsearch、Redis或DynamoDB),推荐使用哪种可扩展数据库平台?

在AWS中,对于大量易失性数据集(elasticsearch、Redis或DynamoDB),推荐使用哪种可扩展数据库平台?,redis,elasticsearch,amazon-dynamodb,autoscaling,Redis,elasticsearch,Amazon Dynamodb,Autoscaling,我们平台的用户将在我们的系统上存储大量数据。通过应用程序,一旦连接,数据将被传输到他们,不再需要保留在我们的服务器上。在任何给定的时间,都可能有成百上千的用户连接在一起,执行他们的下载 以下是建议的体系结构: 用户管理、配置和数据下载统计信息将保存在SQL Server数据库中,同时对大型数据集使用Redis或DynamoDB 选择Redis或DynamoDB的原因是基于比运行另一个SQL Server实例更便宜的成本和性能。数据格式类似于没有联接的datamart平面表 最初的查询很简单——获

我们平台的用户将在我们的系统上存储大量数据。通过应用程序,一旦连接,数据将被传输到他们,不再需要保留在我们的服务器上。在任何给定的时间,都可能有成百上千的用户连接在一起,执行他们的下载

以下是建议的体系结构:

用户管理、配置和数据下载统计信息将保存在SQL Server数据库中,同时对大型数据集使用Redis或DynamoDB

选择Redis或DynamoDB的原因是基于比运行另一个SQL Server实例更便宜的成本和性能。数据格式类似于没有联接的datamart平面表

最初的查询很简单——获取用户X在某个日期范围内的所有数据,并可以选择删除

由于我们可能希望添加自由文本搜索,使用elasticsearch搜索该数据的某些字段可能是一个更好的选择


我希望这是自动缩放,但不确定哪个数据库最适合用于此场景。

我不会单独使用弹性搜索,因为它不提供写入容量的自动缩放。事实上,增加索引的碎片数量并不是一件小事。其次,它只能处理JSON格式,这对您来说可能是个问题

Redis可能是一个好主意,因为它速度非常快,所有事情都在RAM中完成,而且它提供的密钥的生存时间有限,这可能会让您感兴趣。不幸的是,如果您的数据大小超过了amazon实例的RAM容量,您将不得不切分您的Redis数据库。而且Redis不支持它,您必须在应用程序代码中处理它。此外,据我所知,Redis不处理复杂的查询。您还需要将数据保存在Redis数据结构中,这可能是您的一个问题

DynamoDB可以很好地处理自动缩放,但另一方面,它是一个键/值数据库,因此不允许您进行诸如“获取用户X在日期范围内的所有数据”之类的查询。DynamoDB还允许您以任何格式保存数据


解决方案是根据数据的大小使用DynamoDB或Redis,并使用ElasticSearch仅使用元数据(用户和日期)索引键。这样,您的索引就会很小,如果您因为ElasticSearch变得过于臃肿而失去了索引功能,那么您将保留保存用户数据的功能

以下是AWS ReInvent关于数据库+搜索层的一些重要讨论: