3 alasan (dan 2 cara) untuk menggunakan koleksi deret waktu MongoDB yang disempurnakan

Database


Data deret waktu, yang mencerminkan pengukuran yang dilakukan secara berkala, memainkan peran penting dalam berbagai kasus penggunaan untuk beragam industri. Misalnya, lembaga pengelola taman dapat menggunakan data deret waktu untuk memeriksa kehadiran di taman umum untuk lebih memahami waktu sibuk dan merencanakan layanan yang sesuai. Perusahaan ritel, seperti Walmart, bergantung padanya untuk menganalisis pola pengeluaran konsumen, untuk memprediksi permintaan dengan lebih baik dan meningkatkan penjadwalan, perekrutan, pergudangan, dan logistik lainnya.

Karena lebih banyak sensor dan perangkat ditambahkan ke jaringan, data deret waktu dan alat terkait menjadi lebih penting. Dalam artikel ini, kami akan membahas tiga alasan (dan dua cara) untuk menggunakan koleksi deret waktu MongoDB di tumpukan Anda.

Pengantar mendalam tentang data deret waktu ini menampilkan Manajer Produk MongoDB Michael Gargiolo.

Alasan 1: Dibuat untuk tantangan data deret waktu

Sepintas, koleksi time series terlihat seperti koleksi lain di MongoDB, dengan fungsi dan kegunaan yang serupa. Namun, di bawah permukaan, mereka secara khusus dirancang untuk menyimpan, menyortir, dan bekerja dengan data deret waktu.

Untuk pengembang, kecepatan kueri dan aksesibilitas data terus menjadi tantangan yang terkait dengan data deret waktu. Karena kecepatan pengumpulan data deret waktu, data tersebut harus diatur dan diurutkan secara logis untuk memastikan bahwa kueri dan operasi terkait dapat berjalan dengan lancar dan cepat.

Untuk mengatasi masalah ini, kumpulan deret waktu menerapkan prinsip utama platform data pengembang MongoDB: data yang disimpan bersama dapat diakses bersama. Dokumen (struktur data inti MongoDB) dikelompokkan ke dalam ember yang diatur berdasarkan waktu. Setiap keranjang berisi data deret waktu dari sumber yang berbeda – semua dikumpulkan dari periode waktu yang sama, dan mungkin semua muncul dalam kueri yang sama.

Misalnya, jika Anda menggunakan kumpulan data deret waktu untuk menganalisis peningkatan suhu musim panas di Valencia, Spanyol dari 1980 hingga 2020, satu nampan akan berisi suhu dari Agustus 1991. Tempat sampah terkait, tetapi berbeda (seperti suhu untuk Juni dan Juli 1991) juga disimpan pada halaman yang sama untuk akses yang lebih cepat dan lebih mudah.

MongoDB juga memungkinkan Anda membuat indeks komposit pada bidang pengukuran apa pun di bucket (baik timeField atau metaField) untuk pencarian yang lebih cepat dan lebih fleksibel. Karena berbagai pilihan pengindeksan, operasi pada data deret waktu dapat dilakukan jauh lebih cepat daripada produk pesaing. Misalnya, waktu pemindaian dikurangi dengan mengindeks kumpulan dokumen (masing-masing dengan ID unik) alih-alih dokumen individual.

Dalam hal contoh sebelumnya, Anda dapat membuat indeks pada suhu musim panas rata-rata minimum dan maksimum di Valencia, Spanyol dari tahun 1980 hingga 2020 untuk menampilkan data yang diperlukan lebih cepat. Dengan begitu, MongoDB tidak perlu memindai seluruh dataset untuk menemukan nilai minimum dan maksimum selama kurun waktu hampir empat dekade.

Kekhawatiran lain bagi pengembang adalah menemukan bit terakhir metadata, yang dalam solusi lain mengharuskan pengguna untuk memindai seluruh kumpulan data—proses yang memakan waktu. Sebagai gantinya, kumpulan deret waktu menggunakan kueri titik akhir, di mana MongoDB hanya mengambil pengukuran terakhir untuk setiap nilai metadata. Seperti bidang lainnya, pengguna juga dapat membuat indeks untuk titik terakhir dalam data mereka. Dalam contoh kami, Anda dapat membuat indeks untuk mengidentifikasi suhu akhir musim panas di Valencia dari tahun 1980 hingga 2020. Dengan mengindeks nilai terbaru, kumpulan deret waktu dapat secara drastis mengurangi waktu kueri.

