ClickHouse

ClickHouse — столбцовая система управления базами данных (СУБД) для онлайн обработки аналитических запросов (OLAP)

Описание

ClickHouse — высокопроизводительная аналитическая СУБД с открытым исходным кодом.

Особенности ClickHouse

  • ClickHouse позволяет выполнять аналитические запросы в интерактивном режиме по данным, обновляемым в реальном времени.
  • Система способна масштабироваться до десятков триллионов записей и петабайтов данных.
  • Использование ClickHouse открывает возможности, которые раньше было трудно даже представить: вы можете сохранять весь поток данных без предварительной агрегации и быстро получать отчёты в любых разрезах.
  • ClickHouse разработан в Яндексе для задач Яндекс.Метрики — второй по величине системы веб-аналитики в мире.
  • Действительно столбцовая СУБД. Рядом с данными не хранятся другие величины, например, в ClickHouse поддерживаются значения постоянной длины, чтобы не хранить рядом размер типа.
  • Линейная масштабируемость. Система позволяет увеличивать кластер добавлением серверов.
  • Отказоустойчивость. Система представляет собой кластер шардов, где каждый шард — это группа реплик. Используется асинхронная multimaster репликация: после записи на любую доступную реплику, данные распространяются на все остальные реплики. Для координации работы реплик используется ZooKeeper (ZooKeeper не участвует в процессе обработки и выполнения запроса).
  • Способность работать с большими данными (триллионы записей и петабайты данных).
  • Поддержка SQL. ClickHouse поддерживает диалект SQL c расширениями: массивы и вложенные структуры данных, вероятностные структуры, функция по работе с URI, возможность подключить внешнее key-value хранилище и т. д.
  • Высокая эффективность работы. Векторные вычисления; данные не только хранятся по столбцам, но и обрабатываются по векторам (кусочкам столбцов), за счёт чего достигается высокая эффективность по CPU; наличие функциональности для семплирования и приблизительных вычислений; параллельная и распределенная обработка запросов (в том числе JOIN’ов).
  • Сжатие данных.
  • СУБД оптимизирована для работы на HDD-дисках. Можно обрабатывать данные, которые не помещаются в оперативную память.
  • Разнообразные клиенты для подключения к БД. Для работы с базой данных можно использовать консольный клиент, HTTP API и ряд wrapper’ов на Python, PHP, NodeJS, Perl, Ruby и R. Также для ClickHouse есть JDBC и Golang драйверы.

 

Применение ClickHouse

  • ClickHouse разрабатывался для OLAP сценария работы:
    • в системе несколько слабо связанных таблиц с большим количеством параметров/столбцов (порядка сотен);
    • запросы могут использовать большое количество строк, но только небольшое подмножество столбцов;
    • в основном, запросы на чтение и достаточно редкие (обычно не более 100 rps на сервер);
    • при выполнении простых запросов, допустимы задержки в районе 50 мс;
    • значения в столбцах достаточно мелкие — числа и небольшие строки (пример — 60 байт на URL);
    • требуется высокая пропускная способность при обработке одного запроса (до миллиардов строк в секунду на один сервер);
    • результат выполнения запроса существенно меньше исходных данных — то есть, данные фильтруются или агрегируются;
    • сравнительно простой сценарий обновления данных, обычно только добавление данных пачками; нет сложных транзакций.
  • ClickHouse не подходит для транзакционных систем, OLTP задач и использования как хранилища типа «ключ-значение» или в качестве документоориентированной системы.
  • Один из типичных сценариев использования ClickHouse — это анализ серверных логов. После настройки регулярной поставки серверных access или других логов (рекомендуется записывать строки батчами более 1000 записей) можно с помощью SQL запросов анализировать инциденты и мониторить метрики сервиса, такие как число ошибок, время ответа и т. д.
  • ClickHouse — это внутреннее хранилище данных для аналитиков. В ClickHouse можно сложить данные из различных систем (например, Hadoop или просто логи) и строить по ним отчеты для бизнес-нужд.
  • OLAP БД

    Ключевые особенности OLAP сценария работы

    • Подавляющее большинство запросов - на чтение;
    • Данные обновляются достаточно большими пачками (> 1000 строк), а не по одной строке, или не обновляются вообще;
    • Данные добавляются в БД, но не изменяются;
    • При чтении, вынимается достаточно большое количество строк из БД, но только небольшое подмножество столбцов;
    • Таблицы являются «широкими», то есть, содержат большое количество столбцов;
    • Запросы идут сравнительно редко (обычно не более сотни в секунду на сервер);
    • При выполнении простых запросов, допустимы задержки в районе 50 мс;
    • Значения в столбцах достаточно мелкие - числа и небольшие строки (пример - 60 байт на URL);
    • Требуется высокая пропускная способность при обработке одного запроса (до миллиардов строк в секунду на один сервер);
    • Транзакции отсутствуют;
    • Низкие требования к консистентности данных;
    • В запросе одна большая таблица, все таблицы кроме одной маленькие;
    • Результат выполнения запроса существенно меньше исходных данных - то есть, данные фильтруются или агрегируются; результат выполнения помещается в оперативку на одном сервере.
    ...

Аналоги и альтернативы для ClickHouse

ClickHouse - похожие продукты (инструменты, решения, сервисы)

Amazon Athena

Amazon Athena – это интерактивный сервис запросов, позволяющий просто анализировать данные в...

Apache Pinot

Apache Pinot (Incubating) - распределенное хранилище данных OLAP в реальном времени

Apache Druid

Druid - это ориентированное на столбцы распределенное хранилище данных с открытым исходным...

MongoDB

MongoDB — документоориентированная система управления базами данных (СУБД) с открытым исходным кодом,...

Интеграции для ClickHouse

Смотреть все интеграции с ClickHouse

Отзывы

Отзывов пока нет.

Будьте первым, кто оставил отзыв на “ClickHouse”

Ваш адрес email не будет опубликован. Обязательные поля помечены *