TOPサーバ構築・運用> 多次元クラスタリング〜パフォーマンスに効く!
DB2 9
DB2 9の全貌

第2回:大規模データベースでも威力発揮!

著者:日本アイ・ビー・エム  岡口 純子   2007/7/31
前のページ  1  2  3  次のページ
多次元クラスタリング〜パフォーマンスに効く!

   もう1つのDB2 9のパーティション機能に多次元クラスタリング(MDC)というものがあります。これは1つの表を複数の次元の属性に合わせてデータを格納する方法です。これは、例えば図3のように年月・製品・地域という次元を指定した場合、2007年7月東京でのDB2の売上は、セルと呼ばれる同じ場所に格納されます。
多次元クラスタリング(MDC)
図3:多次元クラスタリング(MDC)
(画像をクリックすると別ウィンドウに拡大図を表示します)

   従って、2007年7月の売上を照会したいのであれば、年月の次元で2007年7月に存在するセルだけ(図3では4つのセル)を読めばいいことになります。

   この機能のメリットは、主に以下の3つがあげられます。

次元別検索によるパフォーマンス向上
次元の対象データのみの部分アクセスで効率がよいため
データ並べ替えを目的とした再編成不要
同じ属性の値は同じ場所に格納されているので、そもそもデータが乱れない
削除のパフォーマンスアップ
次元に指定した年月単位で削除する場合、セルをリリースだけでDELETEが完了するので非常に高速

表2:DB2 9のパーティション機能のメリット

   MDCの定義と運用は簡単に行うことができます。

作成SQL例:
   CREATE TABLE MDC1 (
Date DATE,地域 CHAR(10),製品 VARCHAR(10),
年月 generated always as (INTEGER(Date)/100), ... )
   ORGANIZE BY DIMENSIONS (年月, 地域, 製品)

   上のリストのように表作成時にORGANIZE BY DIMENSIONSの後に列名を指定するだけで、DB2が属性に応じて自動的にデータを格納します。例えば新たに2007年8月のデータがInsertされたら、その時に新しいブロックをアロケーションし、そこに2007年8月のデータを格納していくので、表定義のメンテナンスが一切不要です。

   履歴型でデータが増えながらも、このMDC表で「製品別」といった何らかの単位で集計されることが多い明細表などを作成することで、集計バッチを高速にすることも可能といえるでしょう。


データベース・パーティショニング〜スケーラビリティに効く!

   このほかにもDB2 9には、複数のデータベースサーバをあたかも1つのサーバのように仮想化し、並列処理を行うDFPというパーティショニング(DPF)機能があります。

Database Partitioning Feature(DPF)
図4:Database Partitioning Feature(DPF)
(画像をクリックすると別ウィンドウに拡大図を表示します)

   これはハッシングにより、データを複数のデータベースサーバ間で均等に分散して持ちます。どのサーバに接続してリクエストを出しても、それぞれ自分のデータを処理したうえでマージして返してくれますので、同じ結果が戻ります。

   この際、クライアントはデータの存在場所を意識することはありません。なぜならDB2が自動的にそのデータが存在するDBサーバにSQLのリクエストをホッピングにより実現しているからです。

   これは大量データを並列処理したい時に非常に便利なグリッド機能といえます。つまり、データ容量が増えた場合やより性能を高くしたい時はパーティション数を増やすことで並列度を高め、性能を維持・向上できるので、スケーラビリティのある構成を構築する際に利用することが可能です。


ハイブリッド・パーティショニング〜組み合わせてさらに効く!

   今まで説明してきた3つのパーティションの機能は排他的なものはありません。それらを組み合わせて利用することにより、より大規模なシステムのパフォーマンスを維持し、運用を容易にしながら、スケーラビリティを確保して構築することが可能なのです。

前のページ  1  2  3  次のページ


日本アイ・ビー・エム株式会社 岡口 純子
著者プロフィール
日本アイ・ビー・エム株式会社  岡口 純子
データサービス・テクニカル・セールス所属
お客様担当SEからSIプロジェクトでのインフラ・DBを中心に構築経験を経て、現在はDB2の技術支援(設計支援、パフォーマンス・チューニング、案件サポートなど)を実施中。現場が楽になることを願い、経験からの実践的なセミナーを多く開発し、講師もしている。


INDEX
第2回:大規模データベースでも威力発揮!
  DB2 9で機能拡張された新機能とは?
多次元クラスタリング〜パフォーマンスに効く!
  データ圧縮