メインコンテンツへスキップ

アトミック性

アトミック性とは、トランザクション (一連のデータベース操作) を、単一の不可分な単位として扱うことを保証する性質です。つまり、トランザクション内のすべての操作が実行されるか、まったく実行されないかのどちらかです。アトミックなトランザクションの例として、ある銀行口座から別の銀行口座へ送金する処理が挙げられます。送金の途中でいずれかの段階が失敗した場合、トランザクション全体が失敗し、お金は最初の口座に残ります。アトミック性により、お金が失われたり、新たに生じたりすることはありません。

ブロック

ブロックは、データ処理と保存を整理するための論理的な単位です。各ブロックには列指向データが含まれており、クエリ実行時のパフォーマンスを高めるためにまとめて処理されます。データをブロック単位で処理することで、ClickHouse は cache ミスを最小限に抑えつつ、ベクトル化実行を可能にし、CPU コアを効率的に活用します。ClickHouse は、LZ4、ZSTD、Delta などのさまざまな圧縮アルゴリズムを使用して、ブロック内のデータを圧縮します。

クラスター

データの保存と処理を行うために連携して動作するノード (サーバー) の集まり。

CMEK

顧客管理暗号鍵 (CMEK) を使用すると、お客様は自身の鍵管理サービス (KMS) のキーで ClickHouse のディスクデータキーを暗号化し、保存データを保護できます。

Dictionary

Dictionary は、さまざまな種類の参照リストで役立つキー・バリューの対応付けです。これは強力な機能であり、クエリ内で Dictionary を効率的に利用できます。多くの場合、参照テーブルに対して JOIN を使用するよりも効率的です。

分散テーブル

ClickHouse の分散テーブルは、データ自体は保存せず、クラスター内の複数のサーバーにまたがる分散クエリ処理のための一元的なビューを提供する特別なテーブルです。

グラニュール

グラニュールは、非圧縮ブロック内の複数の行をまとめた単位です。データの読み取り時、ClickHouseは個々の行ではなくグラニュール単位でアクセスするため、分析ワークロードでのデータ処理を高速化できます。グラニュールには、デフォルトで8192行が含まれます。プライマリインデックスには、グラニュールごとに1つのエントリがあります。

インクリメンタルmaterialized view

ClickHouse における materialized view の一種で、挿入時にデータを処理・集計します。新しいデータがソーステーブルに挿入されると、materialized view は新たに挿入されたブロックに対してのみ、あらかじめ定義された SQL の集計クエリを実行し、その集計結果をターゲットテーブルに書き込みます。

論理更新

ClickHouse の論理更新は実験的な機能で、標準的な SQL の UPDATE 構文を使ってテーブル内の行を更新できます。ただし、従来の mutation のようにカラム全体やデータパート全体を書き換えるのではなく、更新されたカラムと行のみを含む「パッチパート」を作成します。これらの更新は、パッチの適用によって SELECT クエリからすぐに見えるようになりますが、物理的なデータが更新されるのは、その後の merge 時のみです。

マークファイル

ClickHouse のマークファイルは、「marks (マーク) 」、つまり特定のデータ範囲がデータファイル内のどこに格納されているかを ClickHouse がすばやく特定するのに役立つ索引エントリを保存するファイルです。

materialized view

ClickHouse の materialized view は、データがソーステーブルに挿入される際に自動的にクエリを実行し、変換後または集計後の結果を別のターゲットテーブルに格納することで、クエリを高速化する仕組みです。

MergeTree

ClickHouse における MergeTree は、高いデータ取り込み性能と大規模データ向けに設計されたテーブルエンジンです。ClickHouse の中核となるストレージエンジンであり、列指向ストレージ、柔軟なパーティション化、スパースプライマリインデックス、バックグラウンドでのデータマージのサポートなどの機能を備えています。

ミューテーション

ClickHouse におけるミューテーションとは、通常、ALTER TABLE … UPDATE や ALTER TABLE … DELETE などのコマンドを使用して、テーブル内の既存データを変更または削除する操作を指します。ミューテーションは非同期のバックグラウンドプロセスとして実行され、行をその場で変更するのではなく、変更の影響を受けるデータパーツ全体を書き換えます。

