A B C D E F G H I K L M N O P R S T W Y Z Б В Е И К М О П Т Ц

ClickHouse

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

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

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

Основными ключевыми вехами в истории 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].

ClickHouse Keeper

ClickHouse Keeper – это мощное средство для обслуживания и управления базами данных ClickHouse. Он предоставляет набор инструментов для автоматизации задач администрирования, оптимизации производительности и обеспечения стабильной работы системы. В этой статье мы рассмотрим основные функциональности ClickHouse Keeper и предоставим примеры кода для лучшего понимания его возможностей.

Основные Функциональности ClickHouse Keeper:

  1. Мониторинг и Управление Ресурсами: ClickHouse Keeper обеспечивает подробный мониторинг ресурсов, таких как использование CPU, памяти, дискового пространства и других системных параметров. С использованием API Keeper’a можно легко настраивать ограничения и управлять ресурсами для оптимизации производительности.
  2. Работа с Запросами: Инструменты ClickHouse Keeper позволяют анализировать и оптимизировать SQL-запросы. Можно получить статистику выполнения запросов, определить узкие места и внести изменения для улучшения их производительности.
  3. Резервное Копирование и Восстановление: Keeper предоставляет средства для создания резервных копий данных и их последующего восстановления. Это важный элемент обеспечения безопасности данных.
  4. Управление Репликацией: С ClickHouse Keeper можно легко управлять процессами репликации данных для обеспечения отказоустойчивости и распределения нагрузки.
  5. Интеграция с Метриками и Логами: Keeper интегрируется с различными системами мониторинга, такими как Grafana и Prometheus, что облегчает отслеживание состояния базы данных.

Пример 1: Получение Статистики Использования Ресурсов:

SELECT *
FROM system.metrics
WHERE metric_name LIKE 'system.%'

В этом запросе мы используем системную таблицу system.metrics, чтобы получить статистику использования ресурсов. Мы выбираем все метрики, связанные с системными ресурсами.

Пример 2: Оптимизация Запроса

OPTIMIZE TABLE example_table FINAL

Этот запрос оптимизирует таблицу example_table. Используя команду OPTIMIZE, мы уменьшаем фрагментацию данных и улучшаем производительность запросов.

Пример 3: Создание Резервной Копии и Восстановление

-- Создание резервной копии
BACKUP TABLE example_table TO '/path/to/backup';

-- Восстановление из резервной копии
RESTORE TABLE example_table FROM '/path/to/backup';

Таким образом, ClickHouse Keeper предоставляет широкий набор инструментов для эффективного управления и оптимизации баз данных ClickHouse.

Источники

  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

Поиск по сайту