Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Statystyki odwiedzin strony, Problem logistyczny
ZaqU
post 24.02.2013, 00:23:06
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 21.01.2013

Ostrzeżenie: (0%)
-----


Witam,

Mam problem logistyczny z systemem statystyk. Chciałbym stworzyć dla każdej strony z osobna statystyki odwiedzin uwzględniające: datę i godzinę wejścia, geolokalizację adresu IP, przeglądarkę klienta oraz jego system operacyjny. Tak przygotowane dane mają być przechowywane w bazie, a następnie wyświetlane na stronie w formie wykresu. Tu niestety rodzi się pytanie: w jakiej formie najlepiej zapisywać dane w bazie? Pierwsze co przyszło mi na myśl, to zapisywać każde wejście w osobnym rekordzie, co jednak zrodziło moje wątpliwości - co się stanie, jeśli przykładowo w ciągu dnia na stronę wejdzie 10.000 osób, a każda z nich będzie przechodziła pomiędzy podstronami średnio 10 razy? To daje nam w przeciągu miesiąca 3 mliony odświeżeń strony, a w ciągu roku 36 milionów. Zatem po roku w celu wygenerowania wykresu ze statystykami odwiedzin, będę musiał pobrać z bazy 36 milionów rekordów co jest raczej niewykonalne.

Oczywiście wariant z 36 milionami jest trochę przesadzony, ale taka sytuacja jest możliwa. Jak zatem najlepiej zapisywać tego typu dane w bazie? Jak to robi np. google ze swoimi statystykami (pomijając superwydajne serwery)?

Nigdy czegoś takiego nie robiłem, więc proszę o pomoc. Interesuje mnie wyłącznie technologia PHP i MySQL - nic poza tym nie wchodzi w grę.
Go to the top of the page
+Quote Post
toaspzoo
post 24.02.2013, 13:53:12
Post #2





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


baza: wejscia -> podstrony
| |
specyfikacja_uzytkownika

wejścia w zbliżonym czasie można dopisywać tylko do tabelki podstrony


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
masahuku
post 25.02.2013, 23:22:48
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 4
Dołączył: 11.12.2009

Ostrzeżenie: (0%)
-----


Jak będziesz miał 10.000 wizyt unique dziennie to stać Cię będzie na porządny serwer smile.gif. Jedyne co bym doradził to zrobić jakieś klucze (albo słownik, relacje zamulą przy dużej ilości danych) na user-agent (zadziwiające co potrafią tam przechowywać przeglądarki/ludzie tongue.gif). A jak już naprawdę będzie ciężki ruch to zawsze jakiś no-sql zostaje (np. mongodb).
Go to the top of the page
+Quote Post
ano
post 26.02.2013, 00:11:40
Post #4





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Najprościej:
Jakiś system kolejkowania (np *MQ) ==> ElasticSearch
- da Ci to super skalowalność i bardzo wysoką wydajność.
Zależy też co chcesz robić dalej z tymi danymi, bo może zamiast ES spodobał by Ci się HBase (i możliwości "współpracy" z Hadoopem).

Poczytaj o MongoDB - w Twoim przypadku to bardzo zły wybór. Prawdopodobnie nie użyjesz żadnych jego zalet a dodatkowo Cię ograniczy tongue.gif


--------------------
Linkedin | ...
Go to the top of the page
+Quote Post
maniek23
post 28.05.2013, 22:18:21
Post #5





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 27.05.2013

Ostrzeżenie: (10%)
X----


Proponuję abyś zajrzał na stronę Web Merrics i poczytał o Google Analitics, na pewno znajdziesz potrzebne informacje.
POzdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.06.2025 - 00:36