Oracle ExadataによるDWH高速化
独自アーキテクチャーを備えたDBアプライアンス
2009年に入ってから、DWH(データ・ウエアハウス)アプライアンスの新製品が次々と発表されています。大量のCPUやメモリを搭載したパワフルなハードウエアを使用し、独自のアーキテクチャーで並列処理を実装したものです。
データベースの高速化の最終回では、大量データの検索処理であるDWHを高速化する方法の1つとして、Oracle Exadataのアプローチについて説明します。
■Oracle Exadataは超並列GRIDアーキテクチャーを採用
DWHやBI(ビジネス・インテリジェンス)などの非定型の大量検索処理、すなわちFull Scan(フルスキャン=全件検索)の実行計画が選択されるような処理では、個々のディスクのI/O性能の問題のほか、ストレージからDBサーバーに大量のデータを転送する際の転送帯域がボトルネックになっていました。
また、DBサーバー側の処理負荷もボトルネックの要因になることがありました。DBサーバー側のCPU/メモリ等のリソースにも限度があるので、処理の同時実行に支障をきたしたり、処理内容によってはソート/マージ処理をメモリ上でさばききれずにディスク上での処理となってしまいます。
これらDWHにおける性能のボトルネックを改善するOracle Exadataの主な特徴は、以下の3点です。
(1)まず、 ストレージ・サーバーを複数台並べて並列処理を行うことで、データ量の増大に依存しない高速な全件検索を実現しています。この超並列グリッドを基盤としたモジュラー型ストレージ構成要素「Exadata Cell」により、容量に応じた帯域幅(1Cellあたり最大1.5GB/sec)のスケーリングを可能としています。
(2)さらに、ストレージとDBサーバー間の接続には、高速なInfiniBandを採用して40Gbit/secの帯域を確保しています。ファイバ・チャネル(Fibre Channel)と比較しても10倍の帯域を確保していることになります。
(3)そして、DB処理に必要なデータ(ストレージからDBサーバーへのデータ転送量)を画期的に削減する新たな機能として、次に紹介する「SmartScan」を備えています(図1-1)。
インテリジェント・ストレージで大量データ・アクセスを高速化
SmartScanは、検索処理の中でも大きなコストを占めるデータブロックのフルスキャンや、where条件によるフィルタリング処理などをストレージ側で肩代わりし、必要な結果行/列だけをDBサーバー側に返します。フィルタリング処理には、下記(1)~(6)があります。
(1)where条件による行フィルタリング
(2)列フィルタリング
(3)Joinフィルタリング
(4)増分バックアップ時のIncremental backupフィルタリング
(5)暗号化データのスキャン
(6)DataMiningモデル・スコアリング
SmartScanは、Oracle Databaseに追加された新しいSQLの実行プランです。アプリケーションやSQLの変更は必要ありません。SmartScanにより、データの抽出処理をストレージ側で並列に処理できるようになり、同時に、DBサーバーに転送するデータ量を劇的に削減でき、DBサーバー側の負荷も減らせます。
上のグラフ(図1-2)は、SAN(Storage Area Network)ストレージを使ったRAC(Real Application Clusters)構成とOracle Exadataとで、ともに同一のSQLを実行させた場合のグラフです。SAN構成、Oracle Exadata構成ともに、特にチューニングは施していません。
実行プランがFull Scanとなっている処理は、SAN環境に比べてOracle Exadata環境の方がはるかに高速であり、10倍以上速い時間で処理が終わっています。
一方、索引項目での検索はほとんど性能に差がありませんが、そもそも両者とも1秒以内に完了している処理であり、もともとRDBMSが得意とするIndex検索ですので、処理性能差に大きな違いは出ません。