オンザフライミューテーション

ClickHouse におけるオンザフライミューテーションは、更新や削除の内容を、ミューテーションの送信直後から以後の SELECT クエリに即座に反映できる仕組みであり、バックグラウンドのミューテーション処理が完了するのを待つ必要がありません。

パーツ

テーブルのデータの一部を格納する、ディスク上の物理ファイルです。これは、パーティションキーを使って作成される、テーブルデータの論理的な区分であるパーティションとは異なります。

パーティショニングキー

ClickHouse におけるパーティショニングキーは、テーブル作成時に PARTITION BY 句で定義する SQL 式です。これは、データをディスク上のパーティションに論理的にどのようにグループ化するかを決定します。パーティショニングキーの値ごとに個別の物理パーティションが形成されるため、パーティション全体の削除、移動、アーカイブといったデータ管理操作を効率的に実行できます。

主キー

ClickHouse では、主キーによってデータがディスク上に格納される順序が決まり、クエリのフィルタリングを高速化するスパースインデックスの構築にも使われます。従来のデータベースとは異なり、ClickHouse の主キーは一意性を保証しないため、複数の行が同じ主キー値を持つことがあります。

プロジェクション

ClickHouse のプロジェクションは、データを異なる順序で格納したり、事前に計算した集計結果を保持したりするための、非表示で自動的に維持されるテーブルです。特に、メインの主キーに含まれないカラムで絞り込むクエリの高速化に役立ちます。

リフレッシャブルmaterialized view

リフレッシャブルmaterialized viewは、データセット全体に対してクエリを定期的に再実行し、その結果をターゲットテーブルに格納するタイプのmaterialized viewです。インクリメンタルmaterialized viewとは異なり、リフレッシャブルmaterialized viewはスケジュールに沿って更新され、JOINやUNIONを含む複雑なクエリも制限なくサポートできます。

レプリカ

ClickHouseデータベースに保存されたデータのコピーです。冗長性と信頼性を高めるために、同じデータのレプリカをいくつでも持つことができます。レプリカはReplicatedMergeTreeテーブルエンジンと組み合わせて使用され、ClickHouseはこれにより異なるサーバー間で複数のデータコピーの同期を維持できます。

分片

データの一部です。ClickHouse では、データには常に少なくとも 1 つの分片があります。データを複数のサーバーに分割しない場合、データは 1 つの分片に格納されます。データを複数のサーバーに分片化することで、単一サーバーの処理能力を超える場合に負荷を分散できます。

スキッピングインデックス

スキッピングインデックスは、複数の連続したグラニュール単位で少量のメタデータを保持するために使用され、これにより ClickHouse は無関係な行をスキャンせずに済みます。スキッピングインデックスは、プロジェクションに代わる軽量な手段です。

ソートキー

ClickHouse では、ソートキーによってディスク上の行の物理的な並び順が定義されます。主キーを指定しない場合、ClickHouse はソートキーを主キーとして使用します。両方を指定する場合、主キーはソートキーのプレフィックスである必要があります。

スパースインデックス

プライマリインデックスが、単一の行ではなく行のグループごとに1つのエントリを持つ索引方式の一種です。行のグループに対応するエントリは、マークと呼ばれます。スパースインデックスでは、ClickHouse はまずクエリに一致する可能性のある行グループを特定し、その後それらを個別に処理して一致するものを見つけます。そのため、プライマリインデックスはメモリに読み込めるほど小さく保たれます。

テーブルエンジン

ClickHouse のテーブルエンジンは、データの書き込み、保存、アクセスの方法を定義します。MergeTree は最も一般的なテーブルエンジンで、大量のデータを高速に挿入でき、それらはバックグラウンドで処理されます。

有効期限 (TTL)

Time To Live (TTL) は、一定期間が経過すると、カラムや行を自動的に移動、削除、または集約する ClickHouse の機能です。これにより、頻繁にアクセスする必要のなくなったデータを削除、移動、またはアーカイブできるため、ストレージをより効率的に管理できます。
最終更新日 2026年6月10日