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 Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

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