Перейти к основному содержимому
Перейти к основному содержимому

Глоссарий

Atomicity

Атомарность гарантирует, что транзакция (серия операций с базой данных) рассматривается как единое неделимое целое. Это означает, что либо все операции внутри транзакции выполняются, либо ни одна из них не выполняется. Пример атомарной транзакции — перевод денег с одного банковского счета на другой. Если какая-либо из стадий перевода завершится неудачей, транзакция не проходит, и деньги остаются на первом счете. Атомарность гарантирует, что деньги не теряются и не создаются.

Block

Блок — это логическая единица для организации обработки и хранения данных. Каждый блок содержит колонковые данные, которые обрабатываются вместе для повышения производительности во время выполнения запросов. Обрабатывая данные пакетами, ClickHouse эффективно использует ядра CPU, минимизируя промахи кэша и облегчая векторное выполнение. ClickHouse использует различные алгоритмы сжатия, такие как LZ4, ZSTD и Delta, для сжатия данных в блоках.

Cluster

Собрание узлов (серверов), которые работают вместе для хранения и обработки данных.

CMEK

Ключи шифрования, управляемые клиентом (CMEK), позволяют клиентам использовать свои ключи управления ключами (KMS) для шифрования ключа данных диска ClickHouse и защиты своих данных в состоянии покоя.

Dictionary

Словарь — это отображение пар ключ-значение, полезное для различных типов справочных списков. Это мощная функция, позволяющая эффективно использовать словари в запросах, что часто эффективнее, чем использование JOIN с справочными таблицами.

Distributed table

Распределенная таблица в ClickHouse — это особый тип таблицы, которая не хранит данные сама по себе, но предоставляет объединенный вид для распределенной обработки запросов на нескольких серверах в кластере.

Granule

Гранула — это пакет строк в несжатом блоке. При чтении данных ClickHouse обращается к гранулам, а не к отдельным строкам, что позволяет обеспечить более быструю обработку данных в аналитических нагрузках. По умолчанию гранула содержит 8192 строки. Первичный индекс содержит одну запись на гранулу.

Incremental materialized view

В ClickHouse это тип материализованного представления, который обрабатывает и агрегирует данные во время вставки. Когда новые данные вставляются в исходную таблицу, материализованное представление выполняет предопределенный SQL-запрос агрегации только для вновь вставленных блоков и записывает агрегированные результаты в целевую таблицу.

Lightweight update

Легковесное обновление в ClickHouse — это экспериментальная функция, позволяющая обновлять строки в таблице с использованием стандартного синтаксиса SQL UPDATE, но вместо переписывания целых колонок или частей данных (как в традиционных мутациях) она создает "патч-части", содержащие только обновленные колонки и строки. Эти обновления немедленно видны в запросах SELECT через применение патча, но физические данные обновляются только во время последующих слияний.

Materialized view

Материализованное представление в ClickHouse — это механизм, который автоматически выполняет запрос на данные по мере их вставки в исходную таблицу, сохраняя преобразованные или агрегированные результаты в отдельной целевой таблице для более быстрого выполнения запросов.

MergeTree

MergeTree в ClickHouse — это движок таблиц, предназначенный для высокой скорости ввода данных и больших объемов данных. Это основной движок хранения в ClickHouse, предлагающий такие функции, как колонковое хранение, пользовательское партиционирование, разреженные первичные индексы и поддержку фоновых слияний данных.

Mutation

Мутация в ClickHouse относится к операции, которая модифицирует или удаляет существующие данные в таблице, обычно с помощью команд, таких как ALTER TABLE ... UPDATE или ALTER TABLE ... DELETE. Мутации реализуются как асинхронные фоновые процессы, которые переписывают целые части данных, затронутые изменением, а не модифицируют строки на месте.

On-the-fly mutation

Мутации на лету в ClickHouse — это механизм, который позволяет обновлениям или удалениям быть видимыми в последующих запросах SELECT сразу после отправки мутации, без ожидания завершения фонового процесса мутации.

Parts

Физический файл на диске, который хранит часть данных таблицы. Это отличается от партиции, которая является логическим делением данных таблицы, создаваемым с использованием ключа партиционирования.

Partitioning key

Ключ партиционирования в ClickHouse — это SQL-выражение, определяемое в клаузе PARTITION BY при создании таблицы. Он определяет, как данные логически группируются в партиции на диске. Каждый уникальный значение ключа партиционирования формирует собственную физическую партицию, что позволяет эффективно выполнять операции управления данными, такие как удаление, перемещение или архивирование целых партиций.

Primary key

В ClickHouse первичный ключ определяет порядок, в котором данные хранятся на диске, и используется для построения разреженного индекса, что ускоряет фильтрацию запросов. В отличие от традиционных баз данных, первичный ключ в ClickHouse не обеспечивает уникальность — несколько строк могут иметь одно и то же значение первичного ключа.

Projection

Проекция в ClickHouse — это скрытая, автоматически поддерживаемая таблица, которая хранит данные в другом порядке или с предвычисленными агрегациями для ускорения запросов, особенно тех, которые фильтруют по колонкам, не входящим в основной первичный ключ.

Refreshable materialized view

Обновляемое материализованное представление — это тип материализованного представления, которое периодически повторно выполняет свой запрос для всего набора данных и сохраняет результат в целевой таблице. В отличие от инкрементных материализованных представлений, обновляемые материализованные представления обновляются по расписанию и могут поддерживать сложные запросы, включая JOIN и UNION, без ограничений.

Replica

Копия данных, хранящихся в базе данных ClickHouse. Вы можете иметь любое количество реплик одних и тех же данных для обеспечения избыточности и надежности. Реплики используются в сочетании с движком таблицы ReplicatedMergeTree, который позволяет ClickHouse поддерживать несколько копий данных в синхронизации на различных серверах.

Shard

Подмножество данных. ClickHouse всегда имеет как минимум одну шард для ваших данных. Если вы не разбиваете данные на несколько серверов, ваши данные будут храниться в одной шарде. Шардирование данных на несколько серверов может использоваться для распределения нагрузки, если вы превышаете возможности одного сервера.

Skipping index

Индексы пропуска используются для хранения небольших объемов метаданных на уровне нескольких последовательных гранул, что позволяет ClickHouse избежать сканирования нерелевантных строк. Индексы пропуска предоставляют легковесную альтернативу проекциям.

Sorting key

В ClickHouse ключ сортировки определяет физический порядок строк на диске. Если вы не укажете первичный ключ, ClickHouse использует ключ сортировки в качестве первичного ключа. Если вы укажете оба, первичный ключ должен быть префиксом ключа сортировки.

Sparse index

Тип индексации, когда первичный индекс содержит одну запись для группы строк, а не для одной строки. Запись, соответствующая группе строк, называется меткой. С помощью разреженных индексов ClickHouse сначала идентифицирует группы строк, которые потенциально соответствуют запросу, а затем обрабатывает их отдельно для поиска совпадения. Благодаря этому первичный индекс достаточно мал, чтобы его можно было загрузить в память.

Table engine

Движки таблиц в ClickHouse определяют, как данные записываются, хранятся и извлекаются. MergeTree — это наиболее распространенный движок таблиц, который позволяет быстро вставлять большие объемы данных, которые обрабатываются в фоновом режиме.

TTL

Time To Live (TTL) — это функция ClickHouse, которая автоматически перемещает, удаляет или сворачивает колонки или строки после определенного периода времени. Это позволяет более эффективно управлять хранилищем, так как вы можете удалять, перемещать или архивировать данные, к которым вам больше не нужно часто получать доступ.