타임 스탬프 (해시) - 값 쌍으로 구성된 많은 데이터 테이블이 있습니다. 여기서 값은 온도 또는 다른 종류의 측정 데이터 일 수 있습니다.DynamoDB : 비교가 포함 된 키가 아닌 값 쿼리
특정 값의 타임 스탬프를 얻으려면 값 (해시) - 타임 스탬프 (범위)를 사용하여 보조 인덱스를 작성할 수 있지만 GT, LT, BETWEEN과 같은 비교 연산으로 값을 쿼리하여 값의 범위?
물론 스캔을 사용하지 않으려합니다. 내가 해왔 던 유일한 것은 더미 해시 키를 사용하고 범위 속성에 값 + 타임 스탬프를 넣는 것입니다. 그러나 이것에 문제가 있습니다 (스캔과 비교하여 좋든 나쁘든간에).
더 좋은 해결책이 있습니까, 아니면 DynamoDB를 사용하여 수행 할 수 있습니까?
비정규 화 (denormalization)는 "보조 색인 작성"에서 언급 한 것입니다. 그러나 이것은 값을 쿼리 할 수 없으며 가져 오기만 허용합니다. 위에서 언급 한 것과 같이, 나는 쿼리를위한 범위 키의 모든 값 + 타임 스탬프를 가진 공통의 해시 키 ('더미')를 사용하려고 생각했지만 성능이나 다른 문제 (파티션)가 불투명하므로 나는 대안을 찾고있다. 비정규 화는 문제가되지 않습니다 (적어도 현재는). – user1597701
둘 다 완전 무작위 인 경우 운이 없다고 생각합니다. 제안 : 해시 값을 더미 값으로 설정하는 대신 해시 값을 매달 사용하여 실용적인 방법으로 해시 값을 계산할 수 있어야합니다. 또한 범위를 하이픈 (예 : timestamp-value)으로 구분 된 값으로 설정 한 다음, 비정규 화 된 테이블에서 값 타임 스탬프를 사용하여 성능이없는 GT, LT, BETWEEN 연산자를 사용할 수 있어야합니다. 히트. – greg
데이터를 분할하지 않아도되지만,이를 구현하기 위해서는 반드시 균형을 유지해야합니다. – user1597701