ClickHouse на VPS: аналитика и OLAP на своём сервере
Установка ClickHouse на VPS: колоночная БД для логов и аналитики, запросы, интеграция с Grafana. Когда нужен OLAP.
Краткий ответ: ClickHouse — колоночная СУБД для аналитики миллиардов строк. На VPS подходит для логов, метрик, event tracking. Минимум 4 GB RAM для production.
PostgreSQL и MariaDB — для OLTP (транзакции). ClickHouse — для OLAP (агрегации, отчёты, дашборды).
ClickHouse vs PostgreSQL vs Elasticsearch
| ClickHouse | PostgreSQL | Elasticsearch | |
|---|---|---|---|
| Тип | OLAP | OLTP | Search/Logs |
| Сжатие | Отличное | Среднее | Среднее |
| RAM | 4 GB+ | 2 GB+ | 4 GB+ |
| SQL | Да | Да | Нет (DSL) |
Для логов проще — Loki. ClickHouse — когда нужен SQL на больших данных.
Установка (Docker)
services:
clickhouse:
image: clickhouse/clickhouse-server
ports:
- "127.0.0.1:8123:8123"
volumes:
- ch_data:/var/lib/clickhouse
ulimits:
nofile: 262144
volumes:
ch_data:
На VPS 4+ GB RAM, SSD обязателен.
Создание таблицы
CREATE TABLE events (
ts DateTime,
user_id UInt64,
event String,
properties String
) ENGINE = MergeTree()
ORDER BY (ts, user_id);
INSERT INTO events VALUES (now(), 1, 'page_view', '{}');
SELECT event, count() FROM events GROUP BY event;
Импорт логов Nginx
# Парсинг access.log → INSERT
clickhouse-client --query "INSERT INTO nginx_logs FORMAT JSONEachRow" < parsed.json
Связка с Nginx логами и Grafana.
Безопасность
- bind только 127.0.0.1
- Пароль default user
- Не открывайте 8123 в интернет
- Fail2ban на Nginx перед CH
RAM и диск
| Данные | RAM | Диск |
|---|---|---|
| 10M events | 4 GB | 50 GB |
| 100M+ | 8 GB+ | 200 GB+ |
Бэкапы — Restic на volume.
Итог
ClickHouse на VPS — для аналитики без облачного BigQuery. Закладывайте RAM и SSD, не ставьте на 2 GB VPS.
VPS 4–8 GB — StormNet Cloud. Лёгкие логи — Loki.
Рекомендуем прочитать
Частые вопросы
Можно ли ClickHouse на VPS 2 ГБ?
Только для тестов. Production аналитика — от 4 ГБ RAM и SSD. Иначе OOM и медленные запросы.
ClickHouse или PostgreSQL для аналитики?
ClickHouse — для миллиардов строк и OLAP-агрегаций. PostgreSQL — для транзакций и умеренной аналитики.






