Menggunakan Tampilan di Amazon DocumentDB 8.0 - Amazon DocumentDB

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

Menggunakan Tampilan di Amazon DocumentDB 8.0

  • Amazon DocumentDB 8.0 sekarang mendukung tampilan. Tampilan berfungsi sebagai koleksi virtual yang menyajikan data berdasarkan operasi agregasi tertentu. Saat membuat tampilan, Anda menentukan kueri yang mengubah data dari satu atau beberapa koleksi sumber. Amazon DocumentDB 8.0 mengeksekusi kueri ini setiap kali tampilan diakses, tanpa menghabiskan sumber daya penyimpanan tambahan. Tidak seperti koleksi standar, tampilan di Amazon DocumentDB 8.0 tidak menyimpan dokumen pada disk, menjadikannya solusi yang efisien untuk menyajikan data yang diubah atau difilter ke aplikasi. Untuk membuat tampilan di Amazon DocumentDB, Anda dapat menggunakan perintah createView atau metode pembantu db.createView ():

    db.createView("viewName","sourceCollection", [ { $match: { status: "active" } }, { $project: { _id: 1, name: 1, email: 1 } } ] )

    Ini membuat tampilan bernama “ViewName” berdasarkan “sourceCollection” yang hanya menyertakan dokumen aktif dan memproyeksikan hanya bidang _id, nama, dan email. Tampilan di Amazon DocumentDB hanya bisa dibaca. Operasi tulis pada tampilan akan mengembalikan kesalahan. Untuk kinerja optimal dengan kumpulan data yang besar, Anda dapat menyusun jalur pipa tampilan untuk memaksimalkan efisiensi. Untuk pipeline agregasi yang kompleks, disarankan untuk menggunakan tahap $match sebagai tahap pertama atau awal pipeline untuk mengurangi jumlah dokumen yang perlu diproses oleh tahap selanjutnya, sehingga meningkatkan kinerja kueri.

Praktik Terbaik

Beberapa praktik terbaik untuk diikuti dengan Tampilan tercantum di bawah ini.

  • Filter Awal: Gunakan tahap $match di awal pipeline tampilan untuk mengurangi jumlah data yang diproses.

  • Hindari Agregasi Kompleks: Untuk tampilan yang sering diakses dengan agregasi kompleks, pertimbangkan untuk membuat koleksi terpisah dengan hasil yang telah dihitung sebelumnya yang diperbarui secara berkala.

  • Perencanaan Indeks: Pastikan bahwa bidang yang digunakan dalam pipeline tampilan, terutama dalam operasi $match dan $sort, diindeks dengan benar pada koleksi sumber.

  • Pengoptimalan Kueri: Gunakan perintah jelaskan untuk memahami bagaimana kueri tampilan Anda dijalankan dan mengoptimalkannya.

  • Alternatif untuk Tampilan: Mengingat perbedaan fungsional antara tampilan Amazon DocumentDB dan MongoDB, pertimbangkan untuk menggunakan koleksi reguler dengan pembaruan terjadwal sebagai alternatif tampilan saat menghadapi batasan.

Kompatibilitas Operator Agregator

Amazon DocumentDB mendukung banyak operator agregasi dalam definisi tampilan sambil terus memperluas kompatibilitas. Saat menggunakan tampilan, fokuslah pada operator yang didukung ini:

  • $ match untuk memfilter dokumen

  • $project untuk seleksi lapangan dan transformasi

  • $addFields untuk menambahkan bidang yang dihitung

  • $ sort untuk memesan hasil

  • $limit dan $skip untuk pagination

Beberapa operator khusus seperti $currentTop, $replaceRoot, dan $geonear saat ini bekerja dalam kueri agregasi langsung daripada definisi tampilan.

Memanfaatkan Indeks dan Tampilan

Tampilan di Amazon DocumentDB 8.0 menggunakan indeks koleksi yang mendasarinya. Akibatnya, Anda tidak dapat membuat, menjatuhkan, atau membangun kembali indeks pada tampilan secara langsung. Namun, indeks yang dirancang dengan baik pada koleksi sumber dapat secara signifikan meningkatkan kinerja kueri tampilan Di bawah ini adalah beberapa langkah untuk mengoptimalkan kinerja kueri pada tampilan:

  • Pastikan indeks yang sesuai ada pada kolom koleksi sumber yang digunakan dalam pipeline tampilan, terutama dalam operasi $match dan $sort

  • Gunakan metode explain () untuk menganalisis rencana eksekusi kueri dan memverifikasi penggunaan indeks. Misalnya, db.viewName.find({...}).explain()