Scan - Amazon DynamoDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Scan

重要

このセクションでは、API バージョン 2011-12-05 について言及しています。これは非推奨なので、新しいアプリケーションに使用しないでください。

現在の低レベルの API に関するドキュメントについては、Amazon DynamoDB API リファレンスを参照してください。

説明

Scan オペレーションは、テーブルのフルスキャンを実行することにより、1 つ以上の項目とその属性を返します。より詳細な結果を取得するには、ScanFilter を使用します。

注記

スキャンされた項目の合計数が 1 MB の制限を超えると、スキャンが停止し、結果が後続のオペレーションでスキャンを続行するための LastEvaluatedKey とともにユーザーに返されます。結果には、制限を超えた項目数も含まれます。スキャンの結果には、フィルタ基準を満たすテーブルデータがないことがあります。

結果セットは結果整合性です。

リクエスト

構文

// This header is abbreviated. // For a sample of a complete header, see DynamoDB 低レベル API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Scan content-type: application/x-amz-json-1.0 {"TableName":"Table1", "Limit": 2, "ScanFilter":{ "AttributeName1":{"AttributeValueList":[{"S":"AttributeValue"}],"ComparisonOperator":"EQ"} }, "ExclusiveStartKey":{ "HashKeyElement":{"S":"AttributeName1"}, "RangeKeyElement":{"N":"AttributeName2"} }, "AttributesToGet":["AttributeName1", "AttributeName2", "AttributeName3"]}, }
名前 説明 必須
TableName

リクエストされた項目を含むテーブルの名前。

型: 文字列

はい
AttributesToGet

属性名の配列。属性名が指定されていない場合、すべての属性が返されます。見つからなかった属性は結果に表示されません。

型: 配列

いいえ
Limit

評価する項目の最大数 (一致する項目の数であるとは限りません)。結果を処理する間に制限までの項目数を処理した場合、DynamoDB は処理を停止し、その時点までの一致する値とともに、後続のオペレーションで項目の取得を続行するために適用する LastEvaluatedKey を返します。また、この制限に達する前に、スキャンされたデータセットのサイズが 1MB を超えた場合、DynamoDB はスキャンを停止し、制限までの一致値とともに、後続のオペレーションでスキャンを続行するために適用する LastEvaluatedKey を返します。

型: 数値

いいえ
Count

true に設定されている場合、DynamoDB は、割り当てられたフィルターに一致する項目がなくても、スキャンオペレーションの項目の合計数を返します。Limit パラメータは、カウントのみのスキャンに適用できます。

AttributesToGet のリストを提供する場合、Counttrue に設定しないでください。そうでないと、DynamoDB は検証エラーを返します。詳細については、「結果での項目のカウント」を参照してください。

タイプ: ブール値

いいえ
ScanFilter

スキャン結果を評価し、目的の値のみを返します。複数の条件は「AND」オペレーションとして扱われます。すべての条件を満たす値だけが結果に含まれます。

型: 比較演算子を含む値への属性名のマップ。

いいえ
ScanFilter:AttributeValueList

フィルターのスキャン結果を評価するための値と条件。

型: Condition への AttributeValue のマップ。

いいえ
ScanFilter:​ ComparisonOperator

指定された属性 (等しい、より大きい、など) を評価するための基準。スキャンオペレーションで有効な比較演算子は次の通りです。

注記

より大きい、等しい、より小さいに関する文字列値の比較は、ASCII 文字コード値に基づきます。例えば、aA より大きく、aaB より大きいと評価されます。コードの値のリストについては、http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters を参照してください。

バイナリの場合、DynamoDB は、バイナリ値を比較する際 (クエリ表現の評価など)、バイナリデータの各バイトを符号なしとしてて扱います。

型: 文字列またはバイナリ

いいえ
 

EQ: 等しい。

EQ の場合、AttributeValueList は、文字列、数値、またはバイナリのうち、1 つの AttributeValue のみを含むことができます (セットではありません)。リクエストで指定されているもの以外の型の AttributeValue が項目に含まれる場合、値は一致しません。例えば、{"S":"6"}{"N":"6"} と等しくありません。また、{"N":"6"}{"NS":["6", "2", "1"]} と等しくありません。

 
 

NE: 等しくない。

NE の場合、AttributeValueList は、文字列、数値、またはバイナリのうち、1 つの AttributeValue のみを含むことができます (セットではありません)。リクエストで指定されているもの以外の型の AttributeValue が項目に含まれる場合、値は一致しません。例えば、{"S":"6"}{"N":"6"} と等しくありません。また、{"N":"6"}{"NS":["6", "2", "1"]} と等しくありません。

 
 

LE: より小さい、または等しい。

LE の場合、AttributeValueList は、文字列、数値、またはバイナリのうち、1 つの AttributeValue のみを含むことができます (セットではありません)。リクエストで指定されているもの以外の型の AttributeValue が項目に含まれる場合、値は一致しません。例えば、{"S":"6"}{"N":"6"} と等しくありません。また、{"N":"6"}{"NS":["6", "2", "1"]} と比較されません。

 
 

