Никита Бердников

Услуга · ClickHouse DWH

Развёртывание и настройка ClickHouse — хранилище под аналитику миллионов событий

Разворачиваю ClickHouse под задачи бизнеса: e-commerce с событиями, продуктовая телеметрия, исторические данные рекламы. Yandex Managed или self-hosted на вашем VPS.

Когда нужен ClickHouse

ClickHouse — колоночная аналитическая база. Считает агрегаты по миллиардам строк за секунды. Я разворачиваю его как DWH, когда обычная Postgres или MS SQL перестают тянуть аналитику.

Типичные ситуации: e-commerce с журналом событий, продуктовая телеметрия SaaS, история рекламы за 3+ года, лог-аналитика, IoT-данные. Если у вас 5 млн строк в год и Postgres справляется — ClickHouse не нужен.

Что входит в развёртывание

  • Развёртывание ClickHouse: Yandex Managed (рекомендую для production) или self-hosted на VPS клиента
  • Проектирование схемы под запросы: движки MergeTree/ReplacingMergeTree, TTL, партиционирование, materialized views
  • Перенос исторических данных до 200 ГБ из текущего источника
  • Настройка инкрементальных ETL: из Postgres, MS SQL, Roistat, CRM, Метрики, рекламных кабинетов
  • Оптимизация 5–10 ключевых запросов с разбором EXPLAIN-плана
  • Бэкапы, мониторинг (Yandex Monitoring или Prometheus), регламент восстановления

Поверх ClickHouse чаще всего ставлю DataLens — см. услугу Yandex DataLens. Если нужна product analytics — Apache Superset или Metabase, разворачиваю отдельной задачей.

Что это даёт бизнесу, а не только разработчикам

ClickHouse — это инфраструктура, но выгода у неё бизнесовая:

  • Отчёты по десяткам миллионов строк строятся за секунды, а не «приходите завтра».
  • История за годы лежит в одном месте — можно сравнивать сезоны и считать когорты.
  • Дашборды перестают тормозить и отваливаться по таймауту на больших выборках.
  • Экономия на лицензиях тяжёлой BI: ClickHouse + DataLens закрывает то, за что обычно платят отдельно.

Если этих болей нет — ClickHouse не нужен, и я об этом скажу честно. Это инструмент под объём, а не под моду.

Что я нахожу в чужом ClickHouse

Когда зовут разобраться, почему «ClickHouse есть, а толку мало», причины повторяются:

  • Неправильный первичный ключ и нет партиционирования по дате — запросы сканируют всё.
  • Агрегаты считаются на лету вместо materialized views.
  • Избыточные типы (String вместо LowCardinality) раздувают данные и память.
  • ETL без идемпотентности — дубли событий при повторной загрузке.
  • Нет бэкапов и мониторинга — о проблеме узнают, когда дашборд уже лёг.

Чаще проблема в схеме, а не в железе. Поэтому начинаю с EXPLAIN-планов и структуры таблиц, а не с наращивания мощностей.

Self-hosted или Yandex Managed

Главный вопрос на старте — где развернуть. От ответа зависит цена и нагрузка на команду.

  • Yandex Managed ClickHouse — рекомендую для production: бэкапы из коробки, репликация, мониторинг, SLA. Стоит 5–25 тыс. ₽/мес за стандартную конфигурацию
  • Self-hosted на VPS клиента — для R&D, MVP, проектов с особыми требованиями к данным. Дешевле подписочно (2–4 тыс. ₽/мес за VPS), но вся поддержка ложится на команду
  • Гибрид — managed для production, self-hosted для staging — оптимально по балансу цена/безопасность

Пакеты и цены

Выбирайте объём — от стартового аудита до полного цикла

Настройка ClickHouse под ключ

3–5 недель
  • Для кого: компания с таким количеством событий, что Excel и PostgreSQL уже не справляются — e-commerce, продукт с телеметрией, медиа, исторические данные рекламы за 3 и более года
  • Разворачиваю ClickHouse: Yandex Managed или self-hosted на VPS клиента
  • Проектирую схему таблиц под запросы: MergeTree, TTL, партиционирование, индексы
  • Переношу существующие данные до 200 ГБ, настраиваю инкрементальные ETL из источников
  • Оптимизирую 5–10 ключевых запросов, настраиваю бэкапы и мониторинг
  • Не входит: BI-слой (DataLens/Metabase — отдельная услуга), лицензия Yandex Managed ClickHouse от ~5–25к/мес — платит клиент
