Компания «Яндекс» опубликовала исходный код ClickHouse — распределённой системы управления базами данных (СУБД), разработанной для «Яндекс.Метрики». ClickHouse способен хранить и быстро обрабатывать большие объёмы информации для создания аналитических отчётов в любых разрезах.
Cфера применения ClickHouse не ограничивается аналитикой сайтов и приложений. Технология может быть использована в телекоммуникациях, рекламе, RTB-системах и онлайн-торговле, для обработки данных мониторинга и телеметрии, а также для задач информационной безопасности. В «Яндекс» ClickHouse применяется не только в «Метрике», но и в «Маркете», «Почте», «Директе», «Вебмастере» и «Авто.ру», для бизнес-аналитики и в мониторинге инфраструктуры.
Серверы, подключённые к ClickHouse, могут находиться в разных местах, причём архитектура системы такова, что для добавления новых серверов не нужно перестраивать кластер. Поэтому ClickHouse легко масштабируется и позволяет хранить записи о триллионах событий — например, о действиях пользователей на сайте, о запросах к сервису или о показах рекламы. Система опробована на реальных задачах высоконагруженных сервисов «Яндекса» и постоянно развивается.
Алексей Миловидов, руководитель группы разработки ClickHouse, отметил: «Открытых СУБД с такими возможностями на рынке сейчас нет. Публикация исходного кода ClickHouse — это наш вклад в open-source, один из самых значимых в истории компании. У нас было несколько причин для этого, в том числе и чисто прагматических. Применение технологии в областях, которыми „Яндекс“ не занимается, помогает шире взглянуть на её возможности. У нас, например, уже есть положительный опыт использования ClickHouse в совместном проекте с ЦЕРН. К тому же расширение пользовательской базы позволяет узнавать о проблемах, о которых иначе было бы трудно догадаться, и улучшать продукт».
«Яндекс» не впервые публикует исходный код своей технологии. Среди прочего, в открытом доступе находятся предназначенный для нагрузочного тестирования «Яндекс.Танк», технология разработки сайтов БЭМ и инструмент для извлечения структурированных данных из текста «Томита-парсер».