중요
이 단원에서 언급되는 API 버전 2011-12-05는 사용 중단되었으며 새 애플리케이션에 사용해서는 안 됩니다.
현재 하위 수준 API에 대한 설명서는 Amazon DynamoDB API 참조 섹션을 참조하세요.
설명
Query
는 기본 키를 기준으로 하나 이상의 항목 값과 그 속성을 가져오는 작업입니다(Query
는 해시 및 범위 기본 키 테이블에서만 가능합니다). 특정 HashKeyValue
를 입력해야 하며, 기본 키의 RangeKeyValue
에 비교 연산자를 사용하여 쿼리의 범위를 좁힐 수 있습니다. ScanIndexForward
파라미터는 범위 키를 기준으로 순방향 또는 역방향 순서로 결과를 가져오는 데 사용됩니다.
결과를 반환하지 않는 쿼리는 읽기 형식에 따라 최소 읽기 용량 단위를 사용합니다.
참고
쿼리 파라미터를 만족하는 전체 항목 수의 크기가 1MB 제한을 초과하면 쿼리가 중단되고 LastEvaluatedKey
와 함께 사용자에게 결과가 반환된 후 이어지는 작업에서 쿼리가 계속 됩니다. 스캔 작업과 달리 쿼리 작업은 절대로 빈 결과 집합 및 LastEvaluatedKey
를 반환하지 않습니다. LastEvaluatedKey
는 결과가 1MB를 초과하거나, 혹은 Limit
파라미터를 사용한 경우에만 반환됩니다.
ConsistentRead
파라미터를 사용하면 결과를 consistent read로 설정할 수 있습니다.
요청
구문
// This header is abbreviated. // For a sample of a complete header, see DynamoDB 하위 수준 API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Query content-type: application/x-amz-json-1.0 {"TableName":"Table1", "Limit":2, "ConsistentRead":true, "HashKeyValue":{"S":"AttributeValue1":}, "RangeKeyCondition": {"AttributeValueList":[{"N":"AttributeValue2"}],"ComparisonOperator":"GT"} "ScanIndexForward":true, "ExclusiveStartKey":{ "HashKeyElement":{"S":"AttributeName1"}, "RangeKeyElement":{"N":"AttributeName2"} }, "AttributesToGet":["AttributeName1", "AttributeName2", "AttributeName3"]}, }
명칭 | 설명 | 필수 |
---|---|---|
TableName
|
요청된 항목을 포함하는 테이블의 이름입니다. 유형: 문자열 |
예 |
AttributesToGet
|
속성 이름의 배열입니다. 속성 이름을 지정하지 않으면 모든 속성이 반환됩니다. 일부 속성을 찾을 수 없는 경우 결과에 표시되지 않습니다. 유형: 배열 |
아니요 |
Limit
|
반환할 최대 항목 수(대상 항목 수와 반드시 일치할 필요 없음). DynamoDB가 테이블에 대한 쿼리 중 처리할 수 있는 항목 제한 수에 이르면 쿼리를 중단하고 해당 지점까지만 대상 값을 반환한 다음 이어지는 작업에 형식: 숫자 |
아니요 |
ConsistentRead
|
타입: 부울 |
아니요 |
Count
|
타입: 부울 |
아니요 |
HashKeyValue
|
복합 기본 키에서 해시 구성 요소의 속성 값 형식: 문자열, 숫자 또는 이진수 |
예 |
RangeKeyCondition
|
쿼리에 사용되는 속성 값과 비교 연산자가 저장되는 컨테이너. 쿼리를 요청할 때는 유형: 맵 |
아니요 |
RangeKeyCondition :
AttributeValueList |
쿼리 파라미터를 위해 평가할 속성 값. 형식: |
아니요 |
RangeKeyCondition :
ComparisonOperator |
같다, 크다 등 제공한 속성을 평가하는 기준입니다. 다음은 쿼리 작업 시 유효한 비교 연산자입니다. 참고크다, 같음 또는 작다 등의 문자열 값 비교는 ASCII 문자 코드 값을 기준으로 합니다. 예를 들어 이진수의 경우에는, 예를 들어 쿼리 표현식을 평가할 때처럼 DynamoDB가 이진수 값을 비교하면서 이진수 데이터의 각 바이트를 부호가 없는 것으로 처리합니다. 형식: 문자열 또는 이진수 |
아니요 |
|
||
|
||
|
||
|
||
|
||
|
||
|
||
ScanIndexForward |
인덱스의 오름차순 또는 내림차순을 지정합니다. DynamoDB는 범위 키에서 지정한 요청 순서를 반영하여 결과를 반환합니다. 데이터 형식이 숫자라면 결과는 숫자의 순서대로 반환됩니다. 그렇지 않으면 ASCII 문자 코드 값에 따라 순서가 결정됩니다. 타입: 부울 기본값은 |
아니요 |
ExclusiveStartKey |
이전 쿼리를 계속할 항목의 기본 키. 결과 집합 크기나 형식: 복합 기본 키의 |
아니요 |
응답
구문
HTTP/1.1 200
x-amzn-RequestId: 8966d095-71e9-11e0-a498-71d736f27375
content-type: application/x-amz-json-1.0
content-length: 308
{"Count":2,"Items":[{
"AttributeName1":{"S":"AttributeValue1"},
"AttributeName2":{"N":"AttributeValue2"},
"AttributeName3":{"S":"AttributeValue3"}
},{
"AttributeName1":{"S":"AttributeValue3"},
"AttributeName2":{"N":"AttributeValue4"},
"AttributeName3":{"S":"AttributeValue3"},
"AttributeName5":{"B":"dmFsdWU="}
}],
"LastEvaluatedKey":{"HashKeyElement":{"AttributeValue3":"S"},
"RangeKeyElement":{"AttributeValue4":"N"}
},
"ConsumedCapacityUnits":1
}
명칭 | 설명 |
---|---|
Items
|
쿼리 파라미터를 만족하는 항목 속성 형식: 속성 이름 맵과 속성의 데이터 형식 및 값. |
Count
|
응답의 항목 수. 자세한 내용은 결과 내 항목 수 계산 단원을 참조하십시오. 형식: 숫자 |
LastEvaluatedKey |
쿼리 작업이 중단된 항목의 기본 키(이전 결과 집합 포함). 이 값은 새로운 요청에서는 이 값을 제외하고 새 작업을 시작할 때 사용됩니다. 전체 쿼리 결과 집합이 완료되면(“마지막 페이지”까지 처리) 형식: 복합 기본 키의 |
ConsumedCapacityUnits |
작업에 사용된 읽기 용량 단위의 수. 이 값은 할당 처리량에 적용되는 수를 나타냅니다. 자세한 정보는 DynamoDB 프로비저닝된 용량 모드 섹션을 참조하세요. 형식: 숫자 |
특수 오류
Error | 설명 |
---|---|
ResourceNotFoundException
|
지정된 테이블을 찾을 수 없습니다. |
예시
AWS SDK를 사용하는 예는 DynamoDB에서 테이블 쿼리 단원을 참조하세요.
샘플 요청
// This header is abbreviated. For a sample of a complete header, see DynamoDB 하위 수준 API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Query content-type: application/x-amz-json-1.0 {"TableName":"1-hash-rangetable", "Limit":2, "HashKeyValue":{"S":"John"}, "ScanIndexForward":false, "ExclusiveStartKey":{ "HashKeyElement":{"S":"John"}, "RangeKeyElement":{"S":"The Matrix"} } }
샘플 응답
HTTP/1.1 200
x-amzn-RequestId: 3647e778-71eb-11e0-a498-71d736f27375
content-type: application/x-amz-json-1.0
content-length: 308
{"Count":2,"Items":[{
"fans":{"SS":["Jody","Jake"]},
"name":{"S":"John"},
"rating":{"S":"***"},
"title":{"S":"The End"}
},{
"fans":{"SS":["Jody","Jake"]},
"name":{"S":"John"},
"rating":{"S":"***"},
"title":{"S":"The Beatles"}
}],
"LastEvaluatedKey":{"HashKeyElement":{"S":"John"},"RangeKeyElement":{"S":"The Beatles"}},
"ConsumedCapacityUnits":1
}
샘플 요청
// This header is abbreviated. For a sample of a complete header, see DynamoDB 하위 수준 API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Query content-type: application/x-amz-json-1.0 {"TableName":"1-hash-rangetable", "Limit":2, "HashKeyValue":{"S":"Airplane"}, "RangeKeyCondition":{"AttributeValueList":[{"N":"1980"}],"ComparisonOperator":"EQ"}, "ScanIndexForward":false}
샘플 응답
HTTP/1.1 200
x-amzn-RequestId: 8b9ee1ad-774c-11e0-9172-d954e38f553a
content-type: application/x-amz-json-1.0
content-length: 119
{"Count":1,"Items":[{
"fans":{"SS":["Dave","Aaron"]},
"name":{"S":"Airplane"},
"rating":{"S":"***"},
"year":{"N":"1980"}
}],
"ConsumedCapacityUnits":1
}