Яндекс рассказал о том, как работает его аналитическая система Яндекс.Метрика.
Метрика, как и все системы веб-аналитики, оперирует несколькими базовыми понятиями:
Посетитель - пользователь, зашедший на сайт. Когда он приходит впервые, в его браузер записывается уникальный идентификатор, по которому счётчик Метрики узнаёт его в следующий раз.
Просмотр - каждое обращение посетителя к сайту, включая простое обновление страницы.
Визит - один сеанс работы пользователя с сайтом. Визит начинается, когда посетитель попадает на сайт, и заканчивается, если он не предпринимает там никаких действий в течение определённого времени - по умолчанию это 30 минут. Визит может включать в себя множество просмотров разных страниц. В базе Метрики хранятся данные как об отдельных просмотрах, так и о визитах.
Когда посетитель переходит на сайт со счётчиком Метрики - из поисковой системы, социальной сети, с рекламного баннера или просто введя адрес в адресной строке, - его браузер загружает код страницы. В этот момент счётчик отправляет в Метрику данные: сам факт загрузки страницы, уникальный идентификатор посетителя, адрес страницы, с которой он пришёл, название и версию браузера и операционной системы и так далее. Метрика не знает ничего о конкретном человеке с именем и фамилией, который совершает в интернете конкретные действия. Идентификатор посетителя и все остальные его параметры становятся частью обезличенной статистики - цифрами, которые помогают пользователю Метрики развивать свой сайт.
Для системы статистики один человек может стать несколькими посетителями. Например, если он зайдёт на сайт с двух разных устройств, из разных браузеров или из одного браузера, но после его переустановки. Бывает и наоборот: Метрика может считать одним посетителем семью из пяти человек, если все её члены пользуются одним браузером.
В базе данных Метрики хранятся самые разнообразные данные о посещаемости сайта. Владелец составляет на их основе отчёты и смотрит результаты его работы в разных срезах - временных, географических, возрастных или даже сразу нескольких.
Все отчёты составляются сразу: владелец сайта указывает, что хочет посмотреть, и система сразу же извлекает данные из базы и показывает результат учитывая даже тех посетителей, которые были на сайте только что.
Поскольку отчёты создаются в реальном времени, их структура становится известна только в тот момент, когда владелец сайта делает через интерфейс Метрики запрос для получения отчёта. Структура отчёта может быть практически любой, а составляется он за долю секунды. Чтобы владелец сайта получал актуальную и полную информацию, нужно постоянно собирать данные о посещаемости и уметь тут же их обрабатывать. Для этого в 2012 году Яндекс разработал свою систему управления базами данных (СУБД) - ClickHouse.
Система ClickHouse, разработанная в команде Метрики и для её нужд, оказалась полезна и для других задач Яндекса. В том числе СУБД используется в Маркете, рекламных технологиях, системе мониторинга серверов и внутренней бизнес-аналитике. ClickHouse сравнительно прост для изучения, так как для запросов используется язык SQL.
Подробнее о том, как работает Яндекс.Метрика читайте в официальном блоге Яндекса.