от

100 000 ₽

Миграция в ClickHouse

3–6 недель
  • Для кого: компания с данными в PostgreSQL / MySQL / ElasticSearch, аналитика тормозит, нужно переехать на колоночное хранилище
  • Аудит исходной схемы и запросов, план миграции
  • Проектирую ClickHouse-схему: денормализация под запросы, правильные типы данных
  • Переношу данные (ETL или CDC), валидирую консистентность
  • Переписываю 10–20 ключевых запросов и отчётов
  • Период параллельной работы 2–4 недели, потом отключение старой БД
  • Не входит: разработка нового BI или приложения поверх ClickHouse — отдельная задача
от

120 000 ₽

Оптимизация и поддержка ClickHouse

месячные циклы
  • Для кого: компания с работающим ClickHouse, но запросы тормозят, материализации не хватает, ETL падает
  • Ежемесячный аудит медленных запросов и использования ресурсов
  • Оптимизация индексов, материализованных представлений, проекций
  • Чиню падающие ETL-процессы, добавляю мониторинг
  • Включено: 8 часов в месяц, сверх — по ставке 3 500 ₽/ч
  • Не входит: миграция новых больших источников (отдельный пакет), BI-слой
от

30 000 ₽

Вопросы и ответы

У меня данные в Postgres — зачем мне ClickHouse?

Postgres — отличная транзакционная база, но плохо считает аналитику на больших объёмах. Если запросы вида «SELECT SUM(amount) FROM events WHERE date BETWEEN ... GROUP BY channel» занимают больше 5–10 секунд, и таблица событий растёт быстрее миллиона строк в месяц — пора смотреть на ClickHouse. Колоночная архитектура считает такие запросы в 50–100 раз быстрее. Не имеет смысла переезжать ради сотни тысяч строк — там Postgres справится с правильными индексами.

Сколько стоит инфраструктура для ClickHouse — за что я плачу?

Если выбираем Yandex Managed ClickHouse: 5–25 тыс. ₽/мес за стандартную конфигурацию 2 vCPU / 8 GB / 200 GB. Для среднего бизнеса с миллиардом строк хватает кластера за ~12 тыс. ₽/мес. Если self-hosted — VPS на Timeweb Cloud или Selectel от 2 тыс. ₽/мес, но вся поддержка ложится на вашу команду. К этому добавляется моя работа по развёртыванию (от 100 000 ₽ разово) и сопровождение от 30 000 ₽/мес, если нужно.

Можно ли перенести в ClickHouse данные из 1С?

Да, через промежуточный слой. 1С выгружает данные в Postgres или в JSON-файлы по расписанию (это задача 1С-программиста), я настраиваю инкрементальный ETL из этого источника в ClickHouse. Обычная связка: 1С → выгрузка → S3 → Airflow или скрипт на Python → ClickHouse. Цикл синхронизации — от 15 минут до раза в сутки в зависимости от задачи. Самостоятельную доработку 1С я не делаю, но веду проект и общаюсь с подрядчиком от вас.

Безопасно ли хранить ПДн в ClickHouse в РФ?

Yandex Managed ClickHouse расположен в ЦОД на территории РФ — это соответствует 152-ФЗ по локализации ПДн. Самостоятельный self-hosted на сервере в РФ — тоже подходит. Дополнительно настраиваю: шифрование соединений (TLS), ролевая модель с минимальными правами, аудит логирования запросов, ограничение доступа по IP, бэкапы с AES-256 в Yandex Object Storage. Если нужна расширенная защита под уровень УЗ-2 или УЗ-1 — это уже отдельная задача с подрядчиком по ИБ.

Что делать, если ClickHouse тормозит на сложных запросах?

Девять из десяти случаев — проблема в схеме, не в железе. Часто вижу: PRIMARY KEY выбран неправильно, нет партиционирования по дате, агрегаты считаются на лету вместо materialized views, типы данных избыточны (String вместо LowCardinality). Беру задачу в формате «оптимизация» от 30 000 ₽: смотрю EXPLAIN-планы, переделываю критичные таблицы, добавляю проекции и materialized views. По опыту, такая работа ускоряет ключевые запросы в 10–50 раз без увеличения мощностей.

Обсудим проект?

Отвечу в течение 2 часов в рабочее время. Начнём с короткой диагностики — без обязательств.