Глоссарий курса «Витрины данных на ClickHouse»
Определения краткие, по делу и «с переводом на человеческий». Для каждого термина добавлены синонимы/английские названия, где уместно, и короткие примечания «зачем это».
А
A/B-тестирование (experimentation).
Контролируемые эксперименты над пользователями/событиями для оценки эффекта изменений. В курсе: бакетирование (детерминированный hash), SRM-чек, CUPED, отчётность в витринах.
AggregatingMergeTree (AMT).
Движок ClickHouse для хранения состояний агрегатов (…State). Запись — дешёвая (держим состояния), чтение — быстрое (…Merge).
Зачем: квантили/uniq/Top-K/минутные KPI без DISTINCT «на лету».
Риск: читать нужно через …Merge, а не пересчитывать заново; не путать с FINAL.
Агрегаты-состояния (…State/…Merge).
Паттерн: на записи считаем sumState/uniq*State/quantile*State, на чтении — sumMerge/uniq*Merge/quantile*Merge.
Риск: не смешивать со словом FINAL в ClickHouse (разные вещи).
Алиас-релиз (alias flip).
Два представления: vw_metric_v2 и алиас vw_metric. После dual-run переключаем алиас на v2.
Зачем: безопасные «жёлтые» релизы и мгновенный rollback.
ASOF JOIN.
Соединение «по ближайшему прошлому значению» (курсы валют «на дату», цены «на момент»).
Риск: нужен правильный ORDER BY/индексация по времени; для больших объёмов — pre-join/словарь.
Availability (доступность).
Доля успешных ответов (2xx) от BI/API/источников vw_*. Часть SLO.
Атрибуция (last/position/time-decay/Марков).
Методы распределения конверсии по каналам. В курсе — как семантические VIEW + тесты баланса.
Б
Backpressure.
Механизм «торможения» продьюсеров/консьюмеров при перегрузе (Kafka/ingest). В CH — укрупняем блоки, упрощаем MV, буферизуем в STAGE.
Баланс vs CORE/GL.
Сверка сумм/количеств витрин с «золотой правдой» (CORE/General Ledger). Должно быть в допуске (например, ≤0.2%).
Риск: разные календари/валюты — разводим VIEW и фиксируем в паспорте метрики.
Benchmark (бенч).
Воспроизводимый тест производительности: профили запросов, конкурентность, p95/ read_bytes. В курсе — P1/P2/P3 + mix.
BI-guardrails («гвардейки»).
Правила для BI: запрет FINAL, SELECT *, обязательные фильтры по времени, лимиты result_rows/result_bytes. Линтеры в CI + отчёты по query_log.
Bitmap-аудитории.
Хранение множеств пользователей AggregateFunction(groupBitmap, UInt64) и операции над ними (пересечения/объединения). Дёшево и быстро.
Bloom-фильтр (skip-индекс).
Побочный индекс для «пропуска» неинтересных кусков партиций. Эффективен на колоночных типах с высокой селективностью.
Риск: не лечит плохой ORDER BY.
Buffer (ENGINE=Buffer).
Буферная таблица для группировки частых мелких вставок в более крупные блоки для основной MergeTree.
Когда: если Kafka/MV дробит блоки слишком мелко.
В
VersionedCollapsingMergeTree.
Движок для логов изменений с версионностью (collapse по идентификатору/версии).
Когда: событийная модель «вставка/отмена/апдейт».
View / Materialized View (VIEW/MV).
VIEW — логическое представление (семантика vw_*); MV — потоковое вычисление «в таблицу».
Риск: «толстые» MV (дорогие функции) душат ingest — выносить в батчи.
vw_ (семантический слой).*
Шаблон именования семантических представлений, единственный источник чтения для BI/API.
Риск: любые сырые таблицы в BI — нарушение безопасности/стабильности.
Водяные знаки (watermarks).
Граница «минимально полной» свежести потока; решает, какие события считать в текущем окне, а что уйдёт в ретро-пересборку.
Воронка (funnel).
Последовательность конверсионных шагов (view → add_to_cart → purchase). В CH — ASOF/анти-JOIN паттерны, rolling окна.
Г
General Ledger (GL).
Главная книга/учёт: «золотая правда» для финансовых метрик.
В курсе: баланс vs GL — обязательный DQ-тест для FinTech/Retail.
Горячее окно (hot window).
Период данных, который должен жить на NVMe локально (30–180 дней). Старше — в S3 с кэшем.
Риск: «всё горячее» — дорого и тяжело для мерджей.
Границы SLO (красные линии).
Пороговые значения Freshness/Latency/Availability/DQ; при их нарушении — алерты, расходование error-budget и стоп-релизы.
Д
Data Contract.
Описанный и версионированный договор между CORE и MARTS (схемы, SLA, инкременты). В курсе — в паспортах метрик и CI.
Data Mart (витрина данных).
Слой агрегированных/денормализованных таблиц под аналитические задачи/BI/API.
Признаки: фиксированное зерно, стабильная схема, быстрые фильтры, семантика vw_*.
Data Product.
Внешний/внутренний продукт на базе витрин: версионированные API, SLO, квоты/кеш, аудит.
Data Steward.
Роль кураторства данных/метрик (владельцы паспортов, DQ, каталог).
dbt-docs / OpenMetadata / DataHub.
Инструменты каталога/дока/линейджа. В курсе: «док как код», превью в PR, связка с YAML/VIEW.
DDL/DML.
Определение и модификация данных (CREATE/ALTER vs INSERT/UPDATE). В курсе — SQL как код + CI.
Deduplication (дедупликация).
Удаление дублей событий по event_id/версии. Паттерн: ReplacingMergeTree(version) на STAGE + maxBy(version) в FACT.
Distributed table / Shard / Replica.
Горизонтальное масштабирование ClickHouse. Шард — разбиение данных, реплика — копия для отказоустойчивости.
DR-день (Disaster Recovery).
Тренировка восстановления: BACKUP/RESTORE, проверка RPO/RTO и smoke-тестов.
DQ (Data Quality).
Свежесть/полнота/корректность. Тесты: баланс vs CORE/GL, дубли зерна, плотность рядов, инварианты метрик.
Е
Error budget (бюджет ошибок).
Допустимый объём нарушений SLO в периоде. При исчерпании — стоп-релизы и фокус на устойчивость.
Ж
Жёлтый/зелёный релиз.
Классификация релизов: жёлтый — меняет формулы/схему/стоимость (требует особого процесса); зелёный — совместим, безопасен.
З
Защита PII: hash/bin/suppress.
Hash — необратимое хеширование (с солью), binning — огрубление диапазона, suppression — скрытие редких «клеток» (k-анонимность).
Зерно (grain).
Минимальный набор атрибутов, уникально идентифицирующий строку витрины (напр., day, shop_id, category_id).
Зачем: корректные агрегаты и тест на дубли.
И
Idempotency (идемпотентность).
Повторная запись (ретрай) не меняет результат. Достигается event_id+version и ReplacingMergeTree на STAGE.
Ingest-heavy / Read-heavy / Mixed.
Типы нагрузок: запись-центричная, чтение-центричная или смешанная. Влияют на sizing и дизайн.
Index skip (пропускной индекс).
См. Bloom/MinMax/TokenBloom — ускоряет пропуск кусков, не заменяет хороший ключ.
Incident Kanban.
Единый поток инцидентов (Open→Triage→Mitigate→Verify→Postmortem→Done) в Jira/Linear с шаблонами.
Interserver HTTPS.
Шифрование трафика между репликами (fetch/replication).
К
Kafka Engine (ENGINE=Kafka).
Таблица-источник для чтения из Kafka. Управляется kafka_num_consumers, kafka_max_block_size, kafka_group_name.
Риск: «тяжёлые» MV — залипание/лаг; используйте STAGE+батчи.
Keeper / Zookeeper.
Кворум-сервис для координации репликации и метаданных (в CH — ClickHouse Keeper).
Keyset-пагинация (seek-based).
Пагинация «по последнему ключу» вместо OFFSET; стабильна и не сканирует «всё до».
В курсе: WHERE (k1,k2,k3) > (last_k1,last_k2,last_k3) ORDER BY … LIMIT ….
K-анонимность.
Минимальная частота встречаемости комбинации квази-идентификаторов ≥ k. В API — suppression/агрегация.
Л
Lakehouse.
Общая платформа хранения/обработки, объединяющая DWH+Data Lake. В курсе — источник CORE, а ClickHouse — serving layer витрин.
Latency p95/p99.
Время ответа 95/99-го перцентиля — ключевой SLO для плиток/эндпоинтов.
Lineage (линейдж).
Зависимости данных: от источников к витринам/дашбордам. В курсе — парсинг SQL + каталоги.
Liquibase/Migra/dbt-clickhouse.
Инструменты миграций. В курсе — CD SQL и контроль схем.
LowCardinality.
Оптимизированный тип для колонок с небольшой кардинальностью. Уменьшает размер и ускоряет сравнения.
М
MAPE/PSI/z/MAD.
Метрики качества прогнозов/дрейфа: MAPE — ошибка прогноза, PSI — сдвиг распределения, z/MAD — аномалии. В курсе — мониторинг продвинутой аналитики.
Materialized View (MV).
Триггерная загрузка/агрегация «на запись» в таблицу-получатель.
Риск: чрезмерные вычисления в MV → ingest тормозит.
Merge / Part / Partition.
Часть — физический кусок таблицы, partition — логический раздел (обычно по дате), merge — фоновое объединение частей.
Антипаттерн: part-explosion — слишком много мелких частей.
MergeTree.
Базовый движок CH: партиции + key-упорядочение + колоночное хранение. Основа всех *MergeTree.
Metrics Layer (семантический слой).
Слой определений метрик (YAML+VIEW) с едиными формулами/календарями/валютами и версионированием.
Micro-batch (микробатч).
Небольшой пакет строк событий; в Kafka/CH настраивается через kafka_max_block_size/размер INSERT.
MTTA/MTTR.
Среднее время до реакции/восстановления при инцидентах.
Н
Nginx proxy_cache / limit_req.
Кеш на 30–300 с и троттлинг запросов к CH-бэкенду.
Риск: кэш-шторм — используйте TTL и ключ кэша с компонентой авторизации.
NRT (near-real-time).
«Почти в реальном времени»: витрины минутных KPI со свежестью 1–5 мин. В курсе — Kafka→staging→MV→agg_state→vw_*.
NRR/GRR.
Чистый/гросс retention-rate выручки (SaaS). Метрики изменений MRR: START/EXPANSION/CONTRACTION/CHURN.
NVMe.
Локальные быстрые SSD. Для «горячего окна» витрин.
О
OIDC/SSO/JWT.
Единый вход, токены и клеймы; в курсе — через API-шлюз или BI-коннекторы.
On-call.
Дежурство по сервису: расписание, triage-матрица, каналы, runbooks.
OpenAPI/Contract tests (golden).
Спецификация и тесты стабильно одинаковых ответов API. В курсе — «золотые» ответы и проверки схем.
ORDER BY / PRIMARY KEY.
Физический ключ упорядочивания/первичный ключ CH. Главный рычаг производительности чтения.
Антипаттерн: ключ, не соответствующий типовым WHERE → FULL SCAN.
П
Pagination OFFSET vs Keyset.
OFFSET плохо масштабируется; Keyset — быстрый, стабильный. См. «Keyset-пагинация».
Part-explosion.
Слишком много маленьких частей ⇒ мерджи захлёбываются, свежесть падает.
Лечение: укрупнить блоки, уменьшить консьюмеров, батчи.
PII (Personal Identifiable Information).
Идентифицирующие/чувствительные данные (P2), служебные (P1) и «без ограничений» (P0).
Практика: реестр, RLS/маски, TTL/retention, алерты.
Pipeline/EXPLAIN PIPELINE.
План выполнения запроса в CH: стадии, чтение, агрегации, слияния. Используем для профилирования.
POAS/ROAS.
P(Profit)OAS/Return On Ad Spend — окупаемость рекламы. В курсе — из атрибуции/витрин AdTech.
Projections.
Материализованные альтернативные раскладки данных внутри таблицы.
Риск: усложняют эксплуатацию; применять точечно под стабильные паттерны запросов.
Profiles/Quotas (settings profile/квоты).
Ограничители на пользователя/роль: время/память/строки/байты/потоки.
Риск: без профилей внешние клиенты «утопят» кластер.
Р
RACI.
Матрица ответственности (Responsible/Accountable/Consulted/Informed). В курсе — для ролей (ProdAnalytics/DWH/Platform/SRE).
RBAC (Role-Based Access Control).
Доступы по ролям. В курсе — роли api_reader/bi_reader/data_steward/sec_admin, гранты только на vw_*.
Readonly Production (семантика только чтение).
BI/API не имеют права писать/мутировать в прод; любые изменения только через CI/CD.
ReplacingMergeTree(version).
Удаляет дубликаты по ключу на стадии слияний (берёт запись с максимальной version).
Где: STAGE, иногда «SCD-снимки».
Replication / replication_queue.
Копирование частей между репликами; очередь — прогресс и лаг.
Риск: на ingest-пике может отставать — мониторим.
Report date vs Operation date (валюты).
Переоценка на дату отчёта vs курс на дату операции. Разделяем VIEW и фиксируем в паспорте.
Retro-окно.
Период, за который допускаем пересборку/коррекцию (опоздавшие события, правки формул).
Практика: ночные REPLACE PARTITION по окнам.
RLS (Row-Level Security).
Политики строковой безопасности (тенант/регион/портфель).
RPO/RTO.
Макс. потеря данных / время восстановления при аварии.
С
S3 (+ filesystem cache).
Объектное хранилище для «холода». В CH — диски типа S3 + кэш файловой системы.
Риск: «качели» латентности; держать «горячее» на NVMe.
SCD0/1/2.
Типы управления изменениями измерений: без историзации/с перезаписью/с версионированием интервалов.
SELECT * (запрещено).
Антипаттерн: ломает стабильность схем/производительность. Явно перечисляйте поля.
Semantic Layer (слой семантики).
См. vw_*. Единые формулы и определения для BI/API.
Settings Profile.
Набор лимитов/настроек, применяемых к пользователю/роли (см. Profiles/Quotas).
Skip-индексы.
См. Bloom/MinMax/TokenBloom.
SLA/SLO/SLI.
Обещание/цель/метрика. В курсе — свежесть, p95, доступность, DQ; отчётность + error-budget.
SQL-линтеры.
Автоматические проверки: запрет FINAL/SELECT *, обязательный фильтр по времени, лимиты. Часть CI.
SRM-чек.
Проверка равномерности распределения трафика в группах A/B (Statistical Ratio of Means).
Риск: перекос — эксперимент недействителен.
Storage policy / Disks & Volumes.
Политики хранения: hot/warm/cold, правила перемещения (TTL MOVE).
Streaming (Kafka→CH).
Потоковая загрузка событий в ClickHouse. В курсе — ENGINE=Kafka + STAGE + MV + agg_state.
SummingMergeTree.
Движок суммирования по ключу (со знаками). Осторожно с отрицательными/изменениями — проще AMT.
Т
Template-pack.
Конструктор, который завершаем на курсе: DDL/MV/VIEW-шаблоны, DQ, CI/CD, API, бенчи, калькулятор TCO, чек-листы.
Tiered storage.
Многоуровневое хранение (NVMe→warm→S3) по политике/TTL.
Time-decay (атрибуция).
Затухающее взвешивание вкладов каналов; реализация — веса по экспоненте.
Top-K.
Топ по метрике; в CH — topKState/topKMerge или ORDER BY … LIMIT … BY.
TPC-H/TPC-DS-like.
Наборы запросов-бенчмарков; в курсе — вдохновение для P1/P2/P3.
TCO (Total Cost of Ownership).
Полная стоимость владения: Compute + Storage + Network + Ops. В курсе — калькулятор и сценарные сравнения.
TTL (в CH).
Правила удаления/перемещения/обнуления по времени.
Риск: TTL не умеет «удалить только PII-поле» — делаем мутациями.
У
uniq (uniqExact/uniqHLL12/uniqCombined).*
Семейство функций COUNT DISTINCT. На больших объёмах — через uniq*State/uniq*Merge.
Риск: uniqExact на факте — тяжелый.
Устав запросов (query charter).
Руководство для внешних/BI-клиентов: обязательно from/to, без *, лимиты, пагинация по ключу, без FINAL, только vw_*.
Ф
FINAL (модификатор SELECT).
Принудительно «схлопывает» версии/подсказки движку, дорого.
Антипаттерн: запретить в прод-вьюхах/BI. Использовать только для разборов.
Freshness (свежесть).
Лаг между «сейчас» и последним обновлением витрины/вьюхи. В курсе — таблица sem_meta + SLO.
Filesystem cache.
Кэш файлов для S3-дисков. Обязателен при чтении «холода» в отчётах.
FX (курсы валют).
Конвертация валют «на дату операции» или «на дату отчёта». Словари/ASOF, фиксируем режим в паспорте метрики.
Х
Хеш-соль (mask_salt).
Секрет, добавляемый к PII перед хешированием. Хранится в секрет-менеджере; в CH прокидывается как setting.
Холод/тёплый слой (cold/warm).
Уровни хранения вне NVMe. Переводим по TTL/политике.
Ц
Цепочки ретро (side-by-side/overlay).
Пересборка в temp-таблице и REPLACE PARTITION в целевую.
Зачем: корректировать опоздавшие события и фиксы формул без полного пересчёта.
Целостность инвариантов (invariants).
Проверки «здравого смысла» метрик (CR∈[0,1], возвраты ≥ 0 и т. п.).
Ч
Чек-лист go-live.
Контроль перед продом: SLO/DQ зелёные, BI читает vw_*, профили/квоты включены, RLS/маски, TTL/retention, док-сайт/lineage, DR проверен.
Частота (cardinality).
Свойство колонок, влияющее на компрессию/индексацию/LowCardinality.
Ш
Шардирование (sharding).
Разделение данных по узлам. Требует продуманного ключа шардинга под WHERE/группировки и аккуратных Distributed-запросов.
Шлюз API (Nginx/Envoy/Kong).
Промежуточный слой с кешем, rate-limit, авторизацией, валидацией параметров, корреляцией запросов.
Э
EXPLAIN / EXPLAIN PIPELINE.
Объяснение плана запроса/конвейера выполнения. Используем для диагностики «дорогих» мест.
Ю
Юнит метрики (единицы измерения).
Определение «в чём меряем»: валюта, календарь, единицы (штуки/₽/%). Фиксируется в паспорте, иначе будут «две правды».
Я
YAML-паспорт метрики.
Файл-истина: владелец, версия, зерно, календарь/валюта, формула (SQL), допуски DQ, ретро-окно, changelog.
Зачем: единые определения, контроль изменений, автогенерация доков.