2010年4月3日土曜日

列指向データベース(Columnar database )って何だ?

データウェアハウスを構築するにあたって問題になるのが、そのデータ量とパフォーマンスだと思います。
ハードウェアがどんどん安くなっているとはいえ、データ量が多くなればなるほど、バックアップの管理など
非常に大変になります。また、パフォーマンスも気になるところです。

そこで救世主となるが列指向データベース(Column oriented database / Columnar database)と言われる
データベースです。じゃ、列指向データベースって何でしょうか。
OracleやSQL Serverなどのリレーショナルデータベースは行指向データベースといわれ、内部的にデータを
行単位で保持しております。列指向データベースは内部的にデータを列単位で保持しています。

じゃ、列指向でデータを保持すると何がいいのでしょうか。実は列でデータを保持すると、大量データの
検索のスピードが劇的に向上します。また、データの圧縮が非常に効率よくできます。
そのかわり、データの更新などは効率がわるくなりますので、過去のデータを分析するデータウェアハウスなどに
非常に向いている技術といえます。
列指向データベースで有名なのはサイベースのSybase IQでしょう。
現在ではOpen sourceなどの列指向データベースなどが結構リリースされています。
私が注目しているところではMySQLのストレージとして利用できるInfobright, InfiniDBです。

列指向データベースについては下記Wikipediaに詳しい説明があります。
Column-oriented_DBMS

0 件のコメント:

コメントを投稿