Сколько существует баз данных? Вагон и маленькая тележка: реляционные, объектные, документные, сетевые, функциональные, их гибриды. А еще несколько десятков систем управления ими.
И среди всего этого многообразия есть СУБД 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: выбираем систему хранения данных
Почему облачные базы данных побеждают традиционные