データベース、もう少し掘り下げてみよう!「列指向データベース」と「データウエアハウス」と「Business Intelligence」

データベース、もう少し掘り下げてみよう!「列指向データベース」と「データウエアハウス」と「Business Intelligence」

先日、本コラムでもご紹介したデータベースの基本のお話がありましたが、今回は列指向データベースに少し踏み込んで、なぜカラムストアがでてきたのかという切り口から、データウエアハウスやBusiness Intelligenceについて紹介してみます!

業務/情報システムで使用される行指向データベース

先日、本コラムでご紹介したリレーショナルデータベースの基本の話の中で、列指向データベースと行指向データベースについての話がありました。(関連コラムはこちらから)
列指向のことを、カラムベース、カラムストア、行指向データベースはローベース、ローストアなどとも呼びます。

前述のコラムの中でも触れていますが、もともとリレーショナルデータベースは、データをテーブル(Excelの表のような)形式で、列(カラム)と行(ロー)で表現するデータベースですが、行方向で操作/格納する行指向が基本でした。そのため、さまざまな業務/情報システムがこの行指向型で作られており、システム内で使用するデータを格納する先として使われていました。

この行指向型のデータベースでは、操作の単位である行に対するアクセスの速度を上げるためには、テーブルにインデックス(索引)を作成します。インデックスはテーブルの列に対して作成し、その列の値とその値を持つ行の格納場所をポインタとして持たせる形が基本です。かつ列の値にアクセスしやすいように、その列の値で並び替えてあるのが特徴です。このような形をB-tree型インデックスと呼びます。図では顧客列に作成したインデックスを表します。

行指向におけるインデックスアクセス

アクセスにインデックスを使用することで、ピンポイントで単一の行にアクセスすることができます。結果、行単位でのアクセスを高速化できます。このため、行指向データベースは行単位または少数の行に対するアクセスを必要とする作業に向いているといえます。例えば、お客様にモノを販売する販売管理のシステムであれば、お客様への一回の販売ごとに手続きを行います。お客様からの見積依頼、注文があり、注文されたモノの在庫を確認し、お客様へ出荷し、お客様にモノに対する請求書を発行し、入金を確認する、といったような手続きがあります。このような処理では一度の手続きで大量のデータ、つまり行は必要ではありません。販売するお客様の情報、購入されたモノの情報に関連するデータ、行が必要になるだけです。このような業務/情報システムに行指向データベースは向いています。

分析作業に特化した列指向データベース

一方で、業務/情報システム内に蓄積されたデータを使用して、業務を分析するニーズが出始めました。最初は従来の行指向型の業務システム上で業務と並行して(またはシステムの使用率が低い時間帯などに)実施していましたが、業務/情報システムの使用率が上がったことにより分析作業の時間が取れなかったり、または同時に行うことで業務システムが遅くなったりすることから業務に影響が出てきたため、分析専用のシステムを導入する企業またはシステムが増えてきました。この分析作業を専用で行うシステム、その分析のデータを格納しているデータベースのことをデータウエアハウスなどといいます。

この分析専用のシステムを、従来の行指向型のデータベースのデータ構造で実現しようとしていましたが、分析の対象項目(例えば、売上データ、販売数量、在庫数など)を、分析の切り口項目(例えば、年、顧客、製品など)で見ようとすると、どうしても必要とする以上のデータを対象に検索する必要があります。そのため処理が遅くなってしまいます。

分析における列指向、行指向の特徴

大量データを読み取り、そのデータを分析する手続きを従来の行指向型で実施しようとすると、分析対象外の項目(カラム)を読み取ることになります。また、例えば、以下の図のように、ある製品の売り上げデータを集計したいときには、製品ごとにデータがまとまって格納されていないため、効率よくデータを読み取ることができません。このような、不要なデータの読み取りや、非効率な読み取りが原因で、アクセスや処理の速度が遅くなってしまい、分析結果を迅速に導き出すことができませんでした。これを解決する目的で列指向型が登場しました。

先日のコラムでも紹介しましたが、データを列(カラム、項目)ごとに格納しているデータベースです。このためピンポイントで必要な項目のみを読み取ることが可能になります。例えば、製品ごとの売り上げを分析したい、というときは、製品、売上の2項目のみ読み取ればよいことになります。その他の項目を読み取る必要がなくなります。

列指向でのアクセス例

Business Intelligenceと分析の必要性

元々はシステム内に蓄積されたデータを分析することを目的として、データウエアハウスが生まれてきました。もう1つデータウエアハウスと並んで使用される、Business Intelligenceという言葉があります。

