ClickHouse

Big Data, Большие данные, обработка данных, архитектура, SQL, ClickHouse, DWH

ClickHouse – колоночная реляционная СУБД с открытым исходным кодом от компании Яндекс для быстрой обработки аналитических SQL-запросов на структурированных больших данных (Big Data) в режиме реального времени.

История разработки и развития

Основными ключевыми вехами в истории ClickHouse считаются следующие:

  • 2009 год – компания Яндекс разработала первый прототип своей аналитической СУБД для собственных нужд, в рамках проекта веб-аналитики «Яндекс.Метрика» с целью построения отчетов в режиме реального времени по неагрегированным логам пользовательских действий [1];
  • 2013 год – использование СУБД для анализа метаданных о событиях эксперимента на одном из детектеров Большого андронного коллайдера в CERN [1];
  • 2014 год – Яндекс полностью перезапустил свой сервис веб-аналитики Метрика 2.0 на базе ClickHouse, благодаря чему пользователи могут строить произвольные отчеты [2];
  • 2016 год – переход ClickHouse из проприетарного решения в open source – Яндекс опубликовал исходный код СУБД под лицензией Apache 2.0 [2];
  • 2019 год – ClickHouse включен в состав реестра отечественного программного обеспечения, что позволяет использовать эту СУБД в проектах цифровизации государственных и частных компаний РФ с учетом требований к импортозамещению [3];
  • 2019 год – компания «Аренадата Софтвер», разработчик первого отечественного дистрибутива Apache Hadoop и других корпоративных решений для хранения и обработки Big Data, выпустил на базе ClickHouse собственную аналитическую СУБД Arenadata QuickMarts. Продукт адаптирован для нужд сектора enterprise и включает возможности гибкой авторизации пользователей с разграничением доступа, поддержку формата ORC и интеграцию с безопасным протоколом Kerberos для экосистемы Hadoop [4]. Подробнее о том, чем Arenadata QuickMarts отличается от ClickHouse, мы рассказываем здесь.

Архитектура и принципы работы ClickHouse

Ключевым преимуществом Кликхаус считается высокая скорость выполнения SQL-запросов на чтение (OLAP-сценарий), которая обеспечивается благодаря следующим архитектурным особенностям [1]:

  • столбцовое хранение данных, что позволяет считывать данные только из нужных колонок и эффективно сжимать однотипную информацию;
  • физическая сортировка данных по первичному ключу позволяет быстро получать конкретные значения или диапазонов;
  • векторные вычисления по кусочкам столбцов снижают издержки на диспетчеризацию и позволяют более эффективно использовать CPU;
  • распараллеливание операций как в пределах одного сервера на несколько процессорных ядер, так и в рамках распределенных вычислений на кластере за счет механизма шардирования;
  • поддержка приближенных вычислений на части выборки, что снижает число обращений к жесткому диску и еще больше повышает скорость обработки данных.

Стоит отметить, что в отличие от других популярных столбцовых СУБД для Big Data, например, SAP HANA и Google PowerDrill, которые работают только в оперативной памяти, ClickHouse работает с жесткими дисками. Это снижает стоимость эксплуатации системы, поскольку жесткие диски дешевле RAM.

При работе в кластере данные реплицируются асинхронно в фоновом режиме с поддержкой полной идентичности на разных репликах. Apache ZooKeeper используется для координации процесса репликации, но не участвует в обработке данных и выполнения запросов. При сбое в большинстве случаев восстановление данных происходит автоматически. По желанию можно включить кворумную запись данных. Кластер Кликхаус масштабируется линейно путем добавления новых узлов. ClickHouse поддерживает диалект SQL c расширениями, такими как массивы и вложенные структуры данных, вероятностные структуры, возможность подключить внешнее key-value хранилище. Еще СУБД содержит множество возможностей интеграции с другими Big Data системами, такими как Apache Kafka и HDFS, а также MySQL и прочие внешние источники данных через ODBC или JDBC [1].

При том, что Кликхаус является реляционной СУБД, он не поддерживает транзакции, а также точечные операции UPDATE и DELETE. Кроме того, в данной системе отсутствуют оконные функции и полноценный оптимизатор запросов [2]. Подробнее о достоинствах и недостатках ClickHouse мы рассказываем в отдельных статьях.

Где используется Кликхаус: компании и Big Data проекты

Благодаря высокой скорости генерации аналитических отчетов по большим данным в режиме реального времени, ClickHouse наиболее востребован в следующих областях:

  • веб-аналитика и контекстная реклама;
  • real time мониторинг бизнес-метрик, например, анализ потребительского поведения на сайте;
  • интерактивное взаимодействие с пользователями, к примеру, онлайн-игры;
  • контроль технических показателей, в т.ч. интернет вещей (Internet of Things);
  • реализация корпоративных хранилищ данных, например, как это сделано в Ситимобил.

При том, что ClickHouse изначально был разработан в Яндексе, он применяется не только в сервисах этого ИТ-гиганта. Сегодня множество отечественных и зарубежных компаний используют эту Big Data СУБД для быстрой аналитики больших данных. Из наиболее известных внедрений стоит упомянуть иностранные Cloudflare и Bloomberg, отечественную соцсеть ВКонтакте, Тинькофф банк, сервис онлайн-объявлений Avito, новостную сеть СМИ2, онлайн-кинотеатр ivi.ru, интернет-порталы Mail.ru и Rambler [1].

Источники

  1. https://ru.bmstu.wiki/ClickHouse
  2. https://ru.wikipedia.org/wiki/ClickHouse
  3. http://www.tadviser.ru/index.php/Продукт:ClickHouse
  4. https://arenadata.tech/products/adqm/

 

Related Entries