Tema ini menjelaskan fitur baru yang diperkenalkan dalam MongoDB 5.0.
Informasi latar belakang
MongoDB 5.0 menandai siklus rilis baru untuk mempercepat penyediaan fitur baru kepada pengguna. Kombinasi API Berbasis Versi dan resharding langsung mengatasi tantangan selama pemutakhiran database dan perubahan bisnis. Platform deret waktu asli memungkinkan MongoDB mendukung berbagai beban kerja dan skenario bisnis yang lebih luas, sementara Mongo Shell baru meningkatkan pengalaman pengguna.
Platform deret waktu asli
MongoDB 5.0 secara asli mendukung seluruh siklus hidup data deret waktu, mulai dari injeksi, penyimpanan, kueri, analisis waktu nyata, visualisasi, hingga pengarsipan daring atau kedaluwarsa otomatis saat data bertambah usia. Hal ini menyederhanakan pembuatan dan pengoperasian aplikasi deret waktu serta menurunkan biaya. MongoDB 5.0 memperluas platform data aplikasi universal untuk membantu pengembang memproses data deret waktu dengan lebih mudah, memperluas skenario aplikasi ke area seperti IoT, analisis keuangan, dan logistik.
Koleksi deret waktu MongoDB secara otomatis menyimpan data dalam format yang sangat dioptimalkan dan dikompresi, mengurangi ukuran penyimpanan dan I/O untuk memberikan performa lebih baik pada skala besar. Selain itu, koleksi deret waktu mempersingkat siklus pengembangan sehingga Anda dapat dengan cepat membangun model yang dioptimalkan untuk persyaratan performa dan analisis aplikasi deret waktu.
Anda dapat menjalankan perintah berikut untuk membuat koleksi data deret waktu:
db.createCollection("collection_name",{ timeseries: { timeField: "timestamp" } } )MongoDB secara otomatis menyesuaikan frekuensi akuisisi dan memproses nilai pengukuran yang tidak berurutan berdasarkan partisi waktu yang dihasilkan secara dinamis. MongoDB Connector untuk Apache Kafka yang baru dirilis mendukung deret waktu secara asli. Anda dapat langsung membuat koleksi deret waktu dari pesan topik Kafka, memproses dan mengumpulkan data selama pengumpulan, lalu menuliskannya ke koleksi deret waktu MongoDB.
Koleksi deret waktu secara otomatis membuat indeks terkluster dari data yang diurutkan berdasarkan waktu untuk mengurangi latensi kueri. MongoDB Query API juga memperluas fungsi jendela, memungkinkan Anda menjalankan kueri analitik seperti moving averages dan jumlah kumulatif. MongoDB menambahkan fungsi deret waktu yang kuat seperti exponential moving average (EMA), turunan, dan integral, memungkinkan Anda mendefinisikan jendela dalam satuan waktu seperti moving average 15 menit. Fungsi jendela dapat digunakan untuk mengkueri koleksi deret waktu dan koleksi reguler MongoDB, memberikan metode analisis baru untuk berbagai jenis aplikasi. Selain itu, MongoDB 5.0 menyediakan operator waktu baru, termasuk $dateAdd, $dateSubstract, $dateDiff, dan $dateTrunc, memungkinkan Anda merangkum dan mengkueri data pada jendela waktu kustom.
Anda dapat mengelola data deret waktu MongoDB bersama dengan data lainnya dari perusahaan Anda. Koleksi deret waktu dapat ditempatkan bersama koleksi MongoDB reguler di database yang sama, menghilangkan kebutuhan untuk menggunakan database deret waktu khusus atau integrasi kompleks. MongoDB menyediakan platform terpadu yang memungkinkan Anda membangun aplikasi deret waktu berperforma tinggi dan efisien, serta mendukung kasus penggunaan atau beban kerja lainnya.
Resharding data langsung
Konfigurasikan versi database | Deskripsi | Metode implementasi |
Versi sebelumnya MongoDB | Proses resharding kompleks dan memerlukan operasi manual. |
|
MongoDB 5.0 |
| Anda dapat mengubah kunci shard untuk koleksi Anda sesuai permintaan saat beban kerja Anda bertambah atau berkembang. Tidak diperlukan downtime database atau migrasi kompleks dalam dataset dalam proses ini. Anda dapat menjalankan perintah reshardCollection di MongoDB Shell untuk memilih database dan koleksi yang ingin Anda reshard dan menentukan kunci shard baru. Catatan
|
API Berbasis Versi
Meningkatkan kompatibilitas dengan aplikasi
Fitur API Berbasis Versi MongoDB 5.0 mendefinisikan serangkaian perintah dan parameter yang paling umum digunakan dalam aplikasi. Perintah-perintah ini tetap tidak berubah di semua rilis database, termasuk rilis utama tahunan dan rilis cepat kuartalan. Dengan demikian, siklus hidup aplikasi dipisahkan dari siklus hidup database, memungkinkan Anda menetapkan driver ke versi tertentu dari MongoDB API. Bahkan setelah database ditingkatkan, aplikasi Anda dapat terus berjalan tanpa memodifikasi kode.
Memungkinkan penambahan fitur baru dan peningkatan secara fleksibel
API Berbasis Versi memungkinkan penambahan fitur baru ke database setiap versi dengan kompatibilitas mundur penuh. Saat mengubah API, Anda dapat menjalankan versi baru API di server yang sama bersamaan dengan versi API yang ada. Fitur ini memberikan akses lebih mudah ke fitur-fitur versi terbaru saat MongoDB dirilis dengan kecepatan lebih cepat.
Pengaturan mayoritas default write concern.
Mulai MongoDB 5.0, peringkat default Write Concern adalah mayoritas. Operasi tulis dikomit dan keberhasilan tulis dikembalikan ke aplikasi hanya ketika operasi tulis diterapkan ke node primer dan disimpan ke log sebagian besar node sekunder. Ini memastikan bahwa MongoDB 5.0 memberikan jaminan durabilitas data yang lebih kuat secara out-of-the-box.
Write Concern sepenuhnya dapat disesuaikan. Anda dapat menyetel Write Concern untuk menyeimbangkan performa database dan durabilitas data.
Optimalisasi manajemen koneksi
Secara default, koneksi klien sesuai dengan thread di server MongoDB backend. Dengan kata lain, net.serviceExecutor disetel ke synchronous. Sejumlah besar sumber daya sistem diperlukan untuk membuat, beralih, atau menghapus thread. Saat sejumlah besar koneksi klien ada, thread mengonsumsi sejumlah besar sumber daya.
Situasi di mana jumlah koneksi besar atau pembuatan koneksi tidak terkendali disebut sebagai "badai koneksi". Badai koneksi sering terjadi ketika layanan sudah melambat.
Sebagai tanggapan, MongoDB 5.0 mengambil langkah-langkah berikut:
Batasi jumlah koneksi yang coba dibuat oleh driver, melindungi server database dari kelebihan beban.
Kurangi frekuensi driver memeriksa kumpulan koneksi, memungkinkan node server yang tidak responsif atau kelebihan beban untuk menyangga dan pulih.
Izinkan driver beralih ke server yang lebih cepat dengan kumpulan koneksi paling sehat daripada memilih server yang tersedia secara acak.
Langkah-langkah di atas dan peningkatan yang dilakukan di lapisan perutean kueri mongos di versi sebelumnya lebih meningkatkan kemampuan MongoDB untuk menangani konkurensi tinggi.
Kueri snapshot jangka panjang.
Kueri snapshot jangka panjang meningkatkan kegunaan dan fleksibilitas aplikasi. Secara default, kueri snapshot memiliki durasi 5 menit, yang dapat disesuaikan. Fitur ini mempertahankan konsistensi kuat dengan jaminan isolasi snapshot tanpa memengaruhi performa beban kerja langsung dan transaksional, serta memungkinkan Anda menjalankan kueri snapshot pada node sekunder. Ini memungkinkan Anda menjalankan beban kerja berbeda dalam satu kluster dan menskalakan beban kerja ke shard yang berbeda.
MongoDB mengimplementasikan kueri snapshot jangka panjang melalui proyek bernama Durable History di mesin penyimpanan bawah. Proyek ini telah tersedia sejak MongoDB 4.4. Durable History menyimpan snapshot dari semua nilai bidang yang telah berubah sejak awal kueri. Kueri dapat menggunakan durable history untuk mempertahankan isolasi snapshot. Jika data berubah, durable history juga membantu mengurangi tekanan caching mesin penyimpanan dan memungkinkan throughput kueri yang lebih tinggi dalam skenario beban tulis tinggi.
MongoDB Shell Baru
Untuk pengalaman pengguna yang lebih baik, MongoDB Shell telah didesain ulang dari bawah ke atas untuk memberikan pengalaman baris perintah modern, fitur kegunaan yang ditingkatkan, dan lingkungan skrip yang kuat. MongoDB Shell baru menjadi shell default untuk MongoDB, memperkenalkan sorotan sintaksis, penyelesaian otomatis cerdas, bantuan kontekstual, dan pesan kesalahan yang berguna untuk menciptakan pengalaman visual dan interaktif.
Pengalaman Pengguna yang Ditingkatkan
Pelaksanaan kueri dan agregasi yang lebih mudah, serta peningkatan keterbacaan
MongoDB Shell baru mendukung sorotan sintaksis, memudahkan Anda membedakan bidang, nilai, dan tipe data untuk menghindari kesalahan sintaksis. Jika kesalahan tetap ada, MongoDB Shell baru dapat menunjukkan masalah dan memberikan solusi.
Pengetikan kueri dan perintah yang lebih cepat
MongoDB Shell baru menyediakan fitur penyelesaian otomatis cerdas, memberikan petunjuk penyelesaian otomatis untuk metode, perintah, dan ekspresi MQL berdasarkan versi MongoDB Anda.
Jika Anda lupa sintaksis suatu perintah, Anda dapat dengan cepat mencarinya di MongoDB Shell. Contoh sintaksis:

