列指向データベース管理システム
[Wikipedia|▼Menu]
.mw-parser-output .sidebar{width:auto;float:right;clear:right;margin:0.5em 0 1em 1em;background:#f8f9fa;border:1px solid #aaa;padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:75%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:720px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}

データベースモデル
基本的なモデル
階層
ネットワーク
関係
オブジェクト関係
オブジェクト
その他のモデル
多次元
スタースキーマ
XMLデータベース
列指向
Associative
Concept-oriented
.mw-parser-output .hlist ul,.mw-parser-output .hlist ol{padding-left:0}.mw-parser-output .hlist li,.mw-parser-output .hlist dd,.mw-parser-output .hlist dt{margin-right:0;display:inline-block;white-space:nowrap}.mw-parser-output .hlist dt:after,.mw-parser-output .hlist dd:after,.mw-parser-output .hlist li:after{white-space:normal}.mw-parser-output .hlist li:after,.mw-parser-output .hlist dd:after{content:" ・\a0 ";font-weight:bold}.mw-parser-output .hlist dt:after{content:": "}.mw-parser-output .hlist-pipe dd:after,.mw-parser-output .hlist-pipe li:after{content:" |\a0 ";font-weight:normal}.mw-parser-output .hlist-hyphen dd:after,.mw-parser-output .hlist-hyphen li:after{content:" -\a0 ";font-weight:normal}.mw-parser-output .hlist-comma dd:after,.mw-parser-output .hlist-comma li:after{content:"、";font-weight:normal}.mw-parser-output .hlist-slash dd:after,.mw-parser-output .hlist-slash li:after{content:" /\a0 ";font-weight:normal}.mw-parser-output .hlist dd:last-child:after,.mw-parser-output .hlist dt:last-child:after,.mw-parser-output .hlist li:last-child:after{content:none}.mw-parser-output .hlist dd dd:first-child:before,.mw-parser-output .hlist dd dt:first-child:before,.mw-parser-output .hlist dd li:first-child:before,.mw-parser-output .hlist dt dd:first-child:before,.mw-parser-output .hlist dt dt:first-child:before,.mw-parser-output .hlist dt li:first-child:before,.mw-parser-output .hlist li dd:first-child:before,.mw-parser-output .hlist li dt:first-child:before,.mw-parser-output .hlist li li:first-child:before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child:after,.mw-parser-output .hlist dd dt:last-child:after,.mw-parser-output .hlist dd li:last-child:after,.mw-parser-output .hlist dt dd:last-child:after,.mw-parser-output .hlist dt dt:last-child:after,.mw-parser-output .hlist dt li:last-child:after,.mw-parser-output .hlist li dd:last-child:after,.mw-parser-output .hlist li dt:last-child:after,.mw-parser-output .hlist li li:last-child:after{content:")\a0 ";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li:before{content:" "counter(listitem)" ";white-space:nowrap}.mw-parser-output .hlist dd ol>li:first-child:before,.mw-parser-output .hlist dt ol>li:first-child:before,.mw-parser-output .hlist li ol>li:first-child:before{content:" ("counter(listitem)" "}.mw-parser-output .navbar{display:inline;font-size:75%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}.mw-parser-output .infobox .navbar{font-size:88%}.mw-parser-output .navbox .navbar{display:block;font-size:88%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}









列指向データベース管理システムは、データベース管理システム (DBMS) の内部構造において、列のデータをひとまとまりにして取り出すときに効率的であるように設計されたものである。これはデータウェアハウスや図書館のカタログのように、大量の類似のデータ項目に対し集計が行われるものに対して有用である。[1]このアプローチはvalue-basedなストレージ構造を使用する行指向データベースや相関データベースと対比される。

列指向データベース管理システムは、一般的に「カラムナデータベース」 (Columnar Database) とも呼ばれる。
詳細

通常のDBMSシステムはひとつの行を構成する列データをひとまとまりとして格納する。これに対し列指向DBMSでは、列の値をまとめてファイルシステム上の近い場所に(あるいはひとまとまりの論理構造として)置くというアプローチがある。
利点

行指向データベースと列指向データベースを比較する際には、与えられた処理を行うためのハードディスクへのアクセスの効率性に着目する必要がある。処理時間の中でディスクのシーク時間は大きな割合を占める上、CPUの計算力の向上に対して、シーク時間は緩やかなペースでしか改善されない。以下に、データを行指向または列指向で配置する場合のトレードオフを挙げる。
列指向データベースは、大量の行に対する少数の列の集約処理が効率的である。列数が少ないほど、読み込むデータ量を減らすことができる。

列指向データベースは、全行に対する少数の列の一括更新が効率的である。新規に列データを作成し、以前のデータと置換することで、他の列へのアクセスを回避できる。

行指向データベースは、少数の行に対する多くの列の取得が効率的である。行あたりのサイズが小さい場合には、行全体を1度のディスクシークで読み取ることができる。

行指向データベースは、少数の行に対する多くの列の更新が効率的である。1行全体の書き出しを、1度のディスクシークで行うことができる。

実際の用途を考えると、行指向アーキテクチャはインタラクティブなトランザクションの多いOLTP的な用途に向いているのに対し、列指向アーキテクチャは少数の複雑なクエリを実行するデータウェアハウスのようなOLAP的な用途に向いている。
ストレージの効率とランダムアクセス

ある列に含まれるデータの型は一致しているので、行指向データベースでは難しいストレージ効率の最適化も、列指向データベースでは採用できる可能性がある。似た値が近い場所に配置されるため、繰り返しを効率よく圧縮できるLZWなどのデータ圧縮を適用できる余地がある。このような圧縮を行指向データベースに適用しても、列指向と比べて効率は劣る。特に列方向に同一の値が多数ある場合や、疎行列のように値が割り当てられていないフィールドの比率が高い場合には、圧縮効率は飛躍的に高まる。

一方、ランダムアクセス性能はトレードオフになる。ある1行の列全体を取得する場合には、行指向データベースのように、その行のデータを一箇所に集めて配置したほうが効率的である。列指向データベースで連続する値を圧縮している場合には、読み取りのたびに展開処理が必要になるため、ランダムアクセスは特に難しくなる。そのため、列指向データベースでは圧縮されたデータにアクセスする必要性を減らす機構が追加されている場合もある。[2].
実装

これまではSybase IQ(現SAP IQ)製品のみが列指向データベース管理システムとして広く利用されていた。しかし、過去数年に多くのオープンソースおよび商用の実装が出現した。又、2010年にSAPから列指向のインメモリーデータベース「SAP HANA」がリリースされたことを契機に、Oracle DatabaseやMicrosoft SQL Serverでも列指向のインメモリーデータベースに対応した有償オプションを選択できるようになった。[3][4][5]

列指向データベース管理システムの例として以下のものが挙げられる。

商用

SAP HANA

SAP IQ

Vertica およびその学術的オープンソース分岐であるC-Store

Valentina Database

Vectornova/Vectorstar High-speed Data Engine

kdb+

Sensage Scalable Log Server(旧Addamark)

1010dataの Tenbase database

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)"


オープンソースソフトウェア


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:21 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef