У нас в ІнтерЛінк заведено не тягнути за собою звичний технологічний стек та інструменти з проекту в проект, а ретельно аналізувати нагальні потреби та шукати найбільш ефективні способи вирішення проблем. Це дозволяє нам постійно розвиватись, а нашим проектам використовувати сучасні технології та підходи.
Нещодавно перед нами постала задача вибору бази даних для одного з наших проектів. Звичайні RDBMS нас не зовсім влаштовували. Точніше, вони могли б впоратися з поставленою задачею, але хотілося підібрати рішення, яке більше підходило б для поставлених задач. Звичайні RDBMS являються доволі універсальними, і через свою універсальність вони зачасту програють системам більш вузько направленим, що створені під конкретні цілі.
В процесі досліджень в наше поле зору потрапила відносно нова база даних – ClickHouse. В першу чергу вона нас зацікавила тому, що була створена для сервісу по веб-аналітиці, який вирішував проблеми схожі на наші, тож ми вирішили познайомитися з нею поближче. Тим більше її офіційний Benchmark демонструє просто фантастичні доволі непогані результати.
Не зважаючи на те, що в процесі ознайомлення були виявлені деякі специфічні властивості даної бази, які нас не зовсім влаштовували, а саме створювали певний дискомфорт, ми все ж таки зупинилися на ній.
Декілька слів про історію ClickHouse. Перший її прототип з’явився у 2009 році. У кінці 2014 було запущено у роботу перший сервіс, побудований на базі ClickHouse, а вже у липні 2016-го року її виклали в open-source під ліцензією Apache 2.0. З вище зазначених дат видно, що ця база являється доволі новою, проте розробники активно її розвивають, і, якщо так піде і далі, то у ClickHouse є всі шанси завоювати ринок у своєму сегменті, так як відкритих і безкоштовних аналогів не так уже й багато.
Чим же нас зацікавила ця база. ClickHouse – це колонкова RDBMS для OLAP. Вона здатна швидко обробляти аналітичні запити на великих об’ємах (йдеться про терабайти даних) інформації. Вона створена для роботи з історією, тобто трекінгу певних дій і подальшого їх аналізу, що саме й потрібно для нашого сервісу. Також ClickHouse підтримує компресію даних як при зберіганні, так і при передачі, що, в свою чергу, підвищує продуктивність, а також суттєво економить місце при роботі з великими об’ємами даних.
Через свою специфіку ClickHouse не надає повноцінної реалізації UPDATE/DELETE операцій, так як на проектах, де використовувалася ця база, в цьому не було необхідності. На даний момент реалізація цього функціоналу існує в планах розробників, але точних термінів, коли це буде зроблено, немає. Це, певним чином, ускладнює для нас задачу, але у нас є декілька ідей як обійти таку поведінку і найближчим часом ми плануємо їх спробувати на практиці.
В подальшому ми плануємо продовжити ділитися реальним досвідом роботи з ClickHouse.
Офіційні ресурси:
- Документація: http://clickhouse-docs.readthedocs.io
- Google група: https://groups.google.com/forum/#!forum/clickhouse
- GitHub: https://github.com/yandex/ClickHouse
1 Comment
You can post comments in this post.
Based on – https://github.com/yandex/ClickHouse (‘ClickHouse is an open-source column-oriented database management system that allows generating analytical data reports in real time.’) is not database.
But thanks for your article.
User user 7 лет ago
Post A Reply