Яндекс ClickHouse. Быстрее некуда
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
О журнале
Журнал «БИТ»
Информация для ВАК
Звезды «СА»
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Игры
Контакты
   


  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
27.03.2019г.
Просмотров: 244
Комментарии: 0
Arduino Uno и Raspberry Pi 3: от схемотехники к интернету вещей

 Читать далее...

27.03.2019г.
Просмотров: 195
Комментарии: 0
Автоматизация программируемых сетей

 Читать далее...

27.03.2019г.
Просмотров: 226
Комментарии: 0
Изучаем pandas. Второе издание

 Читать далее...

27.03.2019г.
Просмотров: 174
Комментарии: 0
Компьютерное зрение. Теория и алгоритмы

 Читать далее...

13.03.2019г.
Просмотров: 384
Комментарии: 0
DevOps для ИТ-менеджеров

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Яндекс ClickHouse. Быстрее некуда

Источник: samag.ru Просмотров: 3796

Олег Филиппов ОЛЕГ ФИЛИППОВ, АНТ-Информ, заместитель начальника отдела разработки, 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

Рисунок 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-версию данного номера можно приобрести в нашем магазине.


  1. Facebook Presto СУБД – https://prestodb.io.
  2. Big Data СУБД от Google – https://cloud.google.com/bigquery.
  3. Apache Hive – Big Data СУБД, используемая совместно с Hadoop – https://hive.apache.org.
  4. HP Vertica – СУБД для анализа Big Data – http://www8.hp.com/ru/ru/software-solutions/advanced-sql-big-data-analytics/index.html.
  5. Заметка в блоге компании Яндекс о презентации ClickHouse – https://habrahabr.ru/company/yandex/blog/303282.
  6. Benchmark СУБД Clickhouse и HP Vertica – https://clickhouse.yandex/benchmark.html#[1000000000,["ClickHouse","Vertica","InfiniDB","Hive"],["0","1"]].
  7. Руководство пользователя ClickHouse – https://clickhouse.yandex/reference_ru.html.
  8. В разделе Download команды установки для Ubuntu – https://clickhouse.yandex.
  9. Библиотека для работы с ClickHouse из языка Python – https://github.com/Infinidat/infi.clickhouse_orm.

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru