ClickHouse Certified key terms
ClickHouse Certified · Get comfortable with the vocabulary.
- MergeTree
- Related: Data part, Primary key, Partition
The core ClickHouse table engine family. It stores rows sorted by a primary key, writes each insert as an immutable part, and merges parts in the background to keep read and storage costs bounded.
- Data part
- Related: MergeTree, Mutation, Merge
An immutable on-disk directory holding a sorted slice of a MergeTree table. Every insert creates one or more parts, and background merges combine them into larger parts.
- Primary key (sorting key)
- Related: Sparse index, Granule, ORDER BY clause
The ordered column list that defines how rows are physically sorted inside each part. ClickHouse builds a sparse index over it so queries can skip large ranges of data.
- Sparse index
- Related: Granule, Primary key (sorting key), Data skipping index
An index that stores one entry per block of rows (a granule) rather than per row. It is tiny, stays in memory, and lets ClickHouse locate candidate granules quickly before reading them.
- Granule
- Related: Sparse index, index_granularity, Data skipping index
The smallest unit of data read from a part, by default 8192 rows. The sparse index and most skipping indexes mark granules as matching or not, so reads happen in whole granules.
- Partition
- Related: Partition pruning, Data part, TTL
A named horizontal split of a MergeTree table, usually by month or day, stored as separate directories. Partitioning enables cheap dropping of old data and limits the scope of merges.
- Partition pruning
- Related: Partition, Data skipping index, EXPLAIN
Query-time elimination of whole partitions that cannot satisfy the partition-key filter. It avoids reading any granules in those partitions and is one of the largest performance wins in ClickHouse.
- Data skipping index
- Related: Granule, Sparse index, Partition pruning
An optional secondary index (min-max, set, bloom filter, ngram) that records summaries per granule so the reader can skip granules whose values cannot match the predicate.
- ReplacingMergeTree
- Related: CollapsingMergeTree, FINAL, MergeTree
A MergeTree variant that keeps only the row with the highest version value among rows sharing the same sorting key, deduplicating during merges rather than at insert time.
- CollapsingMergeTree
- Related: ReplacingMergeTree, Mutation, MergeTree
A MergeTree variant that stores a sign column of +1 or -1 and cancels row pairs with identical sorting keys during merges, implementing update and delete as appended rows.
- AggregatingMergeTree
- Related: Aggregate function state, Materialized view, SummingMergeTree
A MergeTree variant that merges rows with the same sorting key by combining their aggregate-function states, which is the basis of incremental materialized views for pre-aggregation.
- SummingMergeTree
- Related: AggregatingMergeTree, MergeTree, Materialized view
A MergeTree variant that replaces rows sharing a sorting key with a single row whose numeric columns hold the sum, useful for additive counters and simple rollups.
- Merge
- Related: Data part, Mutation, system.merges
A background process that reads several parts of a table, combines them into one sorted part, and removes the originals. Merges apply engine-specific logic such as deduplication or collapsing.
- Mutation
- Related: Lightweight delete, Data part, Merge
An asynchronous operation that rewrites existing parts to apply an UPDATE, DELETE, or column change. It is heavy compared with inserts and should be batched and monitored.
- Lightweight delete
- Related: Mutation, FINAL, ReplacingMergeTree
A DELETE statement that marks matching rows as deleted using a mask instead of rewriting parts immediately. The rows are filtered out on read and physically removed during later merges.
- FINAL
- Related: ReplacingMergeTree, Lightweight delete, Merge
A query modifier that forces ClickHouse to return fully merged results at read time, so ReplacingMergeTree, CollapsingMergeTree, and lightweight deletes are applied before the result is returned. It costs extra work.
- Materialized view
- Related: AggregatingMergeTree, Aggregate function state, Refreshable materialized view
A stored query that runs on inserts into a source table and writes its output into a target table, commonly used to maintain incremental aggregates or reshaped data automatically.
- Refreshable materialized view
- Related: Materialized view, AggregatingMergeTree
A materialized view that recomputes its full result on a schedule instead of on every insert. It suits expensive or non-incremental transformations and can replace its target atomically.
- Aggregate function state
- Related: AggregatingMergeTree, Materialized view, Approximate aggregate function
The serialized intermediate value of an aggregate function, such as a partial sum or a quantile sketch. Storing states with -State and combining them with -Merge enables incremental aggregation.
- Approximate aggregate function
- Related: Aggregate function state, uniqCombined
An aggregate that trades exactness for speed and memory, such as uniq for distinct counts or quantile for percentiles. Results are close estimates with bounded error rather than exact values.
- uniqCombined
- Related: Approximate aggregate function, Aggregate function state
ClickHouse's default approximate distinct-count function. It combines an array, a hash table, and a HyperLogLog sketch to give low error with small memory and fast merging.
- TTL
- Related: Partition, Merge, MergeTree
A table or column rule that automatically deletes, moves, or re-aggregates old data based on a time expression, applied during merges. It is the standard way to bound retention.
- Codec
- Related: LowCardinality, MergeTree
A per-column compression setting such as LZ4, ZSTD, Delta, DoubleDelta, Gorilla, or T64. Choosing codecs by data shape cuts storage and I/O substantially.
- LowCardinality
- Related: Codec, Nullable
A data type wrapper that dictionary-encodes a column with few distinct string values, storing small integer codes instead of repeated text and speeding up filtering and grouping.
- Nullable
- Related: LowCardinality, Data skipping index
A type wrapper that allows NULL in a column by storing a separate null mask. It adds overhead and complicates indexes, so it is often replaced by a default value plus a flag column.
- Distributed table
- Related: Shard, Replica, ClickHouse Keeper
A table that holds no data itself but routes reads and writes across a cluster to underlying local tables, providing a single logical view over sharded data.
- Shard
- Related: Distributed table, Replica, ClickHouse Keeper
One horizontal slice of a distributed dataset, held on its own set of servers. Sharding spreads data and query load, while the distributed table fans queries out and merges results.
- Replica
- Related: Shard, ClickHouse Keeper, ReplicatedMergeTree
A copy of a shard kept on another server for redundancy and read scaling. ReplicatedMergeTree replicas stay consistent by coordinating through ClickHouse Keeper.
- ClickHouse Keeper
- Related: Replica, ReplicatedMergeTree, Distributed table
The built-in coordination service compatible with ZooKeeper that stores replication metadata and leader election state. It is required for replicated tables and distributed DDL.
- ReplicatedMergeTree
- Related: ClickHouse Keeper, Replica, MergeTree
A MergeTree engine that keeps identical parts on multiple replicas by logging insert and merge operations in Keeper, so each replica fetches and applies the same changes.
- Vectorized execution
- Related: Columnar storage, Granule
Processing data in batches of column values rather than row by row, so the CPU runs tight loops over arrays and uses SIMD. This is a main reason ClickHouse scans fast.
- Columnar storage
- Related: Vectorized execution, Codec
Storing each column's values contiguously on disk instead of storing whole rows. It lets queries read only the columns they need and compresses similar values well.
- OLAP
- Related: Columnar storage, Vectorized execution
Online analytical processing: workloads that scan large volumes, aggregate many rows, and return few grouped results. ClickHouse is designed for this pattern rather than transactional point updates.
- EXPLAIN
- Related: Partition pruning, Data skipping index, Query log
A statement that shows the query plan or pipeline. EXPLAIN indexes = 1 reveals how many granules each part contributes and how many were skipped, which is essential for tuning.
- system.query_log
- Related: EXPLAIN, system.merges
A system table recording each executed query with duration, rows read, bytes read, memory usage, and errors. It is the primary source for finding slow or expensive queries.
- system.merges
- Related: Merge, Mutation, system.query_log
A system table listing merges and mutations currently in progress, including elapsed time, progress, and memory. It helps diagnose merge backlogs and stalled mutations.
- async_insert
- Related: Data part, Kafka table engine, Buffer table engine
A setting that buffers small inserts server-side and flushes them as larger batches, reducing the number of parts created by high-frequency streaming writers.
- Kafka table engine
- Related: async_insert, Materialized view, Buffer table engine
A table engine that consumes messages from Kafka topics. Combined with a materialized view it streams data into MergeTree tables, a common real-time ingestion pattern.
- Buffer table engine
- Related: async_insert, Kafka table engine
An in-memory engine that batches rows and flushes them into a destination table when thresholds are reached. It smooths bursts of small inserts but loses buffered data on restart.
- Row policy
- Related: Role, Quota
A filter attached to a user or role that is silently added to every query on a table, restricting which rows that principal can see.
- Role
- Related: Row policy, Quota
A named bundle of privileges that can be granted to users or other roles. Roles simplify access management and can be activated per session.
- Quota
- Related: Role, Row policy
A limit on resource usage per user or role over a time interval, such as query count, rows read, or execution time. Quotas protect shared clusters from runaway clients.
- ClickHouse Cloud
- Related: SharedMergeTree, ClickHouse Keeper
The managed ClickHouse service that runs compute in separated warehouses over shared object storage, handling scaling, backups, and upgrades while exposing standard SQL and HTTP interfaces.
- SharedMergeTree
- Related: ClickHouse Cloud, Data part, ClickHouse Keeper
The table engine family used in ClickHouse Cloud. Data parts live in object storage and metadata is coordinated separately, so compute nodes stay stateless and scale quickly.