Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Statystyki odwiedzin strony, Problem logistyczny
ZaqU
post
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
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
Go to the top of the page
+Quote Post
masahuku
post
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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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
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 (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
maniek23
post
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 20:44