我使用以下内容: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)
谢谢!
答案 0 :(得分:0)
如果您想添加其他范围键,则需要使用Local secondary index。
您可以使用查询基表的相同方式查询LSI。您需要为hashkey提供精确值,并为range key提供比较谓词。