Tantangan berulang lainnya untuk aplikasi deret waktu adalah hilangnya data dari aplikasi Internet of Things (IoT) untuk industri seperti manufaktur, meteorologi, dll. Saat sensor offline dan kesenjangan dalam data Anda muncul, menjadi jauh lebih sulit untuk menjalankan analitik yang memerlukan aliran data yang berkelanjutan dan tidak terputus.

Sebagai solusinya, tim MongoDB mengembangkan kompresi dan pengisian celah. Densifikasi, dilakukan oleh perintah $densify, membuat dokumen kosong dan placeholder untuk mengisi cap waktu yang hilang. Pengguna kemudian dapat mengurutkan data berdasarkan waktu dan menjalankan perintah $fill untuk mengisi kekosongan. Proses ini memperkirakan dan menambahkan nilai nol atau hilang dalam dokumen berdasarkan data yang tersedia. Dengan menggunakan dua kemampuan ini secara bersamaan, Anda akan mendapatkan aliran data yang stabil untuk dimasukkan ke dalam alur agregasi Anda untuk mendapatkan wawasan.

Alasan 2: Simpan semuanya di rumah, di satu platform data

Menyulap berbagai alat dan platform data bisa jadi membosankan. Menyatukan sekelompok produk dan teknologi yang terpisah ke dalam satu infrastruktur dapat menciptakan arsitektur yang kompleks dan memerlukan biaya operasional yang signifikan. Selain itu, solusi deret waktu pihak ketiga mungkin tidak kompatibel dengan alur kerja Anda yang ada dan mungkin memerlukan solusi tambahan untuk berjalan dengan lancar.

Platform Data Pengembang MongoDB menyatukan beberapa produk dan fitur ke dalam satu ekosistem intuitif, sehingga pengembang dapat menggunakan MongoDB untuk memenuhi banyak kebutuhan umum—dari data deret waktu hingga aliran yang berubah—sambil mengurangi waktu dan biaya pemeliharaan.

Akibatnya, pengguna dapat menggunakan berbagai fitur MongoDB untuk mengumpulkan, menganalisis, dan mengubah data deret waktu. Anda dapat menanyakan koleksi deret waktu melalui MongoDB Compass GUI atau MongoDB Shell, menggunakan fitur MongoDB yang sudah dikenal seperti data bersarang dalam dokumen, indeks sekunder, dan operator seperti $lookup atau $merge, dan mengumpulkan data deret waktu melalui saluran pipa. wawasan proses. Menginformasikan pengambilan keputusan

Alasan 3: Cara logis untuk mengatur dan mengakses data deret waktu

Koleksi deret waktu dirancang agar efisien, efektif, dan mudah digunakan. Misalnya, koleksi ini menggunakan format penyimpanan kolom yang dioptimalkan untuk data deret waktu. Pendekatan ini memastikan efisiensi dalam semua operasi basis data, termasuk kueri, I/O, penggunaan cache WiredTiger, dan jejak penyimpanan untuk data dan indeks sekunder.

Sebagai contoh, mari kita lihat cara kerja kueri kumpulan data deret waktu. Saat kueri dijalankan, dua hal terjadi di balik layar: membongkar keranjang dan menulis ulang kueri. Sebagai permulaan, koleksi deret waktu secara otomatis membuka tempat sampah – mirip dengan perintah $ unwind. MongoDB menggulir data terkompresi, mengurutkannya, dan mengembalikannya ke format yang disisipkan untuk memudahkan pengguna membaca dan menguraikan.

Penulisan ulang kueri berfungsi bersama pengemasan bucket untuk memastikan performa. Untuk menghindari membuka terlalu banyak dokumen (yang menghabiskan waktu dan sumber daya), penulisan ulang kueri menggunakan daftar pada bidang seperti stempel waktu untuk secara otomatis menghapus keranjang yang berada di luar rentang target. Misalnya, jika Anda mencari suhu rata-rata musim dingin di Valencia, Spanyol dari tahun 1980 hingga 2020, Anda dapat mengecualikan semua suhu musim semi, musim panas, dan musim gugur.

Sekarang setelah kita membahas beberapa alasan untuk mempertimbangkan koleksi deret waktu MongoDB, mari kita lihat dua secara khusus.

Kasus penggunaan 1: Perdagangan algoritma

