2014-07-23 2 views
0

다음을 사용 중입니다 : dynamodb2, boto, python. 내가 좋아하는 것 Dynamodb2 테이블 스키마 생성

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://boto.readthedocs.org/en/latest/dynamodb2_tut.html

내가 추가 범위 키, 그러나 그것은 작동하지 않습니다 추가하는 시도

(수 없습니다 http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html

그러나 여기에는 예는 없다 이 중복)

가 나는 싶습니다 같은 :

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

고마워!

답변

0

추가 범위 키를 추가하려면 Local secondary index을 사용해야합니다.

기본 테이블을 쿼리하는 것과 같은 방법으로 LSI를 쿼리 할 수 ​​있습니다. 해시 키의 정확한 값과 범위 키의 비교 술어를 제공해야합니다.