データウエアハウスは分析のために用意されたデータベースまたはそのシステムのことを指すのが一般的です。一方Business Intelligenceは企業内外に蓄積された様々なデータを収集、分析して、知見を得ていくまでの一連の反復的な手続きのことを指しており、データウエアハウスはこのBusiness Intelligenceを行うための1つの手段という位置づけです。また、Business Intelligenceツールといった言葉もあり、分析やレポート作成を行うフロントエンドのツール群のことを表現します。

分析、と一口にいっても、現状の認識、問題点の洗い出し、といったものから、問題点の解決方法を見つけたり、そこから企業としての方針(たとえば、業務の改善計画、注力していく方向性、製品など)を決定したり、また、現状の状態から今後を予測したり、などさまざまです。

分析の対象データも、最初は、単一の業務システム上のデータでしたが、企業内にあるさまざまなシステムで蓄積されているデータをもまとめて分析するようになりました。また、近年ではビッグデータという言葉がでてきましたが、企業内のデータだけでなく、企業の外にある、例えばブログやソーシャルメディアネットワーク上の、企業や企業の製品についてのコメント、口コミ、といったようなデータも分析の対象にするようなこともニーズとしては高まってきています。ただ、企業の外にあるようなデータは、企業内の業務/情報システム内のデータベースに格納されたデータと違って、データベースのテーブルのように構造化されていない(非構造化データなどとも呼ばれます)データであったりします。

Business Intelligenceは企業内外に蓄積されたさまざまな形のデータをビジネスに活用することを目的とし、ここ近年では特にその重要性が高まっています。例えば、外食チェーンの店舗出店計画や、企業の製品のキャンペーンを実施する際に、どの地域に出店すれば集客が見込めるのか、どの製品をどのようにキャンペーンすれば、より販売数が増えるのか、など、分析によってより正確により確実に導き出すことができる可能性があります。

もはや情報は企業にとって資産の1つです。種類の異なる、大量のデータをなるべく速く分析し、意思決定につなげることが企業にとってより重要なポイントになります。これを行ううえで、列指向型のデータベースがより役立ってくるといえます。

列指向型での分析作業をより速く実行するためのキーワード

具体的な仕組みは、データベース製品によってさまざまですが、列指向データベースでより速く必要な分析を実行するための仕組みとしては以下のようなキーワードが関連しています。

アプライアンスでの販売

ハードウエアの機能をフルに利用するために、ハードウエアにプリインストールした形態で製品を提供します。こうすることで大容量のメモリや、高速なハードディスク、複数のCPUやコアや並列処理の機能が備わったマシンで動かすことが可能です。

インメモリデータベース

大量データをディスクに格納する形だと、ディスクI/Oを発行してデータを読み取る必要があります。インメモリ型のデータベースにすることでこのディスクI/Oをなくし、高速化を図ることができます。

圧縮機能

読み取るデータに対して、ディスクI/Oを少しでも減らすには、ディスク(インメモリの場合はメモリ)に格納するデータ量を減らすことが有効です。元々列指向に比べてカラムストアは同じデータ型のデータがまとめて格納されるため、圧縮がしやすく、かつ圧縮効率が上がりやすいという特徴もあります。各ベンダはさまざなな圧縮機能を使用して少しでもデータを少なくしています。

分析用エンジン、関数の提供

分析作業に特化したエンジンや関数を搭載することで、分析作業の効率化、高速化を図ることができます。

HadoopやMapRとの連携

分析の対象のデータがテーブルに格納できるような構造化されたデータであるとは限らないため、ビッグデータのような非構造データなどをより扱いやすくする仕組みと連携しています。

列指向型のデータベースの種類

現在主な列指向型のデータベース製品は以下のとおりです。

  • SAP HANA
    インメモリ型データベースです。元々アプライアンス製品でしたが、現在は認定ハードウエアであればインストール可能です。
  • SAP IQ (Sybase IQ)
    列指向型の元祖といえるのではないでしょうか?十数年前からあります。
  • IBM PureSystem for Analytics(旧製品名 Netezza)
  • HP Vertica
    いずれもハードウエアベンダが提供している、アプライアンス製品です。
  • Oracle Exadata
    行指向型で有名なOracleが出しているアプライアンス製品です。

以下は従来の行指向型に、列指向型も使用可能になったデータベース製品です。

  • Oracle
  • IBM DB2
  • MS SQL Server

まとめ

列指向、行指向の特徴や、分析の必要性についてまとめてみましたが、いかがでしょうか?分析自体はいろんなところで活用する可能性を秘めています。例えば、ご家庭の家計簿から家計診断、消費傾向を導き出し、無駄なコストを削減する手かがりを見つける、なんてことも分析の一つではないでしょうか?

記事は、予告なく変更または削除される場合があります。
記載された情報は、執筆・公開された時点のものであり、予告なく変更されている場合があります。
また、社名、製品名、サービス名などは、各社の商標または登録商標の場合があります。