PR

Oracle ExadataによるDWH高速化

2009年10月28日(水)
井上俊子

Oracle Exadata V2で高速化機能を強化

 米国では先日、Oracle Database 11g Release 2(以下、11gR2)がリリースされ、ベース部分にこの11gR2を採用したモデルとして、Oracle Exadata V2も発表されました。

 以下では、Oracle Exadata V2で追加された新機能のうち、高速化としてのポイントとなる機能について説明します。

■データの圧縮

 近年、ディスクI/Oの高速化の手段として、読み書きするデータ自体を圧縮して小さくするという方法が、(データ圧縮/伸長の処理を行う)CPUの高性能化によって有効になってきました。

 Oracle Database 11gR1では、オプションのAdvanced Compression Optionを使うことで、通常のINSERT、UPDATE、DELETEの処理においてデータ圧縮を行うことが可能となり、DWHに限らずOLTP(オンライントランザクション処理)でもデータ容量削減とパフォーマンス向上のメリットを享受できるようになりました。

 一方、DWHでの検索処理を考えてみると、ほとんどの場合、多数の列データのうちのほんの一部の列のみにアクセスするクエリです。よって、列ベースのアクセスが可能になれば、データとしてはFull Scanになってしまう処理でも、不要な列データへのディスクI/Oを無くし、必要な列データのみのアクセスとすることができます。

 Oracle Exadata V2でこれを可能とした機能が、「Exadata Hybrid Columnar Compression」です。これまで行ベースでブロックに格納してきたデータを、列ごとに格納し、圧縮を行います。

 表は数千行ごとにCompression Unitと呼ばれる単位で管理され、Compression Unitには列単位でデータが格納&圧縮されます。この圧縮には2種類の圧縮モード、すなわちDWHアクセス時のスピードを重視した「Query Mode」と、データの長期保存向けにストレージ容量の圧縮率を重視した「Archival Mode」があり、目的に応じて、どちらかの圧縮モードを選択します。

 実際のデータにも依存しますが、列単位の格納によって、同一値のデータが含まれる可能性も高くなり、より高い圧縮率も期待できるというわけです。

 このようなカラム指向のDWHの代表ソフトウエア製品としては、他社製品ではSybase IQが挙げられます。

ストレージ・ユニット側でもディスクI/O負荷を削減

■ストレージ・インデックス

 Oracle Exadata V2の高速化機能の1つ、「Exadata Storage Index」は、ストレージ・ユニット「Sun Oracle Exadata Storage Server」のメモリ内で、表データの格納データサマリー情報を管理します。このインデックスの活用により、不要なディスク領域をReadすることがなくなり、より高速にフルスキャンを実行できます。

 具体的には、初回のSmartScan実行時に、1MBごとにインデックスを1エントリ作成し、単位領域内の対象列データの最小値と最大値を格納します。

 2回目のSmartScan実行時に同一列でのフィルタリングを行う場合、メモリ上のインデックス(最大値~最小値)にwhere句条件がマッチしなければ、ディスクのその部分を排除し、ディスクI/Oを削減します(図2)。

 同様の機能は、米Netezzaのゾーンマップ機能など他社DWHアプライアンスにも実装されており、大量データのアクセスに対して有効な機能と言われています。

■Exadata Smart Flash Cache

 Oracle Exadata V2の高速化機能の1つ、「Exadata Smart Flash Cache」は、第1回(http://thinkit.jp/article/1047/1/)でも取り上げたSSD(Solid State Drive)をStorage ServerにおけるストレージのReadキャッシュとしての活用する機能です。これにより、ランダム読み出し時のI/Oのボトルネックを解消します。

 ほとんどのデータを、低コストなストレージに格納しておき、利用頻度の高いデータのみを透過的にFlashメモリに移動します。このキャッシング・アルゴリズムは、現時点では公開されておりませんが、Read効率を求めないREDOログ・ファイルなどに対しては、データのキャッシングは行いません。キャッシュすべきオブジェクトをアプリケーションから明示的に設定することも可能です。

 また、Oracle Exadataでは、ディスクコントローラの制限を避けるために、ディスクコントローラ経由でストレージ・インタフェースに接続するタイプのFlashメモリではなく、I/Oバスに装着するカード形状のFlashメモリとすることで、高帯域幅、低レイテンシなインターコネクトでの接続を可能としています。

伊藤忠テクノソリューションズ株式会社
ITエンジニアリング室 ミドルウェア技術部 DB技術課所属。1996年に伊藤忠テクノソリューションズ(CTC)入社。入社後は主にDB論理/物理設計担当として各種開発プロジェクトを経験。2008年より現職。Oracle製品プリセールスや構築、チューニング支援に携わる。

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています