«Яндекс» открыл код обственной СУБД для обработки триллионов событий

Интеграция Бизнес-приложения
мобильная версия
, Текст: Сергей Попсулин

«Яндекс» открыл исходный код одного из своих крупных проектов - ClickHouse. Эта СУБД предназначена для обработки миллиардов и триллионов событий. Ее отличают легкая масштабируемость и возможность географической разрозненности серверов.


Открытие кода ClickHouse

Компания «Яндекс» опубликовала исходный код ClickHouse — распределенной системы управления базами данных (СУБД), разработанной для сервиса «Яндекс.Метрики», предназначенного, в свою очередь, для оценки посещаемости сайтов, анализа поведения посетителей и эффективности рекламы.

Сфера применения СУБД

СУБД ClickHouse создана для удовлетворения потребности хранить и быстро обрабатывать большие объемы информации, предназначенной для создания аналитических отчетов различного плана.

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

Использование в «Яндексе»

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

«Яндекс» открыл исходный код одного из своих крупных проектов - СУБД ClickHouse

В дальнейшем «Яндекс» стал применять ClickHouse не только в «Метрике», но и в «Маркете», «Почте», «Директе», «Вебмастере» и Авто.ру, для бизнес-аналитики и в мониторинге инфраструктуры. В компании пояснили, что продукт быстро распространился на другие сервисы благодаря наличию инструкции, полной работоспособности «из коробки» и отсутствию в необходимости нанимать разработчиков. 

Возможности СУБД

Серверы, подключенные к ClickHouse, могут находиться в разных местах. Архитектура системы такова, что для добавления новых серверов не нужно перестраивать кластер. Поэтому ClickHouse легко масштабируется до петабайт хранимых данных и позволяет хранить записи о триллионах событий — например, о действиях пользователей на сайте, о запросах к сервису или о показах рекламы. 

В «Яндексе» подчеркивают, что ClickHouse занимает собственную нишу на рынке. ClickHouse не требует предагрегации данных, поддерживает диалект языка SQL, позволяет загружать данные в реальном времени и самостоятельно занимается их хранением и индексацией. Предоставляя удобство реляционных СУБД, ClickHouse может использоваться в своей инфраструктуре и избавить от регулярных платежей за облачные сервсисы.

Отсутствие аналогов с открытым кодом

«Открытых СУБД с такими возможностями на рынке сейчас нет. Публикация исходного кода ClickHouse — это наш вклад в open source, один из самых значимых в истории компании, — прокомментировал руководитель группы разработки ClickHouse Алексей Миловидов. — У нас было несколько причин для этого, в том числе и чисто прагматических. Применение технологии в областях, которыми «Яндекс» не занимается, помогает шире взглянуть на ее возможности. У нас, например, уже есть положительный опыт использования ClickHouse в совместном проекте с ЦЕРН. К тому же расширение пользовательской базы позволяет узнавать о проблемах, о которых иначе было бы трудно догадаться, и улучшать продукт».

Проект «Яндекса» с ЦЕРН назывался LHCb. Он был посвящен изучению частиц, содержащих b-кварк. Данные эксперимента включали в себя несколько миллиардов событий, которые обычно анализируются последовательно, на что могут потребоваться часы. «Яндекс» предоставила партнеру сервис на базе ClickHouse, который позволил делать это за минуты. 

Поддержка «Яндексом» open source

Раньше «Яндекс» уже публиковал исходный код своих технологий. Помимо прочего, в открытом доступе находятся предназначенный для нагрузочного тестирования «Яндекс.Танк», технология разработки сайтов БЭМ (Блок, Элемент, Модификатор) и инструмент для извлечения структурированных данных из текста «Томита-парсер».