MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Statystyki w czasie rzeczywistym:MySQL(/Drizzle) czy MongoDB?

Więc BuddyMedia używa niektórych z tego. Grupa Gilt zrobiła coś fajnego z Koliberem (node.js + MongoDB).

Pracując dla dużego reklamodawcy internetowego w przestrzeni Social Media, mogę potwierdzić, że raportowanie w czasie rzeczywistym jest naprawdę uciążliwe. Próba "roll-upu" 500 mln wyświetleń dziennie jest już wyzwaniem, ale próba zrobienia tego w czasie rzeczywistym zadziałała, ale niosła ze sobą pewne istotne ograniczenia. (jakby faktycznie było opóźnione o 5 minut :)

Szczerze mówiąc, tego typu problemy są jednym z powodów, dla których zacząłem korzystać z MongoDB. I nie tylko ja. Ludzie używają MongoDB do wszelkiego rodzaju analiz w czasie rzeczywistym:monitorowanie serwerów , scentralizowane rejestrowanie , a także raportowanie w panelu.

Prawdziwym kluczem do tego typu raportowania jest zrozumienie, że struktura danych jest zupełnie inna w MongoDB, unikniesz zapytań „agregacyjnych”, więc zapytania i wykresy wyjściowe będą się różnić. Po stronie klienta jest trochę dodatkowych prac związanych z kodowaniem.

Oto klucz, który może wskazać ci właściwy kierunek, aby zrobić to z MongoDB. Spójrz na następującą strukturę danych:

{
  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, ... ],
  ...
}

Oczywiście są tu pewne poprawki, odpowiednie indeksy, być może połączenie danych+płeć+wiek w _id . Ale to jest rodzaj podstawowej struktury analizy kliknięć w MongoDB. Aktualizacja wyświetleń i kliknięć jest naprawdę łatwa { $inc : { clicks_hour.0 : 1 } } . Możesz zaktualizować cały dokument atomowo. I to całkiem naturalne, żeby o tym opowiadać. Masz już tablicę zawierającą punkty danych na poziomie godzinowym lub minutowym.

Mam nadzieję, że to wskazuje Ci właściwy kierunek.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zapytanie agregujące Mongoose kończy się niepowodzeniem w teście Jest/Mockgoose, działa w innych miejscach

  2. Jak grupować według dokumentów według tygodnia w mongodb

  3. $set odpowiednik MongoDb w jego sterowniku java

  4. Mongodb wstawia dokument bez pola _id

  5. sterownik c mongo:jak wyszukiwać dokumenty z _id na liście?