DynamoDB에 약 300,000 행의 테이블이 있습니다. 여기에는 소스, 데이터 및 사이클이라는 세 개의 열이 있습니다. 원본 속성은 해시 키이고 데이터는 범위 키입니다. cycles 속성은 행이 추가 될 때마다 응용 프로그램에 의해 추가되는 숫자입니다. 나는 다음과 같은 필터를 사용하여 이러한 행을 검사하는 데 사용 :필터를 사용하여 스캔하면 DynamoDB에 0이라는 결과가 반환됩니다.
{
TableName: "tableName",
Limit: 20,
ScanFilter: {
cycles: {
AttributeValueList: [
{
N: "0"
}
],
ComparisonOperator: "EQ"
}
}
}
그러나이 scanfilter가 자발적으로 더 이상 제대로 작동하지 않기로 결정 것으로 보인다. 이 요청을 실행할 때마다 0 개의 결과가 반환됩니다. scanfilter를 제거하면 20 개의 결과가 반환되므로 limit 또는 tableName 특성과 아무 관련이 없다고 가정합니다. 재미있는 점은 사이클이 "1"인 항목을 찾기 위해 필터를 설정할 때 실제로 작동한다는 것입니다. 아마도 테이블의 시작 부분에 사이클 = 1 인 10 개의 행이 있기 때문일 수 있습니다.
제 질문은이 문제를 해결하는 방법입니다. 새 색인을 추가해야합니까, 아니면이 스캔 필터를 변경해야합니까? 또한 scan 대신 query 명령을 사용하려고 시도 할 수도 있지만이 작업을 수행하려는 이전의 시도는 제대로 작동하지 않았습니다.