Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Создание интернет-статистики. Поделитесь идеями...
|
|||
|---|---|---|---|
|
#18+
Вот уже долгое время хочу сделать систему интернет статистики. Но вот количество данных и сложность организации меня смущают. Среди технологии - PHP & mySQL. Вроде ничего особого, но SpyLog крутиться на них и не жалуется. Машинка - 2 x XEON, 1GB памяти. (для начала). Помогите, друзья, поделитесь идеями, как организовать структуру БД. Расскажу что имеется и что надо обрабатывать. Суть такова - пользователь ставит на свою страницу счетчик. Счетчик собирает инфу по каждому посетителю и передает ее на сервер. Сервер сохраняет инфу, после чего по ней необходимо строить отчеты. Организация: Собственно, таблица "users". В ней все как обычно - email, данные юзера и т.п. Здесь нам нужно только поле uid (user id). Далее - статистика собирается счетчиком в таком виде (основное): uid - ID пользователя, чей счетчик показался. posted - время когда засчитан хит page - страница где показан счетчик referer - ссылающаяся страница ip - IP посетителя browser - параметры и настройки броузера посетителя. os - параметры и настройки операционной системы посетителя. Это те основные поля. Инфа пишется, допустим, в таблицу "log". По ней можно строить сколь угодно разнообразные отчеты. Но здесь вылазят проблемы. Смотрим практически - система обрабатывает миллион запросов в сутки. Это миллион новых строк. Или 30 млн. в месяц. Или, примерно, 6 Гб в таблице. Согласитесь, немало. При таких масштабах сервер поднатужиться не по детски. Вопросы - как можно оптизировать такую нагрузку? Какие есть методы хранения/обработки такого кол-ва инфы? Надеюсь вас заинтересует такая задача. Заранее всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 12:35 |
|
||
|
Создание интернет-статистики. Поделитесь идеями...
|
|||
|---|---|---|---|
|
#18+
Использовать Analisys Services (OLAP кубы) инфа - www.olap.ru у нас эта система реализована, объёмы лога примерно такие же работает нормально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 13:11 |
|
||
|
Создание интернет-статистики. Поделитесь идеями...
|
|||
|---|---|---|---|
|
#18+
а ты уверен, что MySQL - хороший выбор? мне кажется, что тут попахивает Оркалом, да еще с секционированием таблиц... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 13:12 |
|
||
|
Создание интернет-статистики. Поделитесь идеями...
|
|||
|---|---|---|---|
|
#18+
Будь бы Oracle, можно было бы сделать секционирование по диапазону дат, а так - делайте таблицы на каждый период, например log_120305. Встает вопрос - как определить период? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 13:14 |
|
||
|
Создание интернет-статистики. Поделитесь идеями...
|
|||
|---|---|---|---|
|
#18+
установить analisys services от MS спроектировать куб, исходя из требований будущего анализа настроить ежедневный (например) импорт данных в него из вашей СУБД и очистку вашей БД после успешной закачки OLAP рулит ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 13:28 |
|
||
|
Создание интернет-статистики. Поделитесь идеями...
|
|||
|---|---|---|---|
|
#18+
Использовать Analisys Services (OLAP кубы) инфа - www.olap.ru у нас эта система реализована, объёмы лога примерно такие же работает нормально Но это работает под Win? А нам нужны решения под Linux, плюс бесплатные... а ты уверен, что MySQL - хороший выбор? мне кажется, что тут попахивает Оркалом, да еще с секционированием таблиц... Опять же, Oracle - дорогое удовольствие, тем более никто у нас с ним не работает. Будь бы Oracle, можно было бы сделать секционирование по диапазону дат, а так - делайте таблицы на каждый период, например log_120305. Встает вопрос - как определить период? Это интересно. Уже разделение данных. Я так и понимаю, что некоторое разделение необходимо. Опять же, это можно размазать и по разных БД и даже машинам. Плюс нагрузка опять же снижается - при выборе по параметрам (по которым разделение) не затрагиваются другие данные. Даты определять достаточно просто, можно писать в общий лог а потом раз в сутки скидывать в разные таблицы. НО! При выборке данных, например за полгода - будет большое объединение. Черезчур, имхо, большое. Нужно как-то по другому разделять инфу.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 15:46 |
|
||
|
Создание интернет-статистики. Поделитесь идеями...
|
|||
|---|---|---|---|
|
#18+
а хранить все хиты точно необходимо? может лучше спроектировать отчёты, организовать их в виде таблиц и при каждом вызове счётчика что-то апдейтить в этих табличках. правда тогда могут возникнуть проблемы с многопользовательским доступом. как с этим в mysql разбираться я не знаю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 00:12 |
|
||
|
Создание интернет-статистики. Поделитесь идеями...
|
|||
|---|---|---|---|
|
#18+
авторДаты определять достаточно просто, можно писать в общий лог а потом раз в сутки скидывать в разные таблицы. НО! При выборке данных, например за полгода - будет большое объединение. Черезчур, имхо, большое. Вам же не нужно за полгода вынимать построчные данные. Сливайте данные в таблицы организованные по дням, сделайте таблицу промежуточных агрегированных данных (кликов за день по клиенту и т.п. - зависит от конечных запросов). Собственно, это и есть OLAP - просто свой, маленький, без общих наворотов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 05:25 |
|
||
|
Создание интернет-статистики. Поделитесь идеями...
|
|||
|---|---|---|---|
|
#18+
Ну ваапще.....OLAP, Oracle... Может еще вычислительный кластер собрать? Webjob правильно говорит. Создать необходимые срезы и наполнять их, либо по шедулеру ХП, либо триггерами. Основная таблица пусть и пухнет, ее можно и в архив сливать регулярно, а под всевозможные отчеты использовать готовые таблицы-срезы. На Linux могу посоветовать ASA, у нас правда на виндах и я очень доволен этой СУБД. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2005, 00:23 |
|
||
|
Создание интернет-статистики. Поделитесь идеями...
|
|||
|---|---|---|---|
|
#18+
вы задачу поставьте сначала - вам и легче будет делать у меня есть своя система интернет статистики, которая расчитана на 10-20 сайтов в среднем по 100 посетителей в день и 300-500 хитов. Далее - что вы собираетесь считать ? Я считаю хиты, хосты, посетителей, перегрузки, браузеры, дисплеи, куки, поисковые слова. Далее делаю еще ряд отчетов - мне такой статистики за глаза Сразу же надо думать про "хитрости" Хранение айпи адреса, выставление куков, как вы будете выставлять счетчик, не забудьте что у многих блокировки рекламы и кнопки в 88х31 вырезаюцца слету ;-) Вообщем поймите что нужно, сформулируйте - вам же станет яснее. Еще есть фичи по определению пользователей по регионам, у меня подключена такая база, но грузить сильно при отчетах Я писал систему интернет статистики вот с какой целью. Сначала я платил спайлогу за статистику, когда мой сайт начал выдавать 500 хостов и 2.000 хитов я офигел от того, сколько просит спайлог за это и решил что легче написать свою маленькую системку и пользовацца ей. Нагрузка на мою систему небольшая - там только мои сайты и никого туда пускать не собираюсь ;-) Так вот думаю в ближайшем будущем многие будут писать свои такие системки, не желаю платить по 200 долларов в месяц за статистику по 3-4 проектам .... Спайлог конечно свой рынок найдет - у него очень хорошо сделаны крутые отчетности, которые самому делать сложно, да и не нужно. Если необходима грамотная и "сильная" интернет статистика - это крупный коммерческий проект - тогда и деньги есть на супер статистику. timda.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2005, 11:29 |
|
||
|
Создание интернет-статистики. Поделитесь идеями...
|
|||
|---|---|---|---|
|
#18+
авторСмотрим практически - система обрабатывает миллион запросов в сутки. Это миллион новых строк. Или 30 млн. в месяц. Или, примерно, 6 Гб в таблице. Согласитесь, немало. При таких масштабах сервер поднатужиться не по детски. Вопросы - как можно оптизировать такую нагрузку? Какие есть методы хранения/обработки такого кол-ва инфы? ну для бесплатного mysql это может и немало, для других серверов это вполне нормально. Делайте агрегированные данные, обновляя их либо периодически либо из триггеров (помоему есть в mysql). У меня похожие объемы на netflow от cisco, отчет за полгода по трафике и протоколам считается за 4-5 секунд (в зависимости от загруженности сервера). записей больше 10 млн, база >10 Гб ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2005, 12:03 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33103696&tid=1545810]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
120ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 270ms |
| total: | 515ms |

| 0 / 0 |
