データベースモデル
基本的なモデル
階層
ネットワーク
関係
オブジェクト関係
オブジェクト
その他のモデル
多次元
スタースキーマ
XMLデータベース
列指向
列指向データベース管理システムは、データベース管理システム (DBMS) の内部構造において、列のデータをひとまとまりにして取り出すときに効率的であるように設計されたものである。これはデータウェアハウスや図書館のカタログのように、大量の類似のデータ項目に対し集計が行われるものに対して有用である。[1]このアプローチはvalue-basedなストレージ構造を使用する行指向データベースや相関データベースと対比される。
列指向データベース管理システムは、一般的に「カラムナデータベース」 (Columnar Database) とも呼ばれる。 通常のDBMSシステムはひとつの行を構成する列データをひとまとまりとして格納する。これに対し列指向DBMSでは、列の値をまとめてファイルシステム上の近い場所に(あるいはひとまとまりの論理構造として)置くというアプローチがある。 行指向データベースと列指向データベースを比較する際には、与えられた処理を行うためのハードディスクへのアクセスの効率性に着目する必要がある。処理時間の中でディスクのシーク時間は大きな割合を占める上、CPUの計算力の向上に対して、シーク時間は緩やかなペースでしか改善されない。以下に、データを行指向または列指向で配置する場合のトレードオフを挙げる。 実際の用途を考えると、行指向アーキテクチャはインタラクティブなトランザクションの多いOLTP的な用途に向いているのに対し、列指向アーキテクチャは少数の複雑なクエリを実行するデータウェアハウスのようなOLAP的な用途に向いている。 ある列に含まれるデータの型は一致しているので、行指向データベースでは難しいストレージ効率の最適化も、列指向データベースでは採用できる可能性がある。似た値が近い場所に配置されるため、繰り返しを効率よく圧縮できるLZWなどのデータ圧縮を適用できる余地がある。このような圧縮を行指向データベースに適用しても、列指向と比べて効率は劣る。特に列方向に同一の値が多数ある場合や、疎行列のように値が割り当てられていないフィールドの比率が高い場合には、圧縮効率は飛躍的に高まる。 一方、ランダムアクセス性能はトレードオフになる。ある1行の列全体を取得する場合には、行指向データベースのように、その行のデータを一箇所に集めて配置したほうが効率的である。列指向データベースで連続する値を圧縮している場合には、読み取りのたびに展開処理が必要になるため、ランダムアクセスは特に難しくなる。そのため、列指向データベースでは圧縮されたデータにアクセスする必要性を減らす機構が追加されている場合もある。[2]. これまではSybase IQ(現SAP IQ)製品のみが列指向データベース管理システムとして広く利用されていた。しかし、過去数年に多くのオープンソースおよび商用の実装が出現した。又、2010年にSAPから列指向のインメモリーデータベース「SAP HANA」がリリースされたことを契機に、Oracle DatabaseやMicrosoft SQL Serverでも列指向のインメモリーデータベースに対応した有償オプションを選択できるようになった。[3][4][5] 列指向データベース管理システムの例として以下のものが挙げられる。
詳細
利点
列指向データベースは、大量の行に対する少数の列の集約処理が効率的である。列数が少ないほど、読み込むデータ量を減らすことができる。
列指向データベースは、全行に対する少数の列の一括更新が効率的である。新規に列データを作成し、以前のデータと置換することで、他の列へのアクセスを回避できる。
行指向データベースは、少数の行に対する多くの列の取得が効率的である。行あたりのサイズが小さい場合には、行全体を1度のディスクシークで読み取ることができる。
行指向データベースは、少数の行に対する多くの列の更新が効率的である。1行全体の書き出しを、1度のディスクシークで行うことができる。
ストレージの効率とランダムアクセス
実装
商用
SAP HANA
SAP IQ
Vertica およびその学術的オープンソース分岐であるC-Store
Valentina Database
⇒Vectornova/Vectorstar High-speed Data Engine
kdb+
⇒Sensage Scalable Log Server(旧Addamark)
1010data
⇒DataProbe
⇒EXASolution
Skytide XOLAP Server
⇒SuperSTAR from Space-Time Research
ParAccel Analytic Database
Dr.Sum EA
商用オープンソースソフトウェア
⇒Infobright (旧Brighthouse) data engine(MySQLと接続される)
⇒RC21 商用オープンソースソフトウェアプロジェクト
⇒Xplain Semantic Database(transposed filesと呼ばれる). "The latest release was version 5.8 (1999)"
オープンソースソフトウェア