内容简介:我是Dynamodb的新手我在DynamoDB中有一个表,里面有超过10万个项目.此外,此表经常刷新.在这张桌子上,我希望能够在关系数据库世界中做类似的事情:我如何从表中获得最大值.DynamoDB是NoSQL数据库,因此对查询数据的方式非常有限.通过直接调用DynamoDB API,无法从表中执行聚合(如max value).您将不得不寻找不同的工具和方法来解决这个问题.您可以考虑许多可能的解决方案:
我是Dynamodb的新手我在DynamoDB中有一个表,里面有超过10万个项目.此外,此表经常刷新.在这张桌子上,我希望能够在关系数据库世界中做类似的事情:我如何从表中获得最大值.
DynamoDB是NoSQL数据库,因此对查询数据的方式非常有限.通过直接调用DynamoDB API,无法从表中执行聚合(如max value).您将不得不寻找不同的 工具 和方法来解决这个问题.
您可以考虑许多可能的解决方案:
执行表扫描
你的桌子上有超过10万件物品,这可能是一个非常糟糕的主意.表扫描将读取每个项目,您可以让应用程序端逻辑识别最大值.这真的不是一个可行的解决方案.
DynamoDB中的物化指数
根据您的使用情况,您可以使用DynamoDB流和Lambda函数在单独的DynamoDB表中维护索引.如果您的表是只写的,没有更新而没有删除,您可以将最大值存储在单独的表中,并且当插入新记录时,您可以比较它们并执行必要的更新.
这种方法在某些受限制的情况下是可行的,但不是一种通用的解决方案.
使用Amazon Redshift执行分析
DynamoDB并不意味着进行最大化等分析操作,而Redshift是一个非常强大的大数据平台,可以轻松执行这些类型的计算.与DynamoDB索引类似,您可以使用DynamoDB流将数据发送到Redshift,因为记录被插入以维护表的近实时副本以用于分析目的.
如果您正在寻找更多离线或分析解决方案,这是一个不错的选择.
使用Elasticsearch执行分析
虽然DynamoDB是一个强大的NoSQL解决方案,对数据持久性有很强的保证,但Elasticsearch提供了一种非常灵活的查询方法,允许对最大和这些聚合等查询进行实时切片和切块.与上述解决方案类似,您可以使用DynamoDB流将记录插入更新和删除实时发送到Elasticsearch索引中.
如果您想坚持使用DynamoDB但需要一些额外的查询功能,这确实是一个很好的选择,尤其是在使用AWS ES服务时,它将为您完全管理Elasticsearch集群.重要的是要记住,Elasticsearch不会替换您的DynamoDB表,它只是相同数据的易于搜索的索引.
只需使用 SQL 数据库
显而易见的解决方案是,如果您有SQL要求,那么从基于NoSQL的系统转移到基于SQL的系统. AWS的RDS产品提供托管解决方案.虽然DynamoDB提供了很多好处,但如果您的用例将您带入SQL解决方案,最简单的方法可能是不打击它并只是改变解决方案.
这并不是说基于SQL的解决方案或基于NoSQL的解决方案更好,每种方法都有优缺点,而且根据具体的使用情况而有所不同,但它绝对是一个需要考虑的选择.
翻译自:https://stackoverflow.com/questions/36866902/how-to-use-aggregate-functions-in-amazon-dynamodb
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Flink SQL 自定义聚合函数
- Spark 系列(十一)—— Spark SQL 聚合函数 Aggregations
- ruby-on-rails – 如何在Rails / ActiveRecord中一次使用多个聚合函数?
- 监控聚合器系列之: open-falcon新聚合器polymetric
- elasticsearch学习笔记(七)——快速入门案例实战之电商网站商品管理:嵌套聚合,下钻分析,聚合分析
- mongodb高级聚合查询
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Blockchain Basics
Daniel Drescher / Apress / 2017-3-16 / USD 20.99
In 25 concise steps, you will learn the basics of blockchain technology. No mathematical formulas, program code, or computer science jargon are used. No previous knowledge in computer science, mathema......一起来看看 《Blockchain Basics》 这本书的介绍吧!