MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Statistik waktu nyata:MySQL (/ Gerimis) atau MongoDB?

Jadi BuddyMedia menggunakan beberapa ini. Gilt Groupe telah melakukan sesuatu yang sangat keren dengan Hummingbird (node.js + MongoDB).

Setelah bekerja untuk pengiklan online besar di ruang Media Sosial, saya dapat membuktikan bahwa pelaporan waktu nyata benar-benar menyebalkan. Mencoba untuk "menggulung" 500 juta tayangan sehari sudah menjadi tantangan, tetapi mencoba melakukannya secara real time berhasil, tetapi ada beberapa keterbatasan yang signifikan. (sepertinya sebenarnya tertunda 5 menit :)

Terus terang, jenis masalah ini adalah salah satu alasan saya mulai menggunakan MongoDB. Dan aku bukan satu-satunya. Orang-orang menggunakan MongoDB untuk semua jenis analisis waktu nyata:pemantauan server , logging terpusat , serta pelaporan dasbor.

Kunci sebenarnya ketika melakukan jenis pelaporan ini adalah memahami bahwa struktur data benar-benar berbeda dengan MongoDB, Anda akan menghindari kueri "agregasi", sehingga kueri dan bagan keluaran akan berbeda. Ada beberapa pekerjaan pengkodean tambahan di sisi klien.

Inilah kunci yang mungkin mengarahkan Anda ke arah yang benar untuk melakukan ini dengan MongoDB. Perhatikan struktur data berikut:

{
  date: "20110430",
  gender: "M",
  age: 1, // 1 is probably a bucket
  impression_hour: [ 100, 50, ...], // 24 of these
  impression_minute: [ 2, 5, 19, 8, ... ], // 1440 of these
  clicks_hour: [ 10, 2, ... ],
  ...
}

Jelas ada beberapa penyesuaian di sini, indeks yang sesuai, mungkin menggabungkan data+gender+age menjadi _id . Tapi itu semacam struktur dasar analitik klik dengan MongoDB. Sangat mudah untuk memperbarui tayangan dan klik { $inc : { clicks_hour.0 : 1 } } . Anda bisa memperbarui seluruh dokumen secara atom. Dan sebenarnya cukup alami untuk dilaporkan. Anda sudah memiliki larik yang berisi poin data per jam atau menit.

Semoga itu mengarahkan Anda ke arah yang benar.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apa cara terbaik untuk menemukan nilai yang paling sering muncul di MongoDB?

  2. Elemen 'id' tidak cocok dengan bidang atau properti kesalahan apa pun dengan kelas bersarang

  3. meteor unggah file ke mongodb

  4. Bagaimana cara membuat serial chrono::DateTime sebagai ISODate saat menggunakan prototipe driver Rust Mongo?

  5. dapatkan nilai dengan nama kunci driver mongodb node.js