はじめに
列指向データベースは、各カラムのデータを個別に格納します。これにより、任意のクエリで使用されるカラムについてのみ、ディスクからデータを読み取ることができます。その一方で、行全体に影響する操作は、それに応じてコストが高くなります。列指向データベースは、カラム指向のデータベース管理システムとも呼ばれます。ClickHouse は、このようなシステムの代表的な例です。
列指向データベースの利点
列指向データベースの主な利点は次のとおりです。
- 多数のカラムのうち、少数のカラムだけを使用するクエリに適している。
- 大量のデータに対する集約クエリに適している。
- カラム単位でデータを圧縮できる。
行指向データベースとカラム指向データベースの比較
以下は、レポート作成時における従来の行指向システムとカラム指向データベースの違いを示した図です。
従来の行指向

列指向

列指向データベースは、分析アプリケーションに適した選択肢です。テーブルに必要になるかもしれない多数のカラムをあらかじめ持たせておいても、読み取りクエリの実行時に未使用のカラム分のコストを負担せずに済むためです (従来の OLTP データベースでは、データはカラム単位ではなく行単位で格納されるため、クエリ時にすべてのデータを読み取ります) 。カラム指向データベースはビッグデータ処理やデータウェアハウジング向けに設計されており、多くの場合、低コストなハードウェアで構成された分散クラスターを使ってネイティブにスケールし、スループットを向上させます。ClickHouse では、distributed テーブルと replicated テーブルを組み合わせることで、これを実現しています。