Lingkungan Skrip Lanjutan
Lingkungan skrip MongoDB Shell baru dibangun di atas interpreter interaktif Node.js REPL. Anda dapat menggunakan semua API Node.js dan modul npm dalam skrip Anda, serta memuat dan menjalankan skrip dari sistem file. Di MongoDB Shell baru, Anda dapat terus menggunakan metode load() dan fungsi eval() untuk menjalankan skrip seperti yang Anda lakukan di versi sebelumnya.
Ekspansibilitas dan Plug-in
MongoDB Shell baru dapat dengan mudah diperluas, memungkinkan Anda menggunakan semua fitur MongoDB untuk meningkatkan produktivitas.
Plug-in Snippets dapat diinstal di MongoDB Shell baru. Snippets dapat dimuat secara otomatis ke MongoDB Shell dan menggunakan semua API Node.js dan paket npm. MongoDB memelihara repositori Snippets yang menyediakan fitur seperti plug-in analisis untuk pola koleksi tertentu. Anda juga dapat mengonfigurasi MongoDB Shell untuk menggunakan plug-in tertentu.
CatatanPlug-in saat ini merupakan fitur eksperimental dari MongoDB Shell.
PyMongoArrow dan ilmu data
API PyMongoArrow baru memungkinkan Anda melaksanakan tugas analisis dan pembelajaran mesin yang kompleks di MongoDB menggunakan Python. PyMongoArrow dapat dengan cepat mengonversi hasil kueri MongoDB sederhana ke format data populer seperti Pandas DataFrames dan array NumPy untuk menyederhanakan alur kerja ilmu data Anda.
Peningkatan validasi skema
Validasi skema adalah metode yang digunakan MongoDB untuk manajemen aplikasi data. Di MongoDB 5.0, validasi skema menjadi lebih sederhana dan ramah pengguna. Saat validasi operasi gagal, pesan kesalahan deskriptif dihasilkan untuk menyoroti dokumen yang tidak sesuai dengan aturan validasi koleksi dan alasannya. Dengan cara ini, Anda dapat dengan cepat mengidentifikasi dan memperbaiki kode kesalahan yang memengaruhi aturan validasi.
Tugas pembuatan indeks yang dapat dilanjutkan
Jika tugas pembuatan indeks yang sedang berlangsung mengalami restart node, MongoDB 5.0 memungkinkan tugas tersebut secara otomatis dilanjutkan dari tempat terakhir. Ini mengurangi dampak operasi pemeliharaan yang direncanakan pada bisnis. Misalnya, saat node database di-restart atau ditingkatkan, Anda tidak perlu khawatir bahwa tugas pembuatan indeks yang sedang berlangsung untuk koleksi besar mungkin gagal.
Penyesuaian rilis versi
MongoDB mendukung berbagai versi dan platform, dan setiap versi perlu diverifikasi pada lebih dari 20 platform yang didukung MongoDB. Beban verifikasi yang berat membuat pengiriman fitur MongoDB baru menjadi lebih lambat. Untuk meningkatkan kecepatan pengiriman, mulai dengan rilis 5.0, MongoDB dirilis sebagai dua seri berbeda: Rilis Utama dan Rilis Cepat. Rilis Cepat tersedia untuk tujuan evaluasi dan pengembangan. Kami merekomendasikan agar Anda tidak menggunakan Rilis Cepat di lingkungan produksi.
Lebih banyak fitur
Untuk informasi tentang fitur lainnya, lihat Catatan Rilis untuk MongoDB 5.0.