2012-03-13 25 views
6

Potrzebuję zbudować system statystyk, ale nie wiem, czy MongoDB byłby najlepszym rozwiązaniem. System musi monitorować kilka rzeczy i wyświetlać informacje. Na przykład coś podobnego - witryna, a każdy użytkownik, który pierwszy raz odwiedza witrynę, dodaje wiersz z informacjami o nim. System musi przechowywać dane tak szybko, jak to możliwe, i na przykład tworzy wykres wzrostu liczby użytkowników przeglądających stronę za pomocą przeglądarki Google Chrome. Ponadto, jeśli użytkownik odwiedza ponownie, pole w wierszu już użytkownika jest aktualizowane (powiedzmy pole o nazwie "Dni").Najlepsza baza danych dla systemu statystyk

System musi obsłużyć 200 000 nowych wizyt dziennie (nowe rekordy), 20 000 000 użytkowników ponownie odwiedza (aktualizacje) dziennie i 800 000 000 rekordów DB. Potrzebne jest również szybkie przesyłanie danych - na przykład tworzenie wykresu, ile użytkownicy odwiedzają każdego dnia z Anglii, Google Chrome itp.

Jaki byłby najlepszy DB do obsługi tych danych? Czy MongoDB sobie z tym poradzi?

Dzięki!

+1

Dlaczego piszesz to sam, zamiast korzystać z oprogramowania analitycznego? –

Odpowiedz

3

Mongodb pozwala na bardzo dobre aktualizacje atomów i skale. Właśnie do tego jest przeznaczony. Ale pamiętaj o dwóch rzeczach: uważaj na przestrzeń dyskową, może się ona bardzo szybko wyczerpać i jeśli potrzebujesz szybkich statystyk (takich jak zasięg regionu, źródła ruchu itp.), Musisz je wstępnie obliczyć. Najszybszym sposobem jest zbudowanie prostego demona, który zachowa wszystkie numery w pamięci i zapisze je co godzinę/codziennie.

3

Redis to bardzo dobry wybór, pod warunkiem, że masz dużo pamięci RAM lub strategię dzielenia danych na wiele węzłów. to jest dobre, ponieważ:

  1. to w pamięci, więc można zrobić Analytics w czasie rzeczywistym (myślę, że rzeczywiste statystyki czasu bit.ly za niego korzystać). w rzeczywistości został stworzony do tego celu.

  2. jest bardzo szybki, może z łatwością zrobić setki tysięcy aktualizacji na sekundę.

  3. ma operacje atomowe.

  4. ma posortowane zestawy, które doskonale nadają się do szeregów czasowych.

+0

Rozważę użycie Redis przynajmniej dla części szybkiego raportowania. Wszystko pozostaje w pamięci, więc nie nadaje się do ogólnego rejestrowania ruchu. –

0

RDM Workgroup to system zarządzania bazami danych dla środowisk biurowych i serwerowych oraz umożliwiający prędkość zapisu w pamięci.

Można również użyć jego funkcji trwałości; gdzie zarządzasz danymi w pamięci, a następnie przenosisz te dane na dysk, gdy aplikacja zostanie wyłączona, aby nie nastąpiła utrata danych.

Oparty jest na modelu sieciowym z intuicyjnym interfejsem, dzięki czemu jego skalowalność jest na najwyższym poziomie i będzie w stanie obsłużyć duże obciążenie nowych użytkowników, których można się spodziewać.

Powiązane problemy