LT: より小さい。

LT の場合、AttributeValueList は、文字列、数値、またはバイナリのうち、1 つの AttributeValue のみを含むことができます (セットではありません)。リクエストで指定されているもの以外の型の AttributeValue が項目に含まれる場合、値は一致しません。例えば、{"S":"6"}{"N":"6"} と等しくありません。また、{"N":"6"}{"NS":["6", "2", "1"]} と比較されません。

 
 

GE: より大きい、または等しい。

GE の場合、AttributeValueList は、文字列、数値、またはバイナリのうち、1 つの AttributeValue のみを含むことができます (セットではありません)。リクエストで指定されているもの以外の型の AttributeValue が項目に含まれる場合、値は一致しません。例えば、{"S":"6"}{"N":"6"} と等しくありません。また、{"N":"6"}{"NS":["6", "2", "1"]} と比較されません。

 
 

GT: より大きい。

GT の場合、AttributeValueList は、文字列、数値、またはバイナリのうち、1 つの AttributeValue のみを含むことができます (セットではありません)。リクエストで指定されているもの以外の型の AttributeValue が項目に含まれる場合、値は一致しません。例えば、{"S":"6"}{"N":"6"} と等しくありません。また、{"N":"6"}{"NS":["6", "2", "1"]} と比較されません。

 
 

NOT_NULL : 属性が存在します。

 
 

NULL: 属性は存在しません。

 
 

CONTAINS: サブシーケンス、またはセット内の値をチェックします。

CONTAINS の場合、AttributeValueList は、文字列、数値、またはバイナリのうち、1 つの AttributeValue のみを含むことができます (セットではありません)。比較のターゲット属性が文字列の場合、オペレーションは部分文字列の一致をチェックします。比較のターゲット属性がバイナリの場合、オペレーションは入力に一致するターゲットのサブシーケンスを検索します。比較のターゲット属性がセット (「SS」、「NS」、または「BS」) である場合、オペレーションは、(部分文字列としてではなく) セットの要素をチェックします。

 
 

NOT_CONTAINS: サブシーケンスの欠如、またはセット内の値の欠如をチェックします。

NOT_CONTAINS の場合、AttributeValueList は、文字列、数値、またはバイナリのうち、1 つの AttributeValue のみを含むことができます (セットではありません)。比較のターゲット属性が文字列の場合、オペレーションは部分文字列の欠如がないかどうかをチェックします。比較のターゲット属性がバイナリである場合、オペレーションは入力に一致するターゲットのサブシーケンスの欠如がないかどうかをチェックします。比較のターゲット属性がセット (「SS」、「NS」、または「BS」) である場合、オペレーションは、(部分文字列としてではなく) セットの要素の欠如ないかどうかをチェックします。

 
 

BEGINS_WITH: プレフィックスを確認します。

BEGINS_WITH の場合、AttributeValueList は、文字列またはバイナリの 1 つの AttributeValue のみを含むことができます (数値やセットではありません)。比較のターゲット属性は、(数値またはセットではなく) 文字列またはバイナリである必要があります。

 
 

IN: 完全一致をチェックします。

IN の場合、AttributeValueList は、文字列、数値、またはバイナリの 1 つ以上の AttributeValue を含むことができます (セットではありません)。比較のターゲット属性は、一致対象と同じ型および同じ値である必要があります。文字列は、文字列セットと一致しません。

 
 

BETWEEN: 最初の値より大きいまたは等しい、および 2 番目の値より小さいまたは等しい。

BETWEEN の場合、AttributeValueList は、文字列、数値、またはバイナリのいずれかの同じ型の 2 つの AttributeValue 要素を含む必要があります (セットではありません)。ターゲット属性は、ターゲット値が最初の要素より大きいか等しく、2番目の要素より小さいか等しい場合に一致します。リクエストで指定されているもの以外の型の AttributeValue が項目に含まれる場合、値は一致しません。例えば、{"S":"6"}{"N":"6"} と比較されません。また、{"N":"6"}{"NS":["6", "2", "1"]} と比較されません。

 
ExclusiveStartKey

以前のスキャンを続行する項目のプライマリキー。以前のスキャンでは、テーブル全体をスキャンする前にスキャンオペレーションが中断された場合、結果セットのサイズまたは Limit パラメータのいずれかにより、この値が提供されることがあります。新しいスキャンリクエストで LastEvaluatedKey を渡し、その時点からオペレーションを続行できます。

型: 複合プライマリキーの HashKeyElement、または HashKeyElement および RangeKeyElement

いいえ

レスポンス

構文