Perdagangan algoritmik adalah kasus penggunaan utama untuk data deret waktu, dan pasar diperkirakan akan tumbuh hingga $15 miliar pada tahun 2028. Kekuatan algoritma terletak pada kecepatan dan otomatisasinya. Mereka mengurangi kemungkinan kesalahan karena emosi atau waktu reaksi manusia, dan memungkinkan perdagangan melampaui apa yang dapat dikelola manusia.

Algoritme perdagangan juga menghasilkan sejumlah besar data deret waktu yang tidak dapat dibuang karena kebutuhan kepatuhan dan perkiraan. Namun, MongoDB memungkinkan Anda untuk mengatur parameter pengarsipan untuk secara otomatis memigrasikan data ke penyimpanan objek cloud yang lebih murah setelah interval waktu yang telah ditentukan. Pendekatan ini mempertahankan ruang penyimpanan Anda yang berharga untuk data yang lebih baru.

Algoritme perdagangan dasar dapat dibangun menggunakan produk MongoDB seperti Atlas, tampilan terwujud, koleksi deret waktu, dan pemicu. Pada dasarnya, data deret waktu dimasukkan ke dalam algoritme dan ketika kondisinya ideal, algoritme dapat membeli atau menjual sesuai kebutuhan, sehingga menjalankan serangkaian perdagangan individu dengan akumulasi untung dan rugi (P&L). Meskipun Anda memerlukan aplikasi Java untuk benar-benar menjalankan transaksi, MongoDB dapat memberikan dasar yang kuat untuk dibangun.

Struktur algoritma semacam itu sederhana. Data deret waktu dimuat dari umpan langsung ke MongoDB Atlas, yang kemudian memasukkannya ke dalam tampilan waktu nyata untuk menghitung rata-rata yang berfungsi sebagai dasar perdagangan Anda. Anda juga dapat menambahkan pemicu terjadwal untuk dijalankan saat data baru tiba, sehingga menyegarkan tampilan yang Anda realisasikan, menjaga algoritme Anda tetap mutakhir, dan tidak pernah melewatkan peluang beli/jual.

Untuk mempelajari lebih lanjut, tonton presentasi MongoDB World 2022 dari Wojciech Witoszynski tentang membuat algoritme perdagangan sederhana menggunakan Atlas MongoDB, “Perdagangan Algoritme Menjadi Mudah.”

Kasus penggunaan 2: Internet of Things

Karena sifat data IoT, seperti pembacaan sensor berulang pada waktu yang tetap sepanjang hari, aplikasi IoT ideal untuk pengumpulan deret waktu. Misalnya, Confluent, penyedia streaming data terkemuka, menggunakan platformnya bersama MongoDB Atlas Device Sync, layanan pengembangan seluler, kumpulan deret waktu, dan pemicu untuk mengumpulkan, mengatur, dan menganalisis data IoT dari perangkat edge.

Aplikasi IoT sering kali memiliki volume besar data yang diambil dari waktu ke waktu dari berbagai macam sensor fisik, yang memudahkan untuk mengisi meta-field dan memanfaatkan fitur kompresi dan pengisian celah yang dijelaskan di atas.

Platform data pengembang MongoDB juga mengatasi banyak tantangan yang terkait dengan kasus penggunaan IoT. Sebagai permulaan, MongoDB sangat skalabel, yang merupakan keuntungan penting mengingat sejumlah besar data yang dihasilkan oleh perangkat IoT. Selain itu, MongoDB memiliki fitur utama yang memungkinkan Anda memanfaatkan data IoT secara real-time. Ini termasuk aliran perubahan untuk mendeteksi peristiwa basis data saat terjadi atau fungsi yang dapat diprogram sebelumnya atau dikonfigurasi untuk berjalan dengan cepat guna merespons perubahan basis data dan peristiwa lainnya.

Untuk pengguna yang berurusan dengan data berbasis waktu, waktu nyata atau lainnya, koleksi deret waktu MongoDB menyediakan cara terintegrasi dan sangat dioptimalkan untuk mempercepat operasi, menghilangkan gesekan, dan menggunakan alat seperti pemicu untuk menganalisis lebih lanjut dan mengekstrak nilai dari data mereka. . . Selain itu, pengguna tidak lagi harus secara manual bin, query, atau memecahkan masalah data deret waktu. Sebaliknya, MongoDB melakukan semua ini untuk mereka.



Source link

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.