За последние 24 часа нас посетили 22615 программистов и 1020 роботов. Сейчас ищет 661 программист ...

написать PHP-скрипты для агрегации статистики

Тема в разделе "PHP Free-Lance", создана пользователем Виталий1, 17 ноя 2019.

  1. Виталий1

    Виталий1 Новичок

    С нами с:
    17 ноя 2019
    Сообщения:
    2
    Симпатии:
    0
    Есть таблица статистики просмотра объектов-объявлений на сайте, в которой примерно 47 миллионов записей с 2012 года.

    Структура таблицы advstat

    идентификатор (autoincrement)(idstat), advid (int, идентификатор объявления), statdate (0000-00-00), stattime (00:00:00), statip (46.229.168.149, varchar(40)) advsourсe (varchar(40)

    текстовое поле, может быть пустым).

    1. Требуется один или несколько скриптов, которые будут выполнять агрегирование результатов по месяцам, по годам. За последние 30 дней данные также хранятся в развернутом виде.

    2. В таблице objects (с объектами, по которым ведется статистика) будут созданы 2 поля views и visits (количество просмотров и количество посетителей) - 1 посетитель может просмотреть объект несколько раз. Они должны обновляться 1 раз в сутки после 00 часов.

    3. Также нужны данные, на основании которых будет работать модуль «посетители, смотревшие данный объект также интересовались…» - в котором анализ ведется на основе ip адресов. На основе этого анализа на странице объекта будут выводиться подобные объекты.

    До 30 дней пользователь видит развернутые данные.
    От 31 дня пользователь видит данные за месяц.
    От 365 дня пользователь видит данные за год.

    В настоящее время никакая агрегация не ведется. При просмотре за любую дату пользователь получает количество просмотров и посетителей в виде почасового графика.

    Скрипты будут выполняться по cron.
    Стоимость, сроки. Комментарии и подсказки по реализации также приветствуются.
     
  2. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @Виталий1, хранить ip в varchar то больно, как собственно и statdate (0000-00-00), stattime (00:00:00) вместо единственного timestamp.
    По хорошему, нужен срез БД хотя бы за 2-3 месяца, а лучше например за весь 2012 год.
     
  3. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Откликов будет больше если стоимость и сроки вы укажете сами.
     
  4. Виталий1

    Виталий1 Новичок

    С нами с:
    17 ноя 2019
    Сообщения:
    2
    Симпатии:
    0
    По типам данных - текущую таблицу можно сконвертировать и перевести в нужный формат, чтобы в дальнейшем работать. Срез сегодня сделаю.
    --- Добавлено ---
    По срокам не критично. Это плановая задача. Думаю, что пункты 1 и 2 можно в течение одного дня реализовать. По третьему пункту у меня нет пока четкого понимания. По стоимости мне не с чем сравнивать. Оплата на сбербанк, альфабанк, промсвязьбанк. Без предоплаты.