2016-09-19 2 views
0

엄격한 SQL 배경에서 왔습니다. 이제 DynamoDB의 마이그레이션 DynamoDB에서 날짜순으로 항목 정렬

, 나는 내가 날짜를 기준으로 정렬하고 싶은 항목의 전체 테이블이있다. 여기

내가 그것을 할 방법은 다음과 같습니다

  • 내가 보조 인덱스 종류 - 날짜 - 인덱스를 설정합니다. 범주는 해시이며 날짜는 범위입니다. 내가 정렬하는 모든 항목은 범주에 대해 동일한 값을 갖습니다.

  • 내가 지금 가지고있는 문제는 많은 아이템이 같은 날짜를 가지고있다. 이 보조 색인은 자동으로 동일한 Category-Date 항목을 삭제하고 하나만 유지합니다. 이것은 내가 바라는 행동이 아닙니다.

이 작업을 수행하는 올바른 방법은 무엇입니까?

나는 이러한 사용 사례를 고려할 때 DynamoDB의에 테이블과 인덱스를 구성하는 방법에 대한 좋은 독서에 대한 포인터를 부탁드립니다.

답변

0

당신이 얼마나 많은 항목을 동일한 날짜에 있나요?

당신은 항상 (- X - 0의 범위에서 임의의 숫자와 같은 EPOC 시간 - 당신의 날짜가 INT 경우) - 당신의 날짜에 추가 접미사를 추가 할 수 있습니다이 또한 정렬을 보장합니다.

원본 항목 = (해시, 1234567)

변환 항목 = (해시, '1234567010': 예를 들어

(당신의 범위는 문자열이며, 경우에만 당신은 항상 자리의 같은 번호를 추가))

원래 항목 2 = (해시,

1234567)

는 항목 2 = (해시, '1234567900')

사용 '덮어 쓰기'PARAM 수

(과의 변환 et it to false)를 삽입해야합니다. 오류가 발생하면 범위 키에 추가 숫자를 추가 할 수 있습니다.

여기에 좋은 지침을 찾을 수 있습니다 http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html

+0

을 나는 "주변에 일"로 생각하고 있었는지 실제로 그. 이 문제를 처리하기위한 "직접적인"접근 방법이 있었으면합니다. 또한 , 그것은 ISO-6801 문자열로 또는 더 많은 유연성을 허용하는 신기원 번호로 저장 날짜에 더 나은 방법입니다? –

+0

이 경우 Epoch 번호가 문자열로 변환 된 것으로 생각합니다. –