我正在评估是否可以在下一个项目中使用DynamoDB,我们正在构建的内容与博客平台非常相似,这是一个简单的表格
Blog Post
ID - primary hash key
Title
DateCreated - primary range key
Votes
Run Code Online (Sandbox Code Playgroud)
我已经读了足够的书,知道如何列出-博客文章列表,分页-使用最后获取的索引,获取文章详细信息-获取行,我将使用DateCreate进行排序,这是我的范围键。
我正在努力对二级索引进行排序。例如,如果我们有一个名为“投票”的列,那么您如何进行“多数投票”?我的解释是,您只能使用我已经在使用的范围索引进行排序。
AWS刚刚宣布了备受期待的Amazon DynamoDB全局二级索引的全面上市,该解决方案解决了本地二级索引的局限性,下面将进一步讨论:
现在,您可以使用项目主键以外的属性创建索引并执行查找。[...]
现在,在创建表时,最多可以创建五个全局二级索引,每个二级索引都引用哈希键或哈希键和范围键。您还可以创建最多五个本地二级索引,并且可以选择将表的某些或全部属性投影到每个表的索引中。
有关这两种模型之间选择的更多详细信息,请参考博客文章。
正如vartec正确指出的那样,我在发布本地二级索引的那一天就一直在自己添加这些信息,而没有适当分析眼前的问题,而实际上这些都不适用 -我具有讽刺意味的是,我自己在以后对另一个问题的评论中:
[...]但是,请注意,本地是一个关键限制:本地二级索引是一种数据结构,该结构为给定的哈希键维护备用范围键-虽然这涵盖了许多现实情况,但不适用于任意非主键字段查询,例如手头的问题。
感谢vartec发现此错误,并在此道歉误导歉意。
Amazon DynamoDB刚刚宣布支持本地二级索引, 以解决您的用例:
我们将最新功能称为本地二级索引(LSI)。尽管DynamoDB已经允许您基于表的主键执行低延迟查询,即使规模巨大,LSI现在也使您能够对表中的其他属性(或列)执行快速查询。这使您能够执行更丰富的查询,同时仍能满足响应式,可扩展应用程序的低延迟需求。
另请参阅入门博客文章Amazon DynamoDB的本地二级索引。
与AWS一样,新功能首先会发布受约束的功能集,并将随时间扩展:
今天,必须在创建DynamoDB表时定义本地二级索引。将来,我们计划为您提供为现有表添加或删除LSI的功能。如果要立即将现有DynamoDB表配备到本地二级索引,则可以使用Elastic Map Reduce从现有表中导出数据,然后使用LSI将其导入到新表中。[强调我的]
| 归档时间: |
|
| 查看次数: |
3070 次 |
| 最近记录: |