ClickHouse
ClickHouse | |
---|---|
Тип | система управления базами данных, Столбцовое хранение и открытое программное обеспечение |
Разработчики | ClickHouse, Inc. |
Написана на | C++ |
Операционная система | GNU/Linux |
Первый выпуск | 15 июня 2016[1] |
Последняя версия | |
Репозиторий | github.com/ClickHouse/Cl… |
Лицензия | лицензия Apache[3] |
Сайт | clickhouse.com |
ClickHouse — это колоночная аналитическая СУБД с открытым кодом, позволяющая выполнять аналитические запросы в режиме реального времени на структурированных больших данных. Изначально разрабатывалась компанией Яндекс[4][5][6], но впоследствии разработка полностью перешла в отдельную компанию ClickHouse Inc[7].
ClickHouse использует собственный диалект SQL близкий к стандартному, но содержащий различные расширения: массивы и вложенные структуры данных, функции высшего порядка, вероятностные структуры, функции для работы с URI, возможность для работы с внешними key-value хранилищами («словарями»), специализированные агрегатные функции, функциональности для семплирования, приблизительных вычислений, возможность создания хранимых представлений с агрегацией, наполнения таблицы из потока сообщений Apache Kafka и т. д.
Однако при этом имеются и ограничения — отсутствие транзакций, отсутствие точечных UPDATE/DELETE (пакетный UPDATE/DELETE был введен в июне 2018 года), ограниченная поддержка синтаксиса JOIN, строгие типы с необходимостью явного приведения, для некоторых операций промежуточные данные должны помещаться в оперативную память, отсутствие полноценного оптимизатора запросов, точечного чтения, присутствие ограничений в реализации некоторых функций, связанных со спецификой использования ClickHouse в Яндексе, и т. д.
Система оптимизирована для хранения данных на жестких дисках (используются преимущества линейного чтения, сжатия данных). Для обеспечения отказоустойчивости и масштабируемости ClickHouse может быть развернут на кластере (для координации процесса репликации используется Apache ZooKeeper)[8]. Для работы с базой данных существует консольный клиент, веб-клиент, HTTP интерфейс, ODBC и JDBC-драйверы[9], а также готовые библиотеки для интеграции со многими популярными языками программирования и библиотеками[10].
Во многих тестах ClickHouse показывает очень высокую производительность, выигрывая по этому показателю у таких конкурентов как Greenplum, Vertica[11], Amazon Redshift[12], Druid[13], InfiniDB/MariaDB ColumnStore[14], Apache Spark[15][16], Presto, Elasticsearch[17].
История[править | править код]
ClickHouse был разработан для решения задач веб-аналитики для Яндекс.Метрики — третьей по популярности системы веб-аналитики в мире[18].
Изначально в Яндекс.Метрике для построения отчетов использовались предварительно агрегированные данные[19].
Этот подход позволял уменьшить размер хранимых данных, однако имел ряд ограничений и недостатков:
- необходимость заранее зафиксировать список доступных для пользователя отчетов (отсутствие возможности построить произвольный отчет);
- предагрегации по большому количеству ключей или по ключам высокой кардинальности (таким как URL) может приводить к обратному эффекту (увеличению объёма данных);
- поддержание логической целостности при хранении большого количества разных агрегаций затруднительно.
Альтернативный подход заключается в хранении «сырых» неагрегированных данных, производя все необходимые вычисления в момент запроса пользователя. Для этого была необходима СУБД, которая смогла бы обрабатывать неагрегированные данные Яндекс.Метрики (петабайты данных) с очень высокой эффективностью и в реальном времени, и при этом обладая приемлемой стоимостью. Поскольку на тот момент таких решений на рынке не было, то в Яндексе начали разрабатывать свою СУБД.
Первый прототип ClickHouse появился в 2009 году[20]. К концу 2014 года была запущена Метрика 2.0, работающая на базе ClickHouse, которая позволила пользователям строить произвольные отчеты.
В июне 2016 года исходный код системы был выложен в open-source под лицензией Apache 2.0[21].
В сентябре 2021 года Яндексом совместно с венчурными фондами был основан одноименный стартап ClickHouse Inc. Новая компания продолжила разработку СУБД, сфокусировавшись на создании облачной инфраструктуры. Компания привлекла 250 млн долларов инвестиций и стала "единорогом", получив оценку капитализации в 2 млрд долларов[22].
В марте 2022 года ClickHouse Inc. осудили вторжение России на Украину и заявили о полном уходе из России[23][24].
Распространение[править | править код]
В 2016 году кроме Яндекс.Метрики, ClickHouse использовался в ряде различных проектов внутри Яндекса, например, в open-source проекте Яндекс.Танк для хранения данных о телеметрии[21], Яндекс.Маркете для мониторинга здоровья сервиса[25] , и во внешних проектах, например, для анализа метаданных о событиях в LHCb эксперименте в CERN[26] (порядка миллиарда событий и 1000 параметров для каждого события).
В настоящее время многие компании успешно используют ClickHouse, в том числе: Cloudflare, Bloomberg[27], ВКонтакте[28], Rambler[29], Тинькофф банк[30], NIC Labs Chile[31], Amadeus[32], Avito.ru[33], Criteo, ContentSquare[34], СМИ2[35], ivi.ru[36], Mail.ru, Adtelligent, Carto, Lifestreet, Infinidat[37][38], SemRush[39] и др.
Примечания[править | править код]
- ↑ https://habr.com/ru/company/yandex/blog/303282/ — 2016.
- ↑ Release 23.12.2.59 — 2024.
- ↑ https://github.com/ClickHouse/ClickHouse/blob/master/LICENSE
- ↑ Яндекс ClickHouse. Быстрее некуда. / Филиппов Олег // Системный администратор. — 2017. — № 1—2. — С. 56—58.
- ↑ ClickHouse в системах сбора статистики / Календарев Александр // Системный администратор. — 2017. — № 3. — С. 56—59.
- ↑ ClickHouse — Национальная библиотека им. Н. Э. Баумана . ru.bmstu.wiki. Дата обращения: 20 августа 2018. Архивировано 20 августа 2018 года.
- ↑ Lardinois, Frederic ClickHouse launches ClickHouse Cloud, extends its Series B (амер. англ.). TechCrunch (6 декабря 2022). Дата обращения: 4 августа 2023.
- ↑ Афанасьев Г.И., Белоногов И.Б., Булатова И.Г., Тоноян С.А. Организация кластеров для обработки данных на основе СУБД YANDEX CLICKHOUSE и распределенной координационной службы для распределенных приложений APACHE ZOOKEEPER // Аллея науки. — 2018. — Т. 3, № 1. — С. 850—860. — ISSN 2587-6244. Архивировано 20 августа 2018 года.
- ↑ "Доступ к ClickHouse с помощью JDBC". Архивировано из оригинала 19 августа 2018. Дата обращения: 19 августа 2018.
- ↑ Interfaces (англ.). ClickHouse Documentation. clickhouse.yandex. Дата обращения: 17 августа 2018. Архивировано 8 августа 2018 года.
- ↑ Performance comparison of analytical DBMS (англ.). clickhouse.yandex. Дата обращения: 17 августа 2018. Архивировано 20 октября 2016 года.
- ↑ ClickHouse vs Amazon RedShift Benchmark (англ.). www.altinity.com. Дата обращения: 17 августа 2018. Архивировано 17 августа 2018 года.
- ↑ SREcon18 Americas - Monitoring DNS with Open-Source Solutions на YouTube, начиная с 8:50
- ↑ InfiniDB vs ClickHouse (кит.). www.verynull.com (22 августа 2016). Дата обращения: 17 августа 2018. (недоступная ссылка)
- ↑ Column Store Database Benchmarks: MariaDB ColumnStore vs. ClickHouse vs. Apache Spark (англ.). www.percona.com (15 марта 2017). Дата обращения: 17 августа 2018. Архивировано 17 августа 2018 года.
- ↑ "A Look at ClickHouse: A New Open Source Columnar Database - DZone Database". dzone.com (англ.). Архивировано из оригинала 20 августа 2018. Дата обращения: 20 августа 2018.
- ↑ Mark Litwintschik. Summary of the 1.1 Billion Taxi Rides Benchmarks (англ.). tech.marksblogg.com. Дата обращения: 17 августа 2018. Архивировано 17 августа 2018 года.
- ↑ Usage Statistics and Market Share of Traffic Analysis Tools for Websites, April 2019 . w3techs.com. Дата обращения: 18 апреля 2019. Архивировано 21 января 2014 года.
- ↑ "Эволюция структур данных в Яндекс.Метрике". Блог Yandex. habr.com. 2015-12-17. Архивировано из оригинала 17 августа 2018. Дата обращения: 17 августа 2018.
- ↑ ClickHouse: High-Performance Distributed DBMS for Analytics | Percona Live Amsterdam - Open Source Database Conference 2016 . www.percona.com. Дата обращения: 20 октября 2016. Архивировано 21 октября 2016 года.
- ↑ 1 2 "Яндекс открывает ClickHouse". Архивировано из оригинала 21 октября 2016. Дата обращения: 20 октября 2016.
- ↑ Основанный «Яндексом» стартап ClickHouse стал «единорогом» . Дата обращения: 27 декабря 2022. Архивировано 27 декабря 2022 года.
- ↑ Aaron Katz, Yury Izrailevsky and Alexey Milovidov. We Stand With Ukraine (англ.). clickhouse.com (31 марта 2023). Дата обращения: 4 августа 2023. Архивировано 4 августа 2023 года.
- ↑ Цепелева, Маша ClickHouse выступила против «операции» на Украине и заявила, что не связана с Россией, хотя её инвестор — Yandex NV — Сервисы на vc.ru . vc.ru (1 апреля 2022). Дата обращения: 9 сентября 2023. Архивировано 6 сентября 2022 года.
- ↑ Здоровье Маркета: как мы превращаем логи в графики, Дмитрий Андреев (Яндекс) — События Яндекса . events.yandex.ru. Дата обращения: 20 октября 2016. Архивировано 30 августа 2017 года.
- ↑ "Yandex — Yandex Launches Search Tool for LHC Events at CERN". Yandex. Архивировано из оригинала 20 октября 2016. Дата обращения: 20 октября 2016.
- ↑ Alex Bocharov (2018-03-06). "HTTP Analytics for 6M requests per second using ClickHouse". The Cloudflare Blog. Архивировано из оригинала 17 августа 2018. Дата обращения: 17 августа 2018.
- ↑ "Немного закулисья VK". habr.com. 2018-06-22. Архивировано из оригинала 20 августа 2018. Дата обращения: 20 августа 2018.
- ↑ Демьян Кудрявцев (2018-05-17). "Разработка API ClickHouse для Рамблер/топ-100". Блог компании Rambler Group. habr.com. Архивировано из оригинала 19 августа 2018. Дата обращения: 19 августа 2018.
- ↑ М. Белоусов, Д. Немчин, Г. Безруких, Д. Павлов (2016-11-11). "Сравнение аналитических in-memory баз данных". Блог IT’s Tinkoff.ru. Habr. Архивировано из оригинала 17 августа 2018. Дата обращения: 17 августа 2018.
{{cite news}}
: Википедия:Обслуживание CS1 (множественные имена: authors list) (ссылка) - ↑ Felipe Espinoza and Javier Bustos. Monitoring DNS with Open-Source Solutions | USENIX (англ.). SREcon18 Americas. www.usenix.org (29 марта 2018). Дата обращения: 17 августа 2018. Архивировано 17 августа 2018 года.
- ↑ "Amadeus Technologies Launches Investment and Insights Tool Based on Machine Learning and Strategy Algorithms". Kodiak Data. 2018-03-27. Архивировано из оригинала 21 августа 2018. Дата обращения: 21 августа 2018.
- ↑ Владимир Колобаев. "Хранение метрик: как мы перешли с Graphite+Whisper на Graphite+ClickHouse". Блог компании Avito. habr.com. Архивировано из оригинала 19 августа 2018. Дата обращения: 19 августа 2018.
- ↑ ClickHouse Meetup in Paris (англ.). Altinity. Дата обращения: 8 октября 2018. Архивировано 8 октября 2018 года.
- ↑ Игорь Стрыхарь (2016-11-07). "Как запустить ClickHouse своими силами и выиграть джекпот". Блог компании СМИ2. habr.com. Архивировано из оригинала 18 августа 2018. Дата обращения: 18 августа 2018.
- ↑ Коняев Андрей (2018-01-24). "Как мы в ivi переписывали etl: Flink+Kafka+ClickHouse". Блог компании Онлайн-кинотеатр ivi. habr.com. Архивировано из оригинала 19 августа 2018. Дата обращения: 19 августа 2018.
- ↑ Alexander Zaytsev (2017-08-10). "Who and Why is Using ClickHouse". Altinity (англ.). Архивировано из оригинала 17 августа 2018. Дата обращения: 17 августа 2018.
- ↑ ClickHouse Meetup in Berlin (англ.). yandex.github.io. Дата обращения: 17 августа 2018. Архивировано из оригинала 17 августа 2018 года.
- ↑ "«Иногда приходится заглядывать в код Spark»: Александр Морозов (SEMrush) об использовании Scala, Spark и ClickHouse". Блог компании JUG.ru Group. habr.ru. 2017-10-30. Архивировано из оригинала 19 августа 2018. Дата обращения: 19 августа 2018.
Ссылки[править | править код]