Infobrightエンタープライズ版でのスキーマ最適化

| | コメント(0) | トラックバック(0)
ビックデータ分析において、列指向DBエンジンとナレッジグリッドを持つInfobrightエンタープライズ版(IEE)は大変有効に機能します。IEEの性能は他のカラム型製品と同様に標準的な行指向のDBと比較して圧倒的です。
programming-code-data.png

MySQL,Oracle,SQLServer等のような従来のデータベース技術を利用する場合、データベース管理者と設計者が最適なDBモデルを定義するために協業します。
これらのソリューションでは多くの場合スタースキーマ又はスノーフレークスキーマを適応するでしょう。この構造により冗長性の削減ができ、参照整合性と最適なキー設定を意識しつつパフォーマンスの最適化を図れます。従来型DBではこれらの設計が安定的基盤として最適ですが、IEEの場合、多少異なる場合があります。

IEEでは、よりフラットな設計が最適となる場合が多くの事例で見受けられます。
IEEが持つ圧縮性能やデータの冗長性と列の増加がディスク容量に影響を与えにくい特性を考慮すると、よりフラットなDB設計にしても他のDB製品に比較して大幅に少ない総物理ストレージ容量で収まるからです。
またIEEのナレッジグリッドアーキテクチャによって、すべてのカラム(列)が多くのクエリに最適化されたインメモリ構造に配置されます。

行ベースのDB製品または他の列ベースのDB製品からIEEへの移行を検討されている場合、以下の3つのよくある質問をご確認下さい。

1)データはSQLのupdate文で更新されますか?
  分析系システムの場合、多くの場合、静かに変化する次元
  (SCD:Slowly Changing Dimensions)にたいする考慮が必要です。
  例えば顧客の引っ越しにともなう地域の変更などです。これらへの配慮が必要な場合はファクトテーブルにすべてを集めるのでなく、ディメンジョンテーブルを持つ設計となります。
2)スタースキーマを推奨するキューブやBIツールを利用予定ですか?
  ある種のBIツールはスタースキーマを必須要件としています。
  Pentahoのようなツールでは設定によりよりフラットな設計でもキューブやアドホックな検索の実装が可能になっており、IEEの設計が柔軟になります。
3)データの特性として1つの行にすべての項目を入れることができますか?
  MySQLをベースとするInfobrightの場合、各行の最大は64kバイトです。
  多くの場合問題ありませんが、フラット化する場合に念頭に入れて下さい。


ファクトテーブルと2つのディメンジョンテーブルの例

 Database.fact_skinny (  Date datetime,  Id int,  Browser varchar(30),  Customer_id int,  Response varchar(10)  ) ENGINE=BRIGHTHOUSE   Database.dim_date (  Date datetime,  DayOfWeek int,  DayOfMonth int,  DayOfYear int,  HourOfDay int,  MinOfHour int,  SecOfMin int  ) ENGINE=BRIGHTHOUSE   Database.dim_customers (  Customer_ID int,  Fname varchar(20),  Lname varchar(20),  Address varchar(30),  SSN int  ) ENGINE=BRIGHTHOUSE  
T

フラット化する例:
このモデルではdim_dateの更新はないことが前提です。
(データロード後はupdate文は使用しない。dim_customersも同様です)

 Database.fact_wide (  Date datetime,  Id int,  Browser varchar(30),  Customer_id int,  Response varchar(10),  DayOfWeek int,  DayOfMonth int,  DayOfYear int,  HourOfDay int,  MinOfHour int,  SecOfMin int,  SSN int  ) ENGINE=BRIGHTHOUSE   Database.dim_customers (  Customer_ID int,  Fname varchar(20),  Lname varchar(20),  Address varchar(30)  ) ENGINE=BRIGHTHOUSE

フラット化した構造のメリットはパフォーマンスの大幅向上です。
BIツールや検索系フロントシステムがDB構造に柔軟であれば、ぜひ比較検討下さい。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Infobrightエンタープライズ版でのスキーマ最適化

このブログ記事に対するトラックバックURL: http://www.blog.infobright-partner.jp/mt/mt-tb.cgi/346

コメントする