メインコンテンツまでスキップ
メインコンテンツまでスキップ

用語集

Atomicity

Atomicityは、トランザクション(データベース操作の一連の処理)が単一の不可分な単位として扱われることを保証します。つまり、トランザクション内のすべての操作が実行されるか、または全く実行されないかのいずれかです。原子トランザクションの例は、銀行口座から別の銀行口座へのお金の移動です。転送のどちらかのステップが失敗した場合、トランザクションは失敗し、お金は最初の口座に留まります。Atomicityはお金が失われたり作成されたりしないことを保証します。

Block

ブロックは、データ処理とストレージを整理するための論理単位です。各ブロックは、クエリ実行中のパフォーマンスを向上させるために一緒に処理される列指向データを含んでいます。ClickHouseは、データをブロックで処理することにより、CPUコアを効率的に活用し、キャッシュミスを最小限に抑え、ベクトル化された実行を促進します。ClickHouseは、LZ4、ZSTD、Deltaなどのさまざまな圧縮アルゴリズムを使用して、データをブロック内で圧縮します。

Cluster

データを保存および処理するために協働するノード(サーバー)のコレクションです。

CMEK

Customer-managed encryption keys (CMEK)は、顧客が自分のキー管理サービス(KMS)キーを使用してClickHouseのディスクデータキーを暗号化し、データを静止状態で保護できるようにします。

Dictionary

ディクショナリーは、さまざまな種類の参照リストに役立つキー-バリュー対のマッピングです。クエリでのディクショナリーの効率的な使用を可能にする強力な機能であり、参照テーブルとのJOINを使用するよりも効率的です。

Distributed table

ClickHouseの分散テーブルは、データを自身で保存しない特別なタイプのテーブルであり、クラスター内の複数のサーバーで分散クエリ処理のための統一されたビューを提供します。

Granule

グラニュールは、非圧縮ブロック内の行のバッチです。データを読み取る際に、ClickHouseは特定の行ではなくグラニュールにアクセスし、これにより分析作業負荷でのデータ処理が高速化されます。グラニュールにはデフォルトで8192行が含まれます。主インデックスは、グラニュールごとに1つのエントリを含みます。

Incremental materialized view

ClickHouseのインクリメンタルマテリアライズドビューは、挿入時にデータを処理および集計するタイプのマテリアライズドビューです。ソーステーブルに新しいデータが挿入されると、マテリアライズドビューは新しく挿入されたブロックに対して事前定義されたSQL集計クエリを実行し、集計結果をターゲットテーブルに書き込みます。

Lightweight update

ClickHouseの軽量更新は、実験的な機能であり、標準SQL UPDATE構文を使用してテーブルの行を更新できるが、従来の変更と異なり、全体のカラムやデータパーツを再書き込みするのではなく、更新されたカラムと行のみを含む「パッチパーツ」を作成します。これらの更新はパッチの適用を通じてSELECTクエリに即座に表示されますが、物理データは後続のマージ中にのみ更新されます。

Materialized view

ClickHouseのマテリアライズドビューは、データがソーステーブルに挿入されると自動的にクエリを実行し、変換または集計された結果を別のターゲットテーブルに保存するメカニズムです。これは、クエリの速度を向上させるためのものです。

MergeTree

ClickHouseのMergeTreeは、高いデータ取り込み率と大規模なデータボリューム用に設計されたテーブルエンジンです。これはClickHouseのコアストレージエンジンであり、列指向ストレージ、カスタムパーティショニング、スパース主インデックス、バックグラウンドデータマージのサポートなどの機能を提供します。

Mutation

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

On-the-fly mutation

ClickHouseのオンザフライミューテーションは、ミューテーションが提出された後、バックグラウンドミューテーションプロセスが完了するのを待たずに、次のSELECTクエリでの更新または削除を即座に可視化できるメカニズムです。

Parts

テーブルデータの一部をディスクに保存する物理ファイルです。これは、パーティションとは異なり、パーティションキーを使用して作成されたテーブルデータの論理的な分割です。

Partitioning key

ClickHouseのパーティショニングキーは、テーブルを作成する際にPARTITION BY句で定義されるSQL式です。これは、データがディスク上でどのように論理的にグループ化されるかを決定します。パーティショニングキーの各ユニークな値は独自の物理パーティションを形成し、全体のパーティションを削除、移動、またはアーカイブするなどの効率的なデータ管理操作を可能にします。

Primary key

ClickHouseでは、主キーはデータがディスク上に保存される順序を決定し、クエリフィルタリングを高速化するためのスパースインデックスを構築する際に使用されます。従来のデータベースとは異なり、ClickHouseの主キーはユニーク性を強制しません。複数の行が同じ主キー値を持つことができます。

Projection

ClickHouseのプロジェクションは、異なる順序でデータを保存したり、事前計算された集計を用いてクエリを高速化するための隠された自動維持テーブルです。特に、主キーではないカラムでフィルタリングを行うクエリに対して効果があります。

Refreshable materialized view

リフレッシュ可能なマテリアライズドビューは、定期的に全面的なデータセットでそのクエリを再実行し、結果をターゲットテーブルに保存するタイプのマテリアライズドビューです。インクリメンタルマテリアライズドビューとは異なり、リフレッシュ可能なマテリアライズドビューはスケジュールに基づいて更新され、JOINやUNIONを含む複雑なクエリを制約なくサポートできます。

Replica

ClickHouseデータベースに保存されたデータのコピーです。同じデータのレプリカを任意の数だけ持つことができ、冗長性と信頼性を向上させます。レプリカは、データの複数のコピーを異なるサーバー間で同期させることを可能にするReplicatedMergeTreeテーブルエンジンと共に使用されます。

Shard

データのサブセットです。ClickHouseには常にデータのために少なくとも1つのシャードがあります。データを複数のサーバーに分割しない場合、データは1つのシャードに保存されます。データを複数のサーバーにシャーディングすることで、単一のサーバーの容量を超える場合の負荷を分散できます。

Skipping index

スキッピングインデックスは、複数の連続したグラニュールレベルでのメタデータを少量保存するために使用され、ClickHouseは関連性のない行のスキャンを回避できます。スキッピングインデックスは、プロジェクションの代わりに軽量な選択肢を提供します。

Sorting key

ClickHouseでは、ソーティングキーはディスク上の行の物理的な順序を定義します。主キーを指定しない場合、ClickHouseはソーティングキーを主キーとして使用します。両方を指定した場合、主キーはソーティングキーのプレフィックスでなければなりません。

Sparse index

主インデックスが単一の行ではなく行のグループごとに1つのエントリを含むインデックスの一種です。行のグループに対応するエントリはマークと呼ばれます。スパースインデックスを使用すると、ClickHouseは最初にクエリに一致する可能性のある行のグループを特定し、それらを別々に処理して一致を見つけます。そのため、主インデックスはメモリに読み込むのに十分な小ささになります。

Table engine

ClickHouseのテーブルエンジンは、データの書き込み、保存、およびアクセス方法を決定します。MergeTreeは最も一般的なテーブルエンジンで、大量のデータを迅速に挿入し、バックグラウンドで処理することを可能にします。

TTL

Time To Live (TTL)は、ClickHouseの機能であり、特定の時間が経過した後にカラムや行を自動的に移動、削除、またはロールアップします。これにより、頻繁にアクセスする必要がないデータを削除、移動、またはアーカイブすることでストレージをより効率的に管理できます。