За что все его так любят: ТОП-5 достоинств ClickHouse для Big Data

g Data, Большие данные, обработка данных, архитектура, SQL, ClickHouse, DWH, Kafka, Zookeeper, Hive, Hadoop

Сегодня рассмотрим основные преимущества ClickHouse – аналитической СУБД от Яндекса для обработки запросов по структурированным большим данным в реальном времени. Читайте в нашей статье, чем еще хорош Кликхаус, кроме высокой скорости, и почему эту систему так любят аналитики, разработчики и администраторы Big Data.

Чем хорош ClickHouse: главные преимущества

Напомним, основным сценарием использования ClickHouse считается генерация аналитических запросов по структурированным данным c минимальной задержкой, фактически в режиме в режиме real time. Таким образом, главными преимуществами этой OLAP-СУБД для Big Data являются следующие:

  • скорость;
  • масштабируемость;
  • расширяемость;
  • высокая доступность и отказоустойчивость;
  • простота развертывания и удобство эксплуатации.

Далее рассмотрим подробнее, какие именно архитектурные и конструктивные особенности ClickHouse обеспечивают все эти достоинства.

Почему так быстро: 5 причин высокой скорости

Внедрение ClickHouse на сервисе Яндекс.Метрика отмечает следующие показатели: до 1 миллиарда строк в секунду на одном сервере и до 2-х ТБ в секунду на кластере из 400 узлов [1]. Такая производительность достигается благодаря архитектурным особенностям Кликхаус [2]:

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

Важно, что ClickHouse выполняет запросы существенно быстрее, чем Big Data системы класса SQL-on-Hadoop: Apache Hive, Cloudera Impala, Presto и Spark, даже при работе с данными в колоночных форматах, таких как Parquet или Kudu [3]

При том, что Кликхаус как OLAP-система, в первую очередь ориентирован на чтение данных, он также показывает неплохие результаты в скорости записи благодаря табличному движку MergeTree. Он концептуально похож на алгоритм LSM из Google BigTable или Apache Cassandra, но не строит промежуточные таблицы в памяти, записывая данные сразу на жесткий диск. При этом каждый вставленный пакет сортируется только по первичному ключу (primary key), сжимается и записывается на диск, чтобы сформировать сегмент [4]. Поэтому ClickHouse отлично подходит для современных корпоративных хранилищ данных, например, как мы описывали здесь в кейсе Ситимобил.

Линейная масштабируемость

Добавление новых узлов позволяет наращивать мощность кластера до очень большого размера, способного обрабатывать петабайты данных. По умолчанию в ClickHouse возможна межцодовая репликация (Cross Data Center Replication), которая реплицирует данные между кластерами, обеспечивая защиту от сбоев и высокопроизводительный доступ к данным для глобально распределенных и критически важных Big Data приложений [1]. За координацию процесса репликации данных отвечает Apache Zookeeper.

Высокая доступность и отказоустойчивость

За счет децентрализации и отсутствия единой точки отказа, Кликхаус надежно работает в распределенном кластере. Асинхронная multi-master репликация обеспечивает реплицирование данных в фоновом режиме. СУБД поддерживает полную идентичность данных на разных репликах, автоматически восстанавливая их после сбоев. Для повышения надежности асинхронной репликации в Кликхаус возможен кворумный режим записи данных, когда она считается успешной только после того, как информация записана на несколько серверов — кворум. Так обеспечивается линеаризуемость и имитация синхронных реплик. Если количество реплик с успешной записью не достигнет заданного кворума, то запись считается не состоявшейся и ClickHouse сам удалит вставленный блок из всех реплик для обеспечения целостности данных [5].

Расширяемость

ClickHouse поддерживает диалект структурированного языка запросов, близкий к стандарту ANSI SQL, c расширениями, включая массивы и вложенные структуры данных, вероятностные структуры, URI-функцию, возможности подключить внешнее key-value хранилище [2]. Также можно написать собственные коннекторы на любом языке программирования благодаря наличию HTTP-интерфейса [6]. Благодаря специальным интеграционным движкам (engines) в качестве источника данных Кликхаус может использовать множество внешних хранилищ и баз данных. Например, здесь мы описывали особенности интеграции ClickHouse с Apache Kafka и примеры их использования в Big Data.

Простота развертывания и эксплуатации ClickHouse

Используемый в ClickHouse диалект SQL очень близок стандартному. Это снижает порог вода в технологию для аналитиков данных, для которых знание ANSI SQL является обязательным. В качестве средств подключения к СУБД можно использовать консоль, HTTP API, драйверы JDBS и ODBC, а также множество «оберток» (wrapper’ов) на Python, PHP, NodeJS, Perl, Ruby и R.

Установка Кликхаус на операционных системах Ubuntu и Debian Linux выполняется из готовых пакетов с помощью нескольких простых команд и не требует сложной настройки. Для работы СУБД в распределенном режиме требуется Apache Zookeeper, который обеспечивает координацию процесса репликации данных.

Еще в плане эксплуатации стоит отметить пониженную стоимость хранения данных по сравнению с другими столбцовыми СУБД, такими как SAP HANA и Google PowerDrill, которые работают только в RAM. Кликхаус ориентирован именно на эффективную работу с жесткими дисками, которые намного дешевле оперативной памяти [2].

Вышеописанные преимущества обусловливают высокую популярность ClickHouse среди аналитиков, разработчиков, а также администраторов Big Data. Обратной стороной этих достоинств являются специфические недостатки, которые мы рассмотрим в следующей статье. А как использовать все плюсы ClickHouse и других СУБД для оперативной обработки и надежного хранения больших данных на практике, вы узнаете на практических курсах по администрированию и эксплуатации Big Data систем в нашем лицензированном учебном центре повышения квалификации и обучения руководителей и ИТ-специалистов (разработчиков, архитекторов, инженеров и аналитиков) в Москве.

Источники

  1. https://habr.com/ru/post/322724/
  2. https://ru.bmstu.wiki/ClickHouse
  3. https://habr.com/ru/company/oleg-bunin/blog/351308/
  4. https://habr.com/ru/company/ua-hosting/blog/483112/
  5. https://clickhouse.tech/docs/ru/operations/settings/settings/#settings-insert_quorum
  6. https://blog.deteact.com/ru/yandex-clickhouse-injection/