powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Создание интернет-статистики. Поделитесь идеями...
11 сообщений из 11, страница 1 из 1
Создание интернет-статистики. Поделитесь идеями...
    #33102378
webjob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот уже долгое время хочу сделать систему интернет статистики.
Но вот количество данных и сложность организации меня смущают. Среди технологии - PHP & mySQL. Вроде ничего особого, но SpyLog крутиться на них и не жалуется.
Машинка - 2 x XEON, 1GB памяти. (для начала).

Помогите, друзья, поделитесь идеями, как организовать структуру БД.
Расскажу что имеется и что надо обрабатывать. Суть такова - пользователь ставит на свою страницу счетчик. Счетчик собирает инфу по каждому посетителю и передает ее на сервер. Сервер сохраняет инфу, после чего по ней необходимо строить отчеты.

Организация:

Собственно, таблица "users". В ней все как обычно - email, данные юзера и т.п. Здесь нам нужно только поле uid (user id).

Далее - статистика собирается счетчиком в таком виде (основное):

uid - ID пользователя, чей счетчик показался.
posted - время когда засчитан хит
page - страница где показан счетчик
referer - ссылающаяся страница
ip - IP посетителя
browser - параметры и настройки броузера посетителя.
os - параметры и настройки операционной системы посетителя.

Это те основные поля. Инфа пишется, допустим, в таблицу "log".
По ней можно строить сколь угодно разнообразные отчеты.
Но здесь вылазят проблемы.

Смотрим практически - система обрабатывает миллион запросов в сутки.
Это миллион новых строк. Или 30 млн. в месяц. Или, примерно, 6 Гб в таблице.
Согласитесь, немало.

При таких масштабах сервер поднатужиться не по детски.
Вопросы - как можно оптизировать такую нагрузку? Какие есть методы хранения/обработки такого кол-ва инфы?

Надеюсь вас заинтересует такая задача. Заранее всем спасибо.
...
Рейтинг: 0 / 0
Создание интернет-статистики. Поделитесь идеями...
    #33102471
Mr. GES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использовать Analisys Services (OLAP кубы)
инфа - www.olap.ru
у нас эта система реализована, объёмы лога примерно такие же
работает нормально
...
Рейтинг: 0 / 0
Создание интернет-статистики. Поделитесь идеями...
    #33102473
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ты уверен, что MySQL - хороший выбор?
мне кажется, что тут попахивает Оркалом, да еще с секционированием таблиц...
...
Рейтинг: 0 / 0
Создание интернет-статистики. Поделитесь идеями...
    #33102478
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будь бы Oracle, можно было бы сделать секционирование по диапазону дат, а так - делайте таблицы на каждый период, например log_120305. Встает вопрос - как определить период?
...
Рейтинг: 0 / 0
Создание интернет-статистики. Поделитесь идеями...
    #33102520
Mr. GES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
установить analisys services от MS
спроектировать куб, исходя из требований будущего анализа
настроить ежедневный (например) импорт данных в него из вашей СУБД и очистку вашей БД после успешной закачки
OLAP рулит !
...
Рейтинг: 0 / 0
Создание интернет-статистики. Поделитесь идеями...
    #33102894
webjob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использовать Analisys Services (OLAP кубы)
инфа - www.olap.ru
у нас эта система реализована, объёмы лога примерно такие же
работает нормально

Но это работает под Win? А нам нужны решения под Linux, плюс бесплатные...

а ты уверен, что MySQL - хороший выбор?
мне кажется, что тут попахивает Оркалом, да еще с секционированием таблиц...

Опять же, Oracle - дорогое удовольствие, тем более никто у нас с ним не работает.

Будь бы Oracle, можно было бы сделать секционирование по диапазону дат, а так - делайте таблицы на каждый период, например log_120305. Встает вопрос - как определить период?

Это интересно. Уже разделение данных. Я так и понимаю, что некоторое разделение необходимо. Опять же, это можно размазать и по разных БД и даже машинам. Плюс нагрузка опять же снижается - при выборе по параметрам (по которым разделение) не затрагиваются другие данные.

Даты определять достаточно просто, можно писать в общий лог а потом раз в сутки скидывать в разные таблицы. НО! При выборке данных, например за полгода - будет большое объединение. Черезчур, имхо, большое.