HTTP/1.1 200 x-amzn-RequestId: 8966d095-71e9-11e0-a498-71d736f27375 content-type: application/x-amz-json-1.0 content-length: 229 {"Count":2,"Items":[{ "AttributeName1":{"S":"AttributeValue1"}, "AttributeName2":{"S":"AttributeValue2"}, "AttributeName3":{"S":"AttributeValue3"} },{ "AttributeName1":{"S":"AttributeValue4"}, "AttributeName2":{"S":"AttributeValue5"}, "AttributeName3":{"S":"AttributeValue6"}, "AttributeName5":{"B":"dmFsdWU="} }], "LastEvaluatedKey": {"HashKeyElement":{"S":"AttributeName1"}, "RangeKeyElement":{"N":"AttributeName2"}, "ConsumedCapacityUnits":1, "ScannedCount":2} }
名前 説明
Items

オペレーションパラメータを満たす属性のコンテナ。

型: 属性名およびそのデータ型と値のマップ。

Count

レスポンス内の項目数。詳細については、「結果での項目のカウント」を参照してください。

型: 数値

ScannedCount

フィルターが適用されるまでの完全なスキャン内の項目の数。大きい ScannedCount 値がほとんどない (またはない) 場合、Count の結果は、不十分なスキャンオペレーションを示します。詳細については、「結果での項目のカウント」を参照してください。

型: 数値

LastEvaluatedKey スキャンオペレーションが停止した項目のプライマリキー。その時点からオペレーションを続行するには、後続のスキャンオペレーションでこの値を指定します。

スキャン結果セット全体が完了したとき (オペレーションが「最後のページ」を処理したとき)、LastEvaluatedKeynull です。

ConsumedCapacityUnits

オペレーションによって消費される読み込み容量ユニットの数。この値は、プロビジョニングされたスループットに適用される数を示します。詳細については、「DynamoDB のプロビジョンされた容量テーブルの設定の管理」を参照してください。

型: 数値

特殊なエラー

エラー 説明
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.Scan content-type: application/x-amz-json-1.0 {"TableName":"1-hash-rangetable","ScanFilter":{}}

レスポンス例

HTTP/1.1 200 x-amzn-RequestId: 4e8a5fa9-71e7-11e0-a498-71d736f27375 content-type: application/x-amz-json-1.0 content-length: 465 {"Count":4,"Items":[{ "date":{"S":"1980"}, "fans":{"SS":["Dave","Aaron"]}, "name":{"S":"Airplane"}, "rating":{"S":"***"} },{ "date":{"S":"1999"}, "fans":{"SS":["Ziggy","Laura","Dean"]}, "name":{"S":"Matrix"}, "rating":{"S":"*****"} },{ "date":{"S":"1976"}, "fans":{"SS":["Riley"]}," name":{"S":"The Shaggy D.A."}, "rating":{"S":"**"} },{ "date":{"S":"1985"}, "fans":{"SS":["Fox","Lloyd"]}, "name":{"S":"Back To The Future"}, "rating":{"S":"****"} }], "ConsumedCapacityUnits":0.5 "ScannedCount":4}

リクエスト例

// This header is abbreviated. For a sample of a complete header, see DynamoDB 低レベル API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Scan content-type: application/x-amz-json-1.0 content-length: 125 {"TableName":"comp5", "ScanFilter": {"time": {"AttributeValueList":[{"N":"400"}], "ComparisonOperator":"GT"} } }

レスポンス例

HTTP/1.1 200 OK x-amzn-RequestId: PD1CQK9QCTERLTJP20VALJ60TRVV4KQNSO5AEMVJF66Q9ASUAAJG content-type: application/x-amz-json-1.0 content-length: 262 Date: Mon, 15 Aug 2011 16:52:02 GMT {"Count":2, "Items":[ {"friends":{"SS":["Dave","Ziggy","Barrie"]}, "status":{"S":"chatting"}, "time":{"N":"2000"}, "user":{"S":"Casey"}}, {"friends":{"SS":["Dave","Ziggy","Barrie"]}, "status":{"S":"chatting"}, "time":{"N":"2000"}, "user":{"S":"Fredy"} }], "ConsumedCapacityUnits":0.5 "ScannedCount":4 }

リクエスト例

// This header is abbreviated. For a sample of a complete header, see DynamoDB 低レベル API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Scan content-type: application/x-amz-json-1.0 {"TableName":"comp5", "Limit":2, "ScanFilter": {"time": {"AttributeValueList":[{"N":"400"}], "ComparisonOperator":"GT"} }, "ExclusiveStartKey": {"HashKeyElement":{"S":"Fredy"},"RangeKeyElement":{"N":"2000"}} }

レスポンス例

HTTP/1.1 200 OK x-amzn-RequestId: PD1CQK9QCTERLTJP20VALJ60TRVV4KQNSO5AEMVJF66Q9ASUAAJG content-type: application/x-amz-json-1.0 content-length: 232 Date: Mon, 15 Aug 2011 16:52:02 GMT {"Count":1, "Items":[ {"friends":{"SS":["Jane","James","John"]}, "status":{"S":"exercising"}, "time":{"N":"2200"}, "user":{"S":"Roger"}} ], "LastEvaluatedKey":{"HashKeyElement":{"S":"Riley"},"RangeKeyElement":{"N":"250"}}, "ConsumedCapacityUnits":0.5 "ScannedCount":2 }