NoSql和按列表查询

时间:2017-05-20 07:55:05

标签: amazon-dynamodb nosql

我有一个大约有100,000个项目的DynamoDB数据库。 这些项目大多是单位,但它们确实包含一系列类别。

SheetA

我希望能够找到一个例子属于该类别" Sport"的所有项目,但因为它是一个列表,我不能索引它。 因此,使用纯DyanmoDB解决方案的唯一选择是扫描整个表格,如果经常这样做,这可能会很昂贵。

我认为除了包含类别映射的DynamoDB之外我可以拥有一个SQL数据库,或者为每个包含该类别中项目列表的类别提供另一个DynamoDB故事。

使用DynamoDB时,此类问题的正常/常见解决方案是什么?我猜这一定是一个常见的问题。

1 个答案:

答案 0 :(得分:1)

您可以将DynamoDB与ElasticSearch集成,后者可以提供更多选项来查询DynamoDB不支持的数据。只需在ElasticSearch中创建索引并在那里执行查询。

从哪里开始:https://aws.amazon.com/about-aws/whats-new/2015/08/amazon-dynamodb-elasticsearch-integration/

拥有SQL数据库不是一个好的解决方案,因为您必须自己在两个不同的数据存储中保持信息同步。看起来像是维护操作的痛苦。

每个类别具有多个DynamoDB表是不可扩展的,即使在这里,您也可以在“事务”中更新多个DynamoDB表,这可能会降低性能,或者您可以将AWS lambda写入基于DynamoDB的相关类别表更新流。但是为了可扩展性,最好还是避免使用它。每次引入新类别时,您都必须创建一个新表。