Выбирай : Покупай : Используй

Вход для партнеров

Вход для продавцов

0

Обзор ClickHouse — СУБД для онлайн-аналитики

Многие крупные компании содержат у себя в штабе аналитический отдел, специалисты которого следят за динамикой рынка, анализируют деятельность конкурентов или анализируют поведение своих клиентов на онлайн-площадках. Так или иначе, специалисты сталкиваются с огромными объемами информации, аналитика которых требует не только классификации работника, но и специальных инструментов. ClickHouse — один из таких инструментов, особенности и принципы работы которого рассмотрены в данном материале. 

Знакомство с ClickHouse

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

Особенности системы и принцип функционирования

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

ClickHouse — инструмент для структурирования в виде колонок аналитических данных, с использованием SQL-запросов в реальном времени

Как упоминалось ранее, ClickHouse поддерживает язык SQL и соответствует PostgreSQL с точки зрения выразительности и простоты. Система также отлично работает c различными расширениями по типу: массивы и заложенные компоненты данных, вероятностные структуры, имеется опция установки внешнего key-value хранилища, а также включает в себя функции взаимодействия с вложенными объектами: arrayMap и arrayFilter.

Помимо этого, СУБД имеет довольно гибкие настройки соединения с иными системами типа Big Data, например: Арасhе Каfkа и HDFS, а также с МуSQL через ODВС или JDВС.

Основные преимущества и минусы ClickHouse

ClickHouse, как и любая другая СУБД, имеет ряд преимуществ, которые напрямую влияют на ее применение:

  • масштабируемость — позволяет изменять и хранить сотни гигабайтов данных;
  • сжатие обработанных данных — процесс сокращения размеров файлов информации позволяет улучшить быстродействие и
  • эффективность системы;
  • столбовое хранение данных — процесс чтения необходимой информации происходит исключительно из подходящего для запроса столбца, что дает возможность сокращать повторяющуюся информацию. В СlickHоusе поддерживаются значения постоянной длины, чтобы не хранить рядом размер типа;
  • линейная масштабируемость — при помощи возможности добавления дополнительных серверов система значительно расширяет функционал в работе с SQL;
  • классификация данных по ключевым запросам – система оперативно реагирует на запросы пользователя и выдает результат;
  • векторные аппаратные вычисления — сокращают затраты на контролирование процессов работы, тем самым уменьшая нагрузку на СРU;
  • одновременность операций в рамках одиночного сервера на несколько ядер процессора и между упорядоченных вычислений при помощи механизма шардирования;
  • возможность примерных вычислений — увеличивает скорость анализа данных без увеличения количества обращений к хранилищу;
  • наличие сервисов и клиентов для интеграции с БД. Активно применяются клиенты НТТР АРI, wrарреr’ы на Руthоn, РНР, NоdеJS, Реrl, Rubу. Также для ClickHouse есть JDВС и Gоlаng драйверы;
  • надежность системы — записи данных на любой носитель, автоматически создает копию на других, а для организации эффективной работы всех имеющихся копий используется ZооKеереr;
  • оптимизация под HDD-носители — дает возможность работать с внешними жесткими дисками и обрабатывать данные, которые выходят за рамки объемов одного носителя персонального компьютера пользователя;

Также выделяют:

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

Здесь стоит отметить, что ClickHouse имеет табличную структуру, что дает преимущество перед строчными СУБД и позволяет снизить нагрузку на устройство в 17 раз, чем при выполнении данного запроса в строчных СУБД.

ClickHouse также имеет ряд недостатков по сравнению с аналогичными системами:

  • отсутствие полноценных транзакций — в отличие от MySQL, ClickHouse не имеет возможности осуществлять транзакций, а значит ее спектр возможностей в работе с трансакциями ограничен;
  • сложности в работе с одиночными запросами — чтение и обработка одиночных строк отступает аналогичным СУБД. Несмотря на преимущество табличной структуры перед строчной, алгоритм чтения пользовательских запросов не способен выполнять одиночные запросы по поиску конкретных данных, что усложняет процесс работы;
  • удаление и изменения ранее записанных данных при большом количестве запросов происходят медленнее конкурентов. При работе с аналитикой не исключена вероятность ошибок, связанных с теми или иными факторами (невнимательность оператора, сбои), в этой связи ключевой опцией является редактирование уже внесенной в базу данных информации.
  • несовершенство функции одиночного чтения и изменения данных, что увеличивает риск ошибок при вводе.

Где применяется ClickHouse

Система создана прежде всего для выполнения аналитических функций, а значит отлично подходит для следующих типов задач:

  • аналитика веб-приложений — позволяет следить и анализировать особенности работы сетевых программ;
  • аналитика метрик в режиме реального времени — для любого владельца сайта важно иметь как можно более глубокую статистику по посещаемости и взаимодействию со страницами ресурса.

ClickHouse позволяет отслеживать пользовательскую активность в режиме реального времени, что дает возможность составить портрет своей ЦА;

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

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

Помимо положительных способов использования ClickHouse, необходимо выделить ряд операций, для которых СУБД не подойдет:

  • для хранения неструктурированных данных, например, видео, картинок, музыки, фильмов, роликов;
  • для обновляемых данных. ClickHouse не поддерживает транзакции — последовательность операций, которые должны выполниться все вместе или среди которых не должна выполниться ни одна. Это ограничивает функционал системы в банковской сфере, где необходимо отследить операции клиентов.

Выводы

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

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

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