Найти тему
VK Cloud

ClickHouse в облаке: дом для вашей аналитики

Оглавление
Сколько существует баз данных? Вагон и маленькая тележка: реляционные, объектные, документные, сетевые, функциональные, их гибриды. А еще несколько десятков систем управления ими.

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

Почему ClickHouse хорошо решает аналитические задачи

Как у любого инструмента, у ClickHouse есть свое предназначение — это аналитика и скоростное чтение данных, работа со статистическими данными и отчетами, для которых требуется предоставление быстрых выборок по куче значений.

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

Чтобы как-то его упростить и ускорить, придумали колоночные СУБД — как раз к ним и относят ClickHouse. Они отличаются от всех других тем, что (кто бы мог подумать!) хранят данные в колонках. Зачем? Обычные реляционные СУБД оперируют строками, поэтому, как ни крути, работа с одним столбцом в такой БД затрагивает кучу сторонних данных — даже если мы ограничиваем выборку отдельными столбцами и юзаем индексы. А для аналитики нам чаще всего нужно работать именно с определенными столбцами значений.

Если писать данные колонками: один столбец — один набор значений, тогда проще строить отчеты по какой-либо переменной. Нужно только выполнить запрос на проиндексированной колонке — а это куда меньше работы и куда проще индексация.

В этом и заключается принцип работы колоночных баз данных. Там еще многое спрятано под капотом: распределение значений по времени, работа с разными колонками одновременно, но ключевой момент всегда один — работа в столбцах. Ниже расскажем, для каких задач понадобится установка ClickHouse.

Каждая строка колоночной СУБД содержит свой набор столбцов со значениями, которые можно анализировать отдельно от других столбцов. Источник
Каждая строка колоночной СУБД содержит свой набор столбцов со значениями, которые можно анализировать отдельно от других столбцов. Источник

Что с этим можно делать: для каких проектов подходит ClickHouse

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

Есть и более сложные примеры применения ClickHouse.

Например, приближенные вычисления. Допустим, вам важно в реальном времени оценивать приблизительный порядок неких статистических величин. Абсолютная точность не нужна, важно лишь примерное понимание дел. ClickHouse умеет делать такую оценку значений на огромных выборках. Фича редкая и нужная для тех, кому в реальном времени надо принимать сложные решения, основанные на быстро поступающих данных.

Стоит подумать о ClickHouse и как об альтернативе ELK-стеку для сбора логов. ELK настраивать намного сложнее — это, по сути, связка из трех продуктов, каждый из которых обладает своими нюансами и проблемами. ClickHouse же в этом плане более прост, понятен и надежен. А еще он поддерживает SQL — можно делать аналитику по логам с помощью привычных инструментов и с хорошей скоростью. Мало какая программа для работы с логами умеет такое.

Отдельно хочется отметить каменную стабильность работы, конскую способность к масштабированию и совершенно божественные уровни сжатия данных и доступности системы. Кластеры Clickhouse непотопляемы, хранят данные в предельно сжатом виде и отдают информацию чертовски быстро и цельно.

А есть ли ограничения?

Минусов и ограничений у ClickHouse не так много. Конечно, есть определенная область применения этой БД, и за ее рамки выходить не стоит. Так, интернет-магазин на ней не построишь.

Чтобы ClickHouse реально стал для вас полезен, объемы данных должны быть действительно большими. Если у вас в базе данных 100 миллионов строк — вы можете обойтись штатными средствами этой самой БД.

Кроме того, если сравнить ClickHouse с другими СУБД, то она не самая популярная в мире. Все необходимые инструменты и библиотеки вы найдете, однако, у более популярных систем хранения набор инструментов больше.

Еще есть определенные особенности реализации этой СУБД, которые некоторые могут назвать проблемами: отсутствие транзакций и сравнительно низкая эффективность чтения одиночных записей. Но это нормально — ClickHouse нужен для других целей. По многим тестам производительности она опережает таких конкурентов как Apache Spark, Amazon Redshift, Druid, Greenplum и Vertica.

Если разворачивать СУБД в облаке все гораздо проще — не надо думать об инструментах и настройке ClickHouse, вы за две минуты получите ее в готовом к работе и оптимально сконфигурированном виде. Перенести данные в ClickHouse с другого облачного сервиса, своего частного облака или железной инфраструктуры можно с помощью автоматизированного сервиса миграции в режиме реального времени без остановки работы приложений.

Источник: https://mcs.mail.ru/blog/clickhouse-v-oblake-dom-dlya-vashej-analitiki

Что еще почитать по теме:
Какую базу данных выбрать для проекта, чтобы не пришлось выбирать снова
SQL vs NoSQL: выбираем систему хранения данных
Почему облачные базы данных побеждают традиционные