DynamoDB快速搜索复杂数据类型

时间:2017-11-14 13:54:43

标签: amazon-web-services nosql amazon-dynamodb

我需要在AWS DynamoDB上创建一个具有如下结构的新表:

{
    "email" : String (key),
    ... : ...,
    "someStuff" : SomeType,
    ... : ...,

    "listOfIDs" : Array<String>    
}

此表包含用户&#39;数据和我经常查询的字符串列表(参见listOfIDs) 因为我不希望每次都scan表,因为它的速度很慢而导致用户链接到该特定ID,因此我无法创建索引,因为它是一个数组,而不是a&#34;简单&#34;类型,我怎么能改善我的表的结构?我是否应该使用不同的表格,其中包含我所有的ID以及与他们相关联的用户#34; flat&#34;结构体?还有其他办法吗?

谢谢大家!

2 个答案:

答案 0 :(得分:1)

  

我是否应该使用另一张表,其中我拥有所有ID以及与他们相关联的用户#34; flat&#34;结构

如果你想利用DynamoDB的并行性来提高查询性能,我认为这是你最好的选择。

如果您的query存储为,则另一个选项可能是在listOfIDs中使用CONTAINS表达式,但我无法想象随着你的桌子的增长,这将在性能方面进行扩展。

答案 1 :(得分:1)

或许另一张表格如下:

ID    string / hash key,
Email string / range key,
Any other attributes you may want to access

IDemail的独特组合将允许您搜索“ID列表”。您可能希望在此表中包含其他属性,以免您需要执行其他查询。