スペシャル
データの活用・分析をよりスピーディーに
ビックデータ時代のビジネスに貢献するDB2 for i の機能拡張


img_bigtdata01

1983年にメインフレームで動くデータベース管理システムとして登場したDB2。時代のニーズを的確に捉えながら改良を重ね、四半世紀を経た今もなお、トランザクション処理や堅牢性という、システムを評価する重要な指標において業界随一のパフォーマンスを誇ります。

IBM i 、AS/400、iSeries、System i 向けに開発されたDB2 for iは、単独製品ではなく、IBM i の標準機能として提供され、面倒な導入セットアップをせずに使えるのが特徴です。

そうした優位性を維持しながら、「ビックデータ時代」ならではの「膨大なデータの活用」に対応したDB2 for i。迅速に情報分析と決断、変更をサポートする機能の一つが、IBM i 7.3からDB2の機能拡張としてサポートされた「システム期間テンポラル表」です。

システム期間テンポラル表でタイム・トラベル照会が容易に

IBM i 7.2まで、データの履歴の管理をする際、現行DBのデータと、履歴DBのデータを結合させるプログラムを開発する要がありました。IBM i 7.3からは、「システム期間テンポラル表」の機能が追加されたことにより、システムで自動的に管理することが可能に。例えば、「お客さまからの問い合わせ対応」などの目的で過去のある時点のデータを知りたいとき、「タイム・トラベル照会」も迅速にできるようになりました。

他にも、「1月1日から1月31日までのみ有効なキャンペーン価格を設定する」「7月31日時点での売上を集計する」など、業務では時間的要素を持つデータある場合に、この機能が威力を発揮します。アプリケーション・ロジックを必要とせず、時間的要素をDB2の機能として格納/蓄積して扱えるのが、「システム期間テンポラル表」です。

テンポラル表化すると、新規もしくは既存のテーブルに、3つのタイム・スタンプ列と1つのシステム期間が追加されます。履歴表(履歴テーブル)でも同じくタイム・スタンプ列を持つように定義され、テーブルの構造を変更する、ALTER TABLEステートメントによって、「システム期間テンポラル表」と履歴表が接続されます。

3つのタイム・スタンプ列とは、行が最初に登録された日時のタイム・スタンプ(ROW BEGIN列)と、行が「システム期間テンポラル表」のなかに最後に存在していた日時のタイム・スタンプ(ROW END列)、トランザクションの実行開始時間(TRANSACTION列)を指します。「システム期間テンポラル表」の行を更新・削除すると、古い行が履歴表にコピーされ保管されます。このため、過去のデータを抽出するのはもちろん、例えば、1年前の在庫状況と2年前の在庫状況を比較する…というように、2つの時点でのデータを即座に比較することも可能となりました。

ヒューマンエラーをカバーする監査機能、保存負荷低減のパーティション化機能

テーブルに監査列を追加する「監査機能」も強力な機能の一つ。これによって、行が削除されたときに追加の行が履歴表に挿入され、削除操作自体の情報が含まれます。ヒューマンエラーにより履歴が記録されないというミスを防ぐことができ、万が一管理上の問題が発生したときも、この情報を根拠に、責任の所在を明確にしたり、不審なアクティビティを調査したりできるというわけです。

このほか、システム期間テンポラル表と履歴表には、「パーティション化機能」も追加されました。この機能を使って一つの表を複数の区分に分割することで、区分単位でのアクセス・パフォーマンス向上を図ることができます。例えば、受注表(受注テーブル)を2010年~2015年などの年度のくくりでパーティション化し、また、アーカイブして不要になった2010年度分だけをデタッチすることなどが可能。履歴表をパーティション化することで、過去のデータの分離がしやすくなり、データの保管時間も短縮できるというメリットもあります。

売り上げ分析を強力にサポートするOLAP機能の進化

売上、経費などのビジネスデータを製品別、地域別、チャネル別などのように、複数の次元から分析するためのOLAP(OnLine Analytical Processing)機能は、IBM i にもビルトインで提供されています。

IBM i 7.3では、OLAP指定として、スカラー集約関数、OLAP集約関数、順序付けOLAP関数など、一挙に多数のOLAP用関数がサポートされました。集約関数としては、相関係数関数、共分散関数、パーセンタイル関数、中央値関数、回帰関数といった集約関数も使用可能となっています。

スカラー集約関数には、表計算でもよく使うSUMやCOUNTなどがあります。セグメントごとに売上合計を算出する際には頻繁に使われる関数の一つです。OLAP集約関数(First_Value, Last_Value, Nth_Value)は、例えば、地域の売上額を元に、売上1番の地域、売上2番の地域、売上1番の地域と、最も売上の低い地域との差分を求めるときなどに使用します。順序付けOLAP(Lag、Lead)とは、地域ごとの売上ランキングに、各順位の前後で、どれだけ売上の差があるのか求めるときに使う関数です。データを一旦取り出してから、別のところで計算する、といった面倒な工程がなくなるので、知りたい情報を即座に得ることができます。

ビジネスにおける「気づき」を増やすDBへ

ビジネス分析をおこなう際に、大いに役立つのが回帰関数。例えば、「マーケティング予算と売上に相関があるのか?」「相関は強いか弱いか」「マーケティング予算から売り上げを予測できるのか?」などの課題を、回帰関数を使って可視化することにより、マーケティングへの投資とそのリターンとしての売り上げ額を、高い精度で予測することが可能になります。

関連キーワード