Scan - Amazon DynamoDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Scan

penting

Bagian ini mengacu pada API versi 2011-12-05, yang sudah usang dan tidak boleh digunakan untuk aplikasi baru.

Untuk dokumentasi tentang API tingkat rendah saat ini, lihat Referensi API Amazon DynamoDB.

Deskripsi

Operasi Scan mengembalikan satu atau beberapa item dan atributnya dengan melakukan pemindaian tabel secara menyeluruh. Berikan ScanFilter untuk mendapatkan hasil yang lebih spesifik.

catatan

Jika jumlah total item yang dipindai melebihi batas 1 MB, pemindaian berhenti dan hasil dikembalikan ke pengguna dengan LastEvaluatedKey untuk melanjutkan pemindaian dalam operasi berikutnya. Hasilnya juga mencakup jumlah item yang melampaui batas. Pemindaian dapat mengakibatkan tidak adanya data tabel yang memenuhi kriteria filter.

Set hasil pada akhirnya konsisten.

Permintaan

Sintaks

// This header is abbreviated. // For a sample of a complete header, see DynamoDB tingkat rendah 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"]}, }
Nama Deskripsi Wajib
TableName

Nama tabel yang berisi item yang diminta.

Jenis: String

Ya
AttributesToGet

Array Nama atribut. Jika nama atribut tidak ditentukan, semua atribut akan dikembalikan. Jika beberapa atribut tidak ditemukan, atribut tersebut tidak akan muncul dalam hasil.

Jenis: Array

Tidak
Limit

Jumlah maksimum item untuk dievaluasi (tidak selalu merupakan jumlah item yang cocok). Jika DynamoDB memproses jumlah item hingga batasnya saat memproses hasilnya, layanan ini berhenti dan mengembalikan nilai-nilai yang cocok hingga titik tersebut, dan LastEvaluatedKey untuk diterapkan dalam operasi berikutnya guna melanjutkan pengambilan item. Selain itu, jika ukuran set data yang dipindai melampaui 1 MB sebelum DynamoDB mencapai batas ini, layanan ini menghentikan pemindaian dan mengembalikan nilai-nilai yang cocok hingga batasnya, serta LastEvaluatedKey untuk diterapkan dalam operasi berikutnya guna melanjutkan pemindaian.

Jenis: Angka

Tidak
Count

Jika diatur ke true, DynamoDB mengembalikan jumlah total item untuk operasi Scan, bahkan jika operasi tidak memiliki item yang cocok untuk filter yang ditetapkan. Anda dapat menerapkan parameter Limit untuk pemindaian hanya-hitung.

Jangan atur Count ke true saat menyediakan daftar AttributesToGet, karena ini membuat DynamoDB mengembalikan kesalahan validasi. Untuk informasi selengkapnya, lihat Menghitung item dalam hasil.

Jenis: Boolean

Tidak
ScanFilter

Mengevaluasi hasil pemindaian dan mengembalikan hanya nilai-nilai yang diinginkan. Beberapa syarat diperlakukan sebagai operasi "AND": semua syarat harus dipenuhi agar disertakan dalam hasil.

Jenis: Peta nama atribut ke nilai dengan operator perbandingan.

Tidak
ScanFilter:AttributeValueList

Nilai dan syarat untuk mengevaluasi hasil pemindaian untuk filter.

Jenis: Peta AttributeValue ke Condition.

Tidak
ScanFilter:​ ComparisonOperator

Kriteria untuk mengevaluasi atribut yang disediakan, seperti sama dengan, lebih besar dari, dll. Berikut ini adalah operator perbandingan yang valid untuk operasi pemindaian.

catatan

Perbandingan nilai string untuk lebih besar dari, sama dengan, atau kurang dari didasarkan pada nilai-nilai kode karakter ASCII. Sebagai contoh, a lebih besar dari A, dan aa lebih besar dari B. Untuk daftar nilai kode, lihat http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

Untuk Biner, DynamoDB memperlakukan setiap byte data biner sebagai tidak bertanda ketika membandingkan nilai-nilai biner, contohnya ketika mengevaluasi ekspresi kueri.

Jenis: String atau Biner

Tidak
 

EQ: Sama dengan.

Untuk EQ, AttributeValueList hanya dapat berisi satu AttributeValue berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi AttributeValue dengan jenis berbeda dari yang ditentukan dalam permintaan, nilainya tidak cocok. Sebagai contoh, {"S":"6"} tidak sama dengan {"N":"6"}. Selain itu, {"N":"6"} tidak sama dengan {"NS":["6", "2", "1"]}.

 
 

NE: Tidak sama dengan.

Untuk NE, AttributeValueList hanya dapat berisi satu AttributeValue berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi AttributeValue dengan jenis berbeda dari yang ditentukan dalam permintaan, nilainya tidak cocok. Sebagai contoh, {"S":"6"} tidak sama dengan {"N":"6"}. Selain itu, {"N":"6"} tidak sama dengan {"NS":["6", "2", "1"]}.

 
 

LE: Kurang dari atau sama dengan.

Untuk LE, AttributeValueList hanya dapat berisi satu AttributeValue berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi AttributeValue dengan jenis berbeda dari yang ditentukan dalam permintaan, nilainya tidak cocok. Sebagai contoh, {"S":"6"} tidak sama dengan {"N":"6"}. Selain itu, {"N":"6"} tidak sebanding dengan {"NS":["6", "2", "1"]}.

 
 

LT: Kurang dari.

Untuk LT, AttributeValueList hanya dapat berisi satu AttributeValue berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi AttributeValue dengan jenis berbeda dari yang ditentukan dalam permintaan, nilainya tidak cocok. Sebagai contoh, {"S":"6"} tidak sama dengan {"N":"6"}. Selain itu, {"N":"6"} tidak sebanding dengan {"NS":["6", "2", "1"]}.

 
 

GE: Lebih besar dari atau sama dengan.

Untuk GE, AttributeValueList hanya dapat berisi satu AttributeValue berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi AttributeValue dengan jenis berbeda dari yang ditentukan dalam permintaan, nilainya tidak cocok. Sebagai contoh, {"S":"6"} tidak sama dengan {"N":"6"}. Selain itu, {"N":"6"} tidak sebanding dengan {"NS":["6", "2", "1"]}.

 
 

GT: Lebih besar dari.

Untuk GT, AttributeValueList hanya dapat berisi satu AttributeValue berjenis String, Angka, atau Biner (bukan jenis set). Jika item berisi AttributeValue dengan jenis berbeda dari yang ditentukan dalam permintaan, nilainya tidak cocok. Sebagai contoh, {"S":"6"} tidak sama dengan {"N":"6"}. Selain itu, {"N":"6"} tidak sebanding dengan {"NS":["6", "2", "1"]}.

 
 

NOT_NULL: Atribut ada.

 
 

NULL: Atribut tidak ada.

 
 

CONTAINS: memeriksa urutan berikutnya, atau nilai dalam suatu set.

Untuk CONTAINS, AttributeValueList hanya dapat berisi satu AttributeValue berjenis String, Angka, atau Biner (bukan jenis set). Jika atribut target perbandingan berupa String, operasi memeriksa kecocokan substring. Jika atribut target perbandingan berupa Biner, operasi mencari urutan berikutnya dari target yang cocok dengan input. Jika atribut target perbandingan adalah suatu set ("SS", "NS", atau "BS"), operasi memeriksa anggota set tersebut (bukan sebagai substring).

 
 

NOT_CONTAINS: memeriksa tidak adanya urutan berikutnya, atau tidak adanya nilai dalam suatu set.

Untuk NOT_CONTAINS, AttributeValueList hanya dapat berisi satu AttributeValue berjenis String, Angka, atau Biner (bukan jenis set). Jika atribut target perbandingan adalah String, operasi memeriksa tidak adanya kecocokan substring. Jika atribut target perbandingan adalah Biner, operasi mencari tidak adanya urutan berikutnya dari target yang cocok dengan input. Jika atribut target perbandingan adalah suatu set ("SS", "NS", atau "BS"), operasi memeriksa tidak adanya anggota set tersebut (bukan sebagai substring).

 
 

BEGINS_WITH: memeriksa prefiks.

Untuk BEGINS_WITH, AttributeValueList hanya dapat berisi satu AttributeValue berjenis String atau Biner (bukan jenis Angka atau set). Atribut target perbandingan harus berupa String atau Biner (bukan Angka atau set).

 
 

IN: memeriksa kecocokan yang tepat.

Untuk IN, AttributeValueList dapat berisi lebih dari satu AttributeValue berjenis String, Angka, atau Biner (bukan jenis set). Atribut target perbandingan harus memiliki jenis yang sama dan nilai persis agar cocok. Sebuah String tidak pernah cocok dengan set String.

 
 

BETWEEN: Lebih besar dari, atau sama dengan, nilai pertama dan kurang dari, atau sama dengan, nilai kedua.

Untuk BETWEEN, AttributeValueList harus berisi dua elemen AttributeValue berjenis yang sama, baik String, Angka, atau Biner (bukan set). Suatu atribut target cocok jika nilai target lebih besar dari, atau sama dengan, elemen pertama dan kurang dari, atau sama dengan, elemen kedua. Jika item berisi AttributeValue dengan jenis berbeda dari yang ditentukan dalam permintaan, nilainya tidak cocok. Misalnya, {"S":"6"} tidak sebanding dengan {"N":"6"}. Selain itu, {"N":"6"} tidak sebanding dengan {"NS":["6", "2", "1"]}.

 
ExclusiveStartKey

Kunci primer dari item untuk melanjutkan pemindaian sebelumnya. Pemindaian sebelumnya mungkin memberikan nilai ini jika operasi pemindaian terganggu sebelum memindai seluruh tabel; baik karena ukuran set hasil atau parameter Limit. LastEvaluatedKey dapat diteruskan kembali dalam permintaan pemindaian baru untuk melanjutkan operasi dari titik tersebut.

Jenis: HashKeyElement, atau HashKeyElement dan RangeKeyElement untuk kunci primer komposit.

Tidak

Respons

Sintaks

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} }
Nama Deskripsi
Items

Kontainer untuk atribut yang memenuhi parameter operasi.

Jenis: Peta nama atribut serta nilai dan jenis data.

Count

Jumlah item dalam respons. Untuk informasi selengkapnya, lihat Menghitung item dalam hasil.

Jenis: Angka

ScannedCount

Jumlah item dalam pemindaian lengkap sebelum filter diterapkan. Nilai ScannedCount yang tinggi dengan dengan sedikit, atau tanpa hasil, Count hasil menunjukkan operasi Scan yang tidak efisien. Untuk informasi selengkapnya, lihat Menghitung item dalam hasil.

Jenis: Angka

LastEvaluatedKey Kunci primer item tempat operasi pemindaian berhenti. Masukkan nilai ini dalam operasi pemindaian berikutnya untuk melanjutkan operasi dari titik tersebut.

LastEvaluatedKey adalah null ketika seluruh set hasil pemindaian selesai (yaitu operasi memproses “halaman terakhir”).

ConsumedCapacityUnits

Jumlah unit kapasitas baca yang digunakan dalam operasi. Nilai ini menunjukkan jumlah yang diterapkan pada throughput yang disediakan. Untuk informasi selengkapnya, lihat DynamoDB menyediakan mode kapasitas.

Jenis: Angka

Kesalahan khusus

Kesalahan Deskripsi
ResourceNotFoundException Tabel yang ditentukan tidak ditemukan.

Contoh

Untuk contoh menggunakan AWS SDK, lihatMemindai tabel di DynamoDB.

Permintaan sampel

// This header is abbreviated. For a sample of a complete header, see DynamoDB tingkat rendah API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Scan content-type: application/x-amz-json-1.0 {"TableName":"1-hash-rangetable","ScanFilter":{}}

Respons sampel

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}

Permintaan sampel

// This header is abbreviated. For a sample of a complete header, see DynamoDB tingkat rendah 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"} } }

Respons sampel

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 }

Permintaan sampel

// This header is abbreviated. For a sample of a complete header, see DynamoDB tingkat rendah 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"}} }

Respons sampel

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 }