use*_*306 14 amazon-web-services amazon-dynamodb
亚马逊AWS DynamoDB问题.
是否有使用RangeKeyCondition和ComparisonOperators的示例,如CONTAINS,IN,BETWEEN.我试图基于复合RangeKey(连接和分隔)检索数据.例如日期+作者+书籍表的关键字.假设在这种情况下HashValue是"book"(它可以是book,dvd,video,link等).我想选择所有包含关键字"magic"的书籍或所有包含作者"John Doe"的书籍.示例记录/项目如下所示:
哈希------范围------------------------------------------ ----------------------- attribute1 ... attributex
书------ 2012-1-20~john doe~冒险〜魔法〜旅行----------------描述......有些东西
在尝试使用条件运算符IN或CONTAINS时,我收到以下错误:object(CFSimpleXML)20 public'__type'=> string'com.amazon.coral.validate#ValidationException'(length = 45)public'message'= > string'尝试的条件约束不是可索引的操作'
找不到使用这些ComparisonOperators的任何示例.任何帮助将不胜感激.
谢谢.
Ste*_*pel 36
在Amazon DynamoDB中实现两个搜索API 查询和扫描之间的区别非常重要:
询问
查询操作仅搜索主键属性值,并支持关键属性值上的比较运算符子集,以优化搜索过程.查询返回匹配主键的所有项数据(每个项的所有属性),每个查询操作最多1MB数据.[...]
[..]有关可用于查询操作的每个比较运算符的信息,请参阅Query的API条目.
[强调我的]
扫描
扫描操作扫描整个表.您可以指定过滤器以应用于结果,以在完整扫描后优化返回给您的值.Amazon DynamoDB对扫描设置了1MB的限制(在过滤结果之前适用该限制).[...]
[...]有关可用于扫描操作的每个比较运算符的信息,请参阅扫描的API条目.
现在,对于RangeKeyCondition支持的子集:查询API的ComparisonOperator 排除 CONTAINS和IN,二者都是中可用扫描API虽然; BETWEEN两个API中只有比较运算符可用.
这种限制很可能源于性能方面的考虑,即支持CONTAINS可能会破坏DynamoDB可预测性能/吞吐量的目标.
与NoSQL解决方案一样,您需要通过相应地定制应用程序设计来解决这些限制,即解决您的用例和您所针对的特定NoSQL架构.
祝好运!
| 归档时间: |
|
| 查看次数: |
19831 次 |
| 最近记录: |