Dynamodb2表架构创建

时间:2014-07-23 00:57:25

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

我使用以下内容:dynamodb2,boto,python。我有以下用于创建表的代码:

table = Table.create('mySecondTable', 
schema=[HashKey('ID')],
RangeKey('advertiser'),
throughput={'read':5,'write':2},
global_indexes=[GlobalAllIndex('otherDataIndex',parts=[
    HashKey('date',data_type=NUMBER),
    RangeKey('publisher', date_type=str),
],throughput={'read':5,'write':3})], 
connection=conn)

我希望能够通过以下方式查询以下数据: ID,广告客户,日期,发布商,尺寸和颜色

这意味着我需要一个不同的架构。当我添加其他点时,它不会查询,除非在模式中列出了列名。

但问题是,现在我只能通过Id,广告客户,日期和发布商进行查询。如何添加我可以查询的其他列?

我读到这个似乎说有可能: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html

但是这里没有例子: http://boto.readthedocs.org/en/latest/dynamodb2_tut.html

我尝试添加额外的范围键,但它不起作用(不能重复)

我希望它像:

table = Table.create('mySecondTable', 
schema=[
RangeKey('advertiser'),
otherKey('date')
fourthKey('publisher') ... etc
throughput={'read':5,'write':2},
connection=conn)

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您想添加其他范围键,则需要使用Local secondary index

您可以使用查询基表的相同方式查询LSI。您需要为hashkey提供精确值,并为range key提供比较谓词。