Local-first advisor для производительности ClickHouse
ClickAdvisor помогает DBA, data engineers и platform-командам находить рискованные SQL-паттерны до того, как они превратятся в production-инциденты, перерасход CPU/RAM и лишний cloud-cost. Рекомендации выдаёт проверяемый rule engine, а не LLM. AI используется как интерфейс через MCP — не как источник production-советов.
$ chadvisor analyze --sql query.sql --ch-version 25.3 ╭─ ClickAdvisor — Query Analysis Report ──────────────────╮ │ ClickHouse: 25.3 │ Rules: 119 │ Engine: deterministic │ ╰─────────────────────────────────────────────────────────╯ ● HIGH rule_id=R-001 tier=1A confidence=high Pattern: COUNT(DISTINCT user_id) Fix: uniqExact(user_id) (deterministic, semantically equivalent) ● HIGH rule_id=R-005 tier=1A confidence=high Pattern: toDate(event_time) = '2024-01-15' Impact: blocks primary key index → full-part scan Fix: event_time >= '2024-01-15' AND event_time < '2024-01-16' ● MED rule_id=D-003 tier=1B confidence=medium Pattern: SELECT * on wide MergeTree Findings: 3 · MCP tools: analyze_query · list_rules · detect_ch_version
Почему ClickAdvisor подходит для production и enterprise
Инструмент строится вокруг требований, которые обычно выдвигают DBA и security-команды: локальность, воспроизводимость, прозрачность и контроль над данными.
Local-first
Анализ выполняется на вашей машине. SQL и метаданные не покидают периметр — критично для банков, телекома и enterprise-контуров.
Zero data egress
Нет обязательных внешних вызовов. Работа с ClickHouse — только по указанному вами HTTP endpoint. Внешние LLM необязательны и полностью отключаемы.
Version-aware анализ
Правила учитывают версию ClickHouse: изменение поведения JOIN, projections, аналитических функций — всё это отражается в применимости правил.
Explainable findings
Каждая находка содержит rule_id, severity, tier, confidence, before/after и ссылку на документацию. Легко ревьюить и включать в code review / DBA review.
Безопасная интеграция с AI через MCP
AI-агент (Claude, Cursor и др.) вызывает ClickAdvisor как MCP-инструмент. Ответы формирует детерминированный движок, LLM только оформляет ответ пользователю.
Детерминированный core
Одинаковый SQL и версия CH → одинаковый набор findings. Никаких «сегодня одно, завтра другое» — важное свойство для production и аудита.
Что умеет ClickAdvisor
Три поверхности продукта — single-query, workload, MCP — над общим детерминированным движком правил.
Анализ одного SQL через CLI
chadvisor analyze --sql query.sql — быстрый разбор запроса локально: parsing → normalization → детерминированные правила → отчёт в console / JSON / Markdown.
Workload analyzer по query_log
CSV-экспорт из system.query_log группируется по normalized fingerprint. Считает executions, total/avg/p95 latency, read rows/bytes, memory и формирует очередь для DBA review.
Live workload через HTTP API
Подключение к ClickHouse через --connect: ClickAdvisor сам достаёт query_log, определяет версию сервера и применяет соответствующие правила.
MCP server для Claude / AI-клиентов
4 MCP-инструмента: analyze_query, analyze_query_json, list_rules, detect_ch_version. Работает в Claude Desktop, Cursor, Continue и совместимых MCP-клиентах.
Remote MCP endpoint (демо)
Публичный URL-based MCP-сервер позволяет протестировать ClickAdvisor из AI-клиента за минуту, без клонирования репозитория и локальной установки.
Local retrieval как вспомогательный слой
Поиск релевантных фрагментов документации подкрепляет findings ссылками, но не является источником рекомендаций — правила остаются первичными.
Реальная нагрузка, а не один SQL
ClickAdvisor умеет работать с целым query_log: определяет паттерны, которые чаще всего создают нагрузку, и превращает их в приоритизированный список для DBA. Это позволяет чинить не случайный запрос, а те, что реально жгут CPU, RAM и cloud-cost.
CSV из system.query_log
Выгрузите query_log за интересующий интервал и передайте CSV в ClickAdvisor — не нужно давать прямой доступ к кластеру.
Live через HTTP API
Подключитесь по --connect http://…:8123 — ClickAdvisor сам заберёт query_log и определит версию ClickHouse.
Группировка по fingerprint
Похожие запросы схлопываются в один шаблон: executions, total / avg / p95 latency, read rows / bytes, memory usage.
Top-N очередь для DBA review
Итог — понятный список самых «дорогих» шаблонов запросов с findings, готовый как задачник для оптимизации.
$ chadvisor workload \ --connect http://ch.prod:8123 \ --hours 24 --top 20 # Fetching query_log · 24h · grouping by fingerprint … # ClickHouse detected: 25.3 # Fingerprints: 4 812 · analyzed: top 20 ┌──── rank ── executions ── p95, ms ── read rows ── findings ─┐ #1 1 284 301 2 940 8.4B 3 high fingerprint: SELECT count(distinct user_id) … #2 402 118 1 610 2.1B 2 med fingerprint: SELECT * FROM events WHERE toDate(…) = ? #3 198 044 870 640M 1 med fingerprint: SELECT … JOIN … USING (event_date) … Queue exported → workload_review.md, workload.json
Подключите ClickAdvisor к вашему AI-клиенту
Доступно два режима: локальный MCP-сервер для полной изоляции и удалённый публичный endpoint для быстрого демо — без клонирования и установки.
Remote MCP endpoint
Быстрое демо · без установки
Публичный URL-based MCP-сервер. Подходит, чтобы за минуту попробовать 4 инструмента ClickAdvisor из любого MCP-клиента.
https://clickadvisor-mcp-production.up.railway.app/mcp{
"mcpServers": {
"clickadvisor": {
"url": "https://clickadvisor-mcp-production.up.railway.app/mcp"
}
}
}Локальный MCP-сервер
Полная изоляция · production-режим
Работает как локальный процесс — SQL и метаданные не покидают вашу машину. Правильный выбор для production и enterprise-контуров.
{
"mcpServers": {
"clickadvisor": {
"command": "poetry",
"args": ["run", "chadvisor", "mcp-server"],
"cwd": "/path/to/clickadvisor"
}
}
}Доступные MCP-инструменты
analyze_queryАнализ SQL, findings в человекочитаемом виде.
analyze_query_jsonТо же, но результат в структурированном JSON.
list_rulesСписок правил с severity, tier, версией CH.
detect_ch_versionОпределение версии ClickHouse по подключению.
Как это работает
Единый pipeline: от одного SQL до реальной production-нагрузки и AI-клиента через MCP.
Источник данных
Один SQL, CSV-выгрузка из system.query_log или live-подключение к ClickHouse по HTTP API.
Parsing + normalization
Запросы разбираются в AST и приводятся к нормализованному fingerprint для дедупликации и группировки.
Deterministic rule engine
119 ClickHouse-специфичных правил с фильтрацией по версии CH. Каждое правило описано (severity, tier, confidence).
Optional retrieval
К findings прикрепляются релевантные фрагменты документации — как справка, а не как источник рекомендации.
Workload grouping & DBA queue
Похожие запросы группируются, считаются агрегаты (executions, p95, memory) и формируется top-N очередь на DBA review.
Отчёт: CLI / JSON / Markdown / MCP
Единый отчёт с before/after и метаданными правил — для терминала, CI, документации или AI-агента через MCP.
Начать за минуту
Выберите сценарий: разовый анализ SQL, разбор реального workload или подключение AI-агента через MCP.
Клонируйте репозиторий, установите зависимости и запустите анализ одного SQL. Опциональный флаг --ch-version улучшает выбор правил.
git clone https://github.com/olyannaa/clickadvisor.git cd clickadvisor poetry install # Analyse a single query poetry run chadvisor analyze --sql query.sql --ch-version 25.3
Архитектура
Три пользовательские поверхности над общим детерминированным ядром.
Single-query advisor
CLI-разбор одного SQL с отчётом в console / JSON / Markdown.
Workload analyzer
query_log из CSV или через HTTP API → fingerprints → DBA queue.
MCP interface
Локальный или remote MCP-сервер для AI-клиентов и агентов.
Начните находить проблемы ClickHouse до продакшена
CLI, workload analyzer и MCP — в одном open-source инструменте.
Open source · Local-first · Zero data egress · MIT