FFORGE//RS

DATA SYSTEMS / CLICKHOUSE FIELD LAB

Разложите данные. Защитите чтение.

Пишите ClickHouse SQL, запускайте его на детерминированном workload fixture и объясняйте стоимость layout, ingest и latest-state query.

● SEMANTIC MODEL READYClickHouse 26.3 LTS plannerdeterministic · client-side · no server claim

CASE / TYPES / PARTITION / ORDER BY

The table is the index

Основной запрос фильтрует tenant, event name и узкий time range. Retention удаляется помесячно, а повторная доставка одного event должна схлопываться по version. Исправьте DDL и физическую раскладку.

FIXTURE
64 tenants · 18 months · 16M events
TIMEBOX
24 min
TARGET
ClickHouse 26.3 LTS

01 / PHYSICAL CONTRACT

Какой инвариант нужен

Свести модельное чтение с 2 048 до 2 granules, не превращая tenant_id в высококардинальный partition key.

ORDER BY определяет физический порядок

MergeTree хранит sparse primary index поверх отсортированных granules. Сначала ставьте часто фильтруемые и хорошо отсекающие колонки; уникальную identity обычно оставляют в хвосте ключа.

PARTITION BY — прежде всего lifecycle boundary

ClickHouse не merge-ит parts между partitions. Месяц подходит для retention fixture, а tenant_id создаёт много разрозненных parts и ухудшает merge pressure.

SQL SURFACEBOUNDED MODEL
CREATE TABLE · column types · ReplacingMergeTree(version) · PARTITION BY · ORDER BY

02 / SQL

clickhouse-lab.sql

Инициализация ClickHouse SQL editor…
DETERMINISTIC PLANNERSQL · 16 KB · immutable fixture
GRANULES / PARTS / LATEST STATE

Запустите SQL. Model не является ClickHouse server и не обещает реальные latency или optimizer plans; она воспроизводимо проверяет ограниченные layout и delivery invariants.