Нужно как-то по другому разделять инфу....
...
Рейтинг: 0 / 0
Создание интернет-статистики. Поделитесь идеями...
    #33103696
Randll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а хранить все хиты точно необходимо? может лучше спроектировать отчёты, организовать их в виде таблиц и при каждом вызове счётчика что-то апдейтить в этих табличках. правда тогда могут возникнуть проблемы с многопользовательским доступом. как с этим в mysql разбираться я не знаю :)
...
Рейтинг: 0 / 0
Создание интернет-статистики. Поделитесь идеями...
    #33103767
авторДаты определять достаточно просто, можно писать в общий лог а потом раз в сутки скидывать в разные таблицы. НО! При выборке данных, например за полгода - будет большое объединение. Черезчур, имхо, большое.

Вам же не нужно за полгода вынимать построчные данные. Сливайте данные в таблицы организованные по дням, сделайте таблицу промежуточных агрегированных данных (кликов за день по клиенту и т.п. - зависит от конечных запросов).
Собственно, это и есть OLAP - просто свой, маленький, без общих наворотов.
...
Рейтинг: 0 / 0
Создание интернет-статистики. Поделитесь идеями...
    #33106162
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ваапще.....OLAP, Oracle...
Может еще вычислительный кластер собрать?
Webjob правильно говорит. Создать необходимые срезы и наполнять их, либо по
шедулеру ХП, либо триггерами. Основная таблица пусть и пухнет, ее можно и в
архив сливать регулярно, а под всевозможные отчеты использовать готовые
таблицы-срезы.
На Linux могу посоветовать ASA, у нас правда на виндах и я очень доволен
этой СУБД.


Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Создание интернет-статистики. Поделитесь идеями...
    #33114015
Фотография timda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы задачу поставьте сначала - вам и легче будет делать
у меня есть своя система интернет статистики, которая расчитана на 10-20 сайтов в среднем по 100 посетителей в день и 300-500 хитов.
Далее - что вы собираетесь считать ? Я считаю хиты, хосты, посетителей, перегрузки, браузеры, дисплеи, куки, поисковые слова.
Далее делаю еще ряд отчетов - мне такой статистики за глаза

Сразу же надо думать про "хитрости"
Хранение айпи адреса, выставление куков, как вы будете выставлять счетчик, не забудьте что у многих блокировки рекламы и кнопки в 88х31 вырезаюцца слету ;-)

Вообщем поймите что нужно, сформулируйте - вам же станет яснее.
Еще есть фичи по определению пользователей по регионам, у меня подключена такая база, но грузить сильно при отчетах

Я писал систему интернет статистики вот с какой целью. Сначала я платил спайлогу за статистику, когда мой сайт начал выдавать 500 хостов и 2.000 хитов я офигел от того, сколько просит спайлог за это и решил что легче написать свою маленькую системку и пользовацца ей. Нагрузка на мою систему небольшая - там только мои сайты и никого туда пускать не собираюсь ;-) Так вот думаю в ближайшем будущем многие будут писать свои такие системки, не желаю платить по 200 долларов в месяц за статистику по 3-4 проектам ....

Спайлог конечно свой рынок найдет - у него очень хорошо сделаны крутые отчетности, которые самому делать сложно, да и не нужно. Если необходима грамотная и "сильная" интернет статистика - это крупный коммерческий проект - тогда и деньги есть на супер статистику.

timda.ru
...
Рейтинг: 0 / 0
Создание интернет-статистики. Поделитесь идеями...
    #33121405
Denis A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСмотрим практически - система обрабатывает миллион запросов в сутки.
Это миллион новых строк. Или 30 млн. в месяц. Или, примерно, 6 Гб в таблице.
Согласитесь, немало.

При таких масштабах сервер поднатужиться не по детски.
Вопросы - как можно оптизировать такую нагрузку? Какие есть методы хранения/обработки такого кол-ва инфы?

ну для бесплатного mysql это может и немало, для других серверов это вполне нормально. Делайте агрегированные данные, обновляя их либо периодически либо из триггеров (помоему есть в mysql). У меня похожие объемы на netflow от cisco, отчет за полгода по трафике и протоколам считается за 4-5 секунд (в зависимости от загруженности сервера). записей больше 10 млн, база >10 Гб
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Создание интернет-статистики. Поделитесь идеями...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]