Рубрика:
Базы данных /
Новый дистрибутив
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ОЛЕГ ФИЛИППОВ, АНТ-Информ, заместитель начальника отдела разработки, comol@mail.ru
Яндекс ClickHouse. Быстрее некуда
Недавно в свободный доступ попала Open Source СУБД компании Яндекс – ClickHouse, которая обслуживает Яндекс.Метрику. Посмотрим, что это такое?
Что это такое и зачем оно нужно?
Достаточно заманчивый заголовок, который говорит о чем-то быстром и бесплатном, вызывает два традиционных вопроса: «Что это такое?» и «Как я могу это использовать?». Ответы на них могут быть разными в зависимости от того, к чему привык читатель. Начнем, пожалуй, с самого далекого от ClickHouse варианта – «мира Windows и MS SQL Server». Популярное мнение «чем дороже СУБД, тем она быстрее», мягко говоря, неверно в общем случае. Как минимум СУБД бывают OLAP и OLTP. Первые ориентированы на скорость получения данных, вторые – на параллельность работы при согласованности данных. Часто наиболее сложными механизмами в СУБД являются как раз функции многопользовательского доступа к общим данным. При этом данные должны в каждый момент времени оставаться согласованными. Поддержание этих механизмов требует существенных затрат.
В то же время в большинстве случаев такая «защитная» согласованность данных не требуется. Если вы пишете систему обмена сообщениями или собираете информацию о кликах пользователей, или загружаете товар с ценами на сайт, у вас, по сути, и нет общего ресурса, к которому нужно разделять доступ, да и пишете вы в каждый момент времени только водну таблицу. Для этих целей проще всего использовать более простые и быстрые OLAP СУБД. Но под OLAP мы привыкли понимать кубы, «in memory», перестроение, предварительную агрегацию данных… В современном мире все не совсем так.
В мире Big Data существуют совсем другие СУБД. И это не Microsoft SQL Server Enterprise, естественно, не PostreSQL, не IBM DB2, не Teradata и даже не Oracle Database. Большую часть Big Data-инфраструктуры (речь идет не о гигабайтах и даже не о терабайтах, скорее, ближе к петабайтам данных) обслуживают такие СУБД, как Facebook Presto [1], Google BigQuery [2], Apache Hive [3] и, конечно, HP Vertica [4]. В эту же категорию можно отнести и ClickHouse.
Яндекс в своем блоге очень долго рассказывал о том, чем же их Open Source СУБД лучше других [5]. В частности, провели сравнение с HP Vertica как наиболее близким попроизводительности [6]. Часть этого теста приведена на рис. 1.
Рисунок 1. Benchmark СУБД Яндекс ClickHouse и HP Vertica
Даже если не обращать внимания на сам Benchmark (он все-таки проведен Яндексом), обратите внимание на количество данных в датасете для анализа – 1 биллион. При этом примерное время выполнения запроса к данным – секунды. То есть выборка из таблицы, в которой биллион данных, занимает в среднем не более нескольких секунд! Теперь вспомните, на каких объемах у вас начинались проблемы при использовании СУБД MS SQL? Таблица с несколькими десятками миллионов записей уже часто требует отдельного обслуживания, секционирования и совсем нетривиальных действий. При этом вам вряд ли удастся достичь времени выборки в одну секунду.
Конечно, у вас, как правило, не биллионы данных, и не нужна распределенная архитектура из десятков или сотен серверов. Но уже на таблицах из миллионов записей разница вскорости будет весьма ощутимой. И не нужно никаких кубов, предварительной агрегации, данные попадают в выборку сразу после записи. И самое главное, если ранее подобные решения были «для избранных», потому что были или дороги, или сложны во внедрении, Яндекс сделал шаг к нам навстречу и решение для Big Data сделал «для всех». Чем же ClickHouse уникальна:
- прежде всего она бесплатна. Существующие Big Data-решения, как правило, не дешевы, что ограничивало область их применения именно в Big Data;
- ClickHouse поддерживает SQL. Конечно, где-то она расширенная, а где-то урезанная, но базовые конструкции соответствуют стандарту ANSI;
- ClickHouse проста в установке и настройке (есть сборка под Linux Debian);
- ClickHouse достаточно хорошо документирована, что, как правило, является редкостью для открытых проектов, рожденных внутри компании [7].
Разобравшись с тем, что такое ClickHouse и зачем она нужна, дальше, наверное, нужно рассмотреть...
Статью целиком читайте в журнале «Системный администратор», №1-2 за 2017 г. на страницах 56-58.
PDF-версию данного номера можно приобрести в нашем магазине.
- Facebook Presto СУБД – https://prestodb.io.
- Big Data СУБД от Google – https://cloud.google.com/bigquery.
- Apache Hive – Big Data СУБД, используемая совместно с Hadoop – https://hive.apache.org.
- HP Vertica – СУБД для анализа Big Data – http://www8.hp.com/ru/ru/software-solutions/advanced-sql-big-data-analytics/index.html.
- Заметка в блоге компании Яндекс о презентации ClickHouse – https://habrahabr.ru/company/yandex/blog/303282.
- Benchmark СУБД Clickhouse и HP Vertica – https://clickhouse.yandex/benchmark.html#[1000000000,["ClickHouse","Vertica","InfiniDB","Hive"],["0","1"]].
- Руководство пользователя ClickHouse – https://clickhouse.yandex/reference_ru.html.
- В разделе Download команды установки для Ubuntu – https://clickhouse.yandex.
- Библиотека для работы с ClickHouse из языка Python – https://github.com/Infinidat/infi.clickhouse_orm.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|