Ungkapan Penapis DynamoDB: Semua yang Anda Perlu Tahu

Ungkapan Penapis Dynamodb Semua Yang Anda Perlu Tahu



Ungkapan penapis digunakan dalam fungsi No-SQL DynamoDB seperti klausa WHERE yang biasa dalam pangkalan data SQL. Walau bagaimanapun, memandangkan DynamoDB ialah pangkalan data No-SQL, ungkapan penapis berkelakuan agak berbeza daripada klausa WHERE kerana sifat dan struktur pangkalan data No-SQL.

Artikel ini memfokuskan pada ungkapan penapis. Oleh itu, kami akan mentakrifkan ungkapan penapis, menerangkan sebab dan bila ia berkenaan dan menyediakan panduan langkah demi langkah tentang cara menggunakannya melalui contoh yang berkaitan.

Apakah Ungkapan Penapis?

Ungkapan penapis ialah teknik popular untuk menapis data dalam DynamoDB semasa operasi Pertanyaan dan Imbasan. Dalam DynamoDB, pemodelan dan organisasi data yang betul bergantung pada penapisan. Walaupun kebanyakan aplikasi sentiasa mempunyai banyak data yang disimpan, anda mungkin memerlukan item dari kekacauan besar dengan segera.







Keupayaan anda untuk mendapatkan semula data yang betul pada bila-bila masa anda memerlukannya bergantung pada keupayaan penapisan pangkalan data anda, dan di sinilah ungkapan penapis membantu. Mereka menentukan keputusan dalam item pertanyaan yang anda mahu dikembalikan kepada anda kerana mereka membuang item yang lain.



Anda boleh menggunakan ungkapan penapis pada penapis sebelah pelayan pada atribut item selepas operasi Pertanyaan selesai tetapi sebelum pelayan membawa kembali hasil panggilan Pertanyaan anda. Ini menunjukkan bahawa Pertanyaan anda masih menggunakan jumlah kapasiti baca yang sama, tidak kira sama ada anda menggunakan ungkapan penapis.



Selain itu, seperti operasi Pertanyaan biasa, had data 1 MB anda untuk operasi Pertanyaan berlaku sebelum penilaian operasi ungkapan penapis anda. Anda boleh menggunakan operasi ini untuk mengurangkan muatan, mencari item tertentu dan meningkatkan kesederhanaan dan kebolehbacaan semasa pembangunan aplikasi.





Sintaks Ungkapan Penapis dan Contoh

Terutama, kedua-dua ungkapan penapis dan ungkapan utama menggunakan sintaks yang sama. Selain itu, ungkapan penapis dan ungkapan keadaan juga boleh menggunakan fungsi, pembanding dan pengendali logik yang sama.

Pengendali lain yang menapis ungkapan yang boleh digunakan juga termasuk operator CONTAINS, operator OR, Operator tidak sama (), Operator IN, operator BETWEEN, operator BEGINS_WITH, operator SIZE dan operator EXISTS.



Contoh 1: Menyoal Menggunakan AWS CLI dan Kunci Utama DynamoDB

Contoh ini menanyakan jadual Muzik untuk genre tertentu (kunci partition) dan artis tertentu (kunci isihan). Utiliti hanya mengembalikan hasil untuk item yang sepadan dengan kekunci partition tertentu dan kekunci isihan untuk lagu dengan tontonan terbanyak.

Anda boleh menentukan bilangan paparan (#v) dalam arahan. Sebagai contoh, kami menandakan had minimum kami kepada 1,000 tontonan untuk membayangkan bahawa hanya hasil untuk lagu dengan lebih 1000 tontonan akan kembali.

pertanyaan $ aws dynamodb \
--nama-jadual Muzik \
--ungkapan-syarat-kunci 'Genre = :fn dan Artis = :sub' \
--ekspresi penapis '#v >= :num(1000)' \
--ungkapan-nama-atribut '{'#v': 'Paparan'}' \
--expression-attribute-values fail: // values.json

Contoh 2: Menggunakan AWS CLI dengan Ungkapan Keadaan

Kami boleh menyusun semula Pertanyaan yang sama seperti dalam contoh sebelumnya tetapi kini dengan kunci syarat bersama penapis kami. Ia tidak termasuk kunci isihan. Sebaliknya, ia mendapatkan semula semua rekod untuk artis yang ditentukan dengan lebih daripada 1,000 tontonan. Ia juga boleh dibina semula untuk menyediakan pesanan di atas nombor yang diberikan untuk nama pengguna tertentu (customer_id).

pertanyaan $ aws dynamodb \
--nama-jadual Muzik \
--ungkapan-syarat-kunci 'Nama pengguna = :nama pengguna' \
--ekspresi penapis 'Jumlah > :jumlah' \
--expression-attribute-values '{
':nama pengguna': { 'S': 'artis' },
':jumlah': { 'N': '1000' }
}'
\
$LOCAL

Contoh hasilnya kelihatan seperti ini:

Ilustrasi yang diberikan menunjukkan bahawa daripada 56 judul lagu untuk artis yang sama, hanya tujuh lagu mempunyai lebih daripada 1,000 tontonan. Walau bagaimanapun, kami telah memotong angka tersebut untuk tujuan ringkas dan memasukkan hanya hasil pertama dan terakhir dalam senarai.

Contoh 3: Menggunakan Ungkapan Penapis dengan Operator No-Equal ()

Dalam utiliti Java berikut, kami ingin menanyakan jadual kami (Koleksi Filem) untuk semua filem yang tidak sama dengan 'Movie X'. Pastikan anda menggunakan ungkapan penapis dengan atribut (#name) bersama nilai atribut ekspresi (:name) seperti yang digambarkan dalam perkara berikut:

const AWS = memerlukan ( 'aws-sdk' ) ;
AWS.config.update ( { wilayah: 'eu-west-1' } ) ;
const dynamodb = AWS.DynamoDB.DocumentClient baharu ( ) ;

var params = {
  Nama Jadual: 'koleksi filem' ,
KeyConditionExpression: '#PK = :PK' ,
Ungkapan Penapis : '#name  :name' , ( ungkapan penapis )
ExpressionAttributeNames: { '#PK' : 'PK' , '#nama' : 'nama' } , ( ungkapan keadaan )
ExpressionAttributeValues: {
':PK' : 'OgejhHrdRS453HGD4Ht44' ,
':nama' : 'Filem X'
}
} ;

dynamodb.query ( parameter, fungsi ( silap, data ) {
jika ( silap ) konsol.log ( silap ) ;
lain konsol.log ( data ) ;
} ) ;

Contoh 4: Menggunakan Ungkapan Penapis dengan Pengendali Imbasan

Walaupun arahan sebelumnya menggunakan <> untuk mengambil item yang tidak sama dengan nama filem yang dipanggil Movie X sahaja, pastikan anda menggunakan ungkapan syarat utama di sini bersama dengan ungkapan penapis. Ini kerana adalah mustahil untuk menapis data dalam pengendali Pertanyaan tanpa menggunakan ungkapan syarat utama.

var params = {
Nama Jadual: 'koleksi filem' ,
Ungkapan Penapis : 'PK = :PK dan #name  :name' ,
ExpressionAttributeNames: { '#nama' : 'nama' } ,
ExpressionAttributeValues: {
':PK' : 'OgejhHrdRS453HGD4Ht44' ,
':nama' : 'Filem X'
}
} ;

dynamodb.scan ( parameter, fungsi ( silap, data ) {
jika ( silap ) konsol.log ( silap ) ;
lain konsol.log ( data ) ;
} ) ;

Kesimpulan

Itulah penghujung tutorial DynamoDB kami tentang ungkapan penapis. Anda boleh menggunakan ungkapan penapis untuk mendapatkan set data pilihan, menapis data yang diambil selepas imbasan atau pertanyaan atau mengembalikan set data kepada pelanggan. Walaupun ia boleh digunakan dengan pelbagai alat, terdapat keadaan apabila menggunakan ungkapan penapis tidak berdaya maju. Contohnya, anda hanya boleh menggunakannya jika anda mempunyai model data yang betul, apabila menggunakan kunci utama dan apabila mengekstrak sebahagian besar data.