データベースに特化して設計されたNetezzaのアプライアンス製品【前編】


日本ネティーザ株式会社 執行役員 技術本部長 法華津 誠氏

 企業が蓄積してきた大量のデータは、何らかのデータベースという形で保管されているのが一般的だ。そして、このデータベースに対して、さまざまな条件で絞り込みを行い、企業が必要としている情報を取得できるようにしている。このように、大規模データベースの高度な分析を通じてビジネスの意志決定を下すまでの流れ、いわゆるビジネスインテリジェンス(BI)を支えるITシステム基盤として展開されているのが昨今のデータウェアハウス(DWH)ソリューションだ。

 Netezza Performance Server(NPS)アプライアンスは、ハードウェアとソフトウェアの密接な連携によって実現された画期的なDWHソリューションの1つである。ここでは、日本ネティーザ株式会社 執行役員 技術本部長 法華津 誠氏にお聞きしてきたさまざまな情報をもとに、NPSアプライアンスを支えるアーキテクチャとその構成技術について2回にわたって解説していく。前編では、昨今のデータベースシステムが抱えている問題点、そしてそれを解決するNetezzaならではのアプローチを取り上げていく。

膨大なデータを迅速に処理できるデータベースシステムが求められている

 ストレージシステムは、企業が生み出したデータの器となるものだが、単にデータを蓄積していればよいわけではない。近年、企業のビジネスはITによって強く支えられており、企業データは日々のあらゆる業務を通じて生み出された、いわば「企業の生きざま」そのものといっても過言ではない。企業がこれから困難に立ち向かうときや、さらに成長するための新機軸を打ち出そうとするとき、企業が積み重ねてきたデータの中にヒントが隠されている場合が多い。つまり、データを単に蓄積していくだけでなく、それを深く分析、活用してこそ大きな価値が見いだされるわけだ。

 例えば、一般個人向けに商品を販売しているB2C企業では、売り上げアップのためにさまざまなマーケティング活動が行われる。いうまでもなく、ただやみくもに商品を販売するのでは意味がない。あくまでも顧客のニーズにマッチした商品をタイムリーに提供するのが絶対条件だ。そのための情報を集めるために、長年蓄積してきた商取引データベースが役に立つ。POSやオンラインストアの購買履歴から「よく一緒に買われる商品」を発見するバスケット解析がよい例だ。こうしたバスケット解析では、分析対象のデータ範囲が広ければ広いほど有用性が増す。そして、分析作業は1秒でも早く完了すべきものであり、長い時間がかかるようならせっかくの好機を逸してしまうだろう。だからこそ、ビジネスの現場では、膨大なデータをスピーディーに処理できる能力が求められているのだ。

データベースの処理性能を高める2つのアプローチ-SMPとMPP

 BI系ソリューションで大規模(テラバイト級)のデータベースを扱う場合、複雑な分析をスピーディーに実行する上でマルチプロセッシング技術を導入するのが一般的だ。今日のシステムでは、特にSMP(Symmetric Multi-processing:対称型マルチプロセッシング)とMPP(Massively Parallel Processing:超並列処理)のいずれかが採用されている。マーケティング的なバズワードで表現すれば、SMPはスケールアップ、MPPはスケールアウトの方向性を持った拡張型システムとなる。

 SMPシステムは、複数のCPUから構成され、共通のメモリシステムやI/Oシステムに対して平等にアクセスする形態をとる。ソフトウェアから見たSMPシステムは、単一の高速システムそのものなので、特別なことをしなくても、あらゆる実行コードを高速に実行できる。また、必要に応じてCPUを追加することで、システム全体の処理能力も高められる。ただし、メモリバスやI/Oバスを多数のCPUで共有する仕組みゆえに、CPUを増やすことでこれらの共有バスがボトルネックとなりやすい。つまり、システムをリニアに拡張性していくことが難しく、その規模が大きくなるにつれて非効率になっていく。

 MPPシステムは、多数のCPUが粗結合によって連結されている。それぞれのCPUは独自のメモリシステムやI/Oシステムを持ち、それぞれで独立のオペレーティングシステム(OS)が動作している。この最小単位をノードと呼び、ノード間の通信は、ある種のメッセージ交換をネットワーク経由で行うことにより実現される。通常、小規模の独立したコンピュータを専用の高速ファブリック(InfiniBandやEthernet)で相互に接続し、クラスターパッケージを通じて1つに束ねている。

 MPPシステムでは、多数のCPUがリソースを同時に共有しないことから、並列処理能力やI/O性能に優れている。また、SMPシステムのように内部バスがボトルネックになりづらく、システムを拡張することで処理性能もリニアに向上していく。もしノードの1つに障害が発生してもほかのノードが処理を引き継ぐことが可能なので、システム全体の可用性を高めやすいのもメリットだ。ただし、CPU同士が粗結合によって緩く接続されているために、CPU間の通信に比較的大きなレイテンシが発生する。また、独立した複数のシステムを管理しなければならず、SMPシステムと比べて管理コストがかさみやすい。

SMPとMPPの長所を併せ持つNetezza独自のAMPPアーキテクチャ

 SMPとMPPには、それぞれ長短があり、どちらがよいとは一概に言いにくい。そこで、Netezzaは、あえてSMPとMPPの仕組みを両方とも採用し、それぞれが持つ欠点を上手に隠ぺいしながら、長所だけを最大限に引き出せるような2階層のシステム構成とした。これが、AMPP(Asymmetric Massively Parallel Processing:非対称型超並列処理)アーキテクチャと呼ばれるものだ。そして、AMPPアーキテクチャを採用したNetezzaのアプライアンス製品がNPSアプライアンスである。

 NPSアプライアンスは、第1層にSMPホスト、第2層に多数のMPPノード群を配置する。第1層のSMPホストは、クエリの解析、実行計画の生成、最適化や並列化などを担う。ここで並列化された個々の仕事が第2層のMPPノード群に引き渡され、多数のMPPノードによって並列的に実行される。個々のノードが返した実行結果はSMPホストに送られ、ソート、ジョイン、グループなどの集約作業を経て、リクエストしてきたエンドユーザーまたはアプリケーションに対して最終的なクエリ結果を返す。このように、エンドユーザーやアプリケーションからはシンプルなSMPホストだけが見え、複雑なクエリ処理を実行するMPPノード群はSMPホストの裏側に隠れて黙々と仕事をする。人間の体にたとえれば、SMPホストは「頭脳」、MPPノードは「筋肉」のような関係にある。

 「1990年代からDWH関連のソリューションはさまざまな企業が手がけています。大量のデータをスピーディーに処理するアプローチとして、データベース本体を高速なメモリ上に展開するオンメモリ型データベースに走るベンダーもあれば、クエリ処理のチューニングに磨きをかけるベンダーもありました。しかし、OLTPのニーズ(簡単なクエリを扱うために設計)を満たす旧来のアーキテクチャに基づくプラットフォームは、そもそもテラバイト級のデータ分析に適していません。そこで、Netezzaはテラバイト級の高度なデータ分析に特化したAMPPアーキテクチャを一から開発しました。」

 「そして、それを実現する『箱』として、あえてアプライアンスの形態を採用しました。単に高性能なハードウェアを詰め込んだだけの箱ではなく、ハードウェアとソフトウェアを高度に統合したアプライアンスとしての姿です。これにより、新しいアーキテクチャによる優れた処理性能、拡張性、信頼性に加え、アプライアンスならではの優れた使い勝手を実現しています。Netezzaは、2000年に米ボストン郊外で設立され、2003年に1世代目の製品が発表されました。日本でのビジネスは2005年の春あたりからスタートし、同年9月に日本法人を設立しています。現在、日本国内での実績は40社を超え、その中にはかなり大規模な案件も含まれています。(以上、法華津氏)」


NPSアプライアンスを支えるAMPPアーキテクチャのブロックダイヤグラム(出典:日本ネティーザ株式会社、以下同様)。第1層のフロントエンドにSMPホスト、第2層のバックエンドにMPPノード群を配置している。エンドユーザーやアプリケーションからはSMPホストだけが見え、バックエンドのMPPノード群はSMPホストからの指示に従って黙々とクエリ処理を並列的にこなすNPSアプライアンスのラック内部構造。内部には、フロントエンドとなるSMPホスト(IAサーバー)と多数のMPPノード群が組み込まれた専用ブレードシステムがある。この専用ブレードシステムは、コンピューティングリソースでもあり、またストレージリソースでもある。高度な「インテリジェンス」を持ったストレージシステムととらえてもよさそうだ

エンドユーザーやアプリケーションにとっての窓口となるSMPホスト

 NPSアプライアンスを支える第1層のSMPホストについてさらに深く迫っていこう。SMPホストは、MPPノード群に指令を与えると同時に、エンドユーザーやアプリケーションに対する窓口の役割も果たす。高速データベースシステムの中には、独自のAPIを介して接続しなければならないものもあるが、NPSアプライアンスは、SQL、ODBC、JDBC、OLE DBなど、あくまでも業界標準のインターフェイスにこだわって設計されている。このため、既存のBIツールをそのまま利用し、従来通りにさまざまなクエリを発行できるのが大きなメリットだ。エンドユーザーが新しいクエリ言語を習得する必要がなく、既存のデータベースシステムをNPSアプライアンスに置き換えるだけでよい。

NPSアプライアンスは、SQL、ODBC、JDBC、OLE DBなど、業界標準のインターフェイスを通じてエンドユーザーやアプリケーションとやり取りを行う。これらのインターフェイスは、主要なBIツールなどで標準的に採用されているものなので、現在使用しているBIツールをそのまま変更することなくNPSアプライアンスを容易に導入できる

 SMPホストは、ハードウェアとしてIAサーバー、OSとしてLinuxを採用している。エンドユーザーやアプリケーションがNPSアプライアンスに対してクエリを送信すると、SMPホストはそのクエリを解析し、ホスト自身が実行すべき処理とMPPノード群が並列に実行すべき処理を切り分ける。MPPノード群でこなす処理は、スニペット(snippet)と呼ばれる仕事単位に分割され、それぞれのMPPノードに分配される。スニペットとは、日本語で「切れ端」や「断片」を意味する単語であり、NPSアプライアンスではMPPノード上のCPU向けにコンパイルされた実行コードと後編で取り上げるFPGA(Field Programmable Gate Array)向けの設定パラメータが含まれたものを指す。処理の大半はスニペットを通じてMPPノード群で実行され、その実行結果とSMPホストによる少数の処理結果を合算したものが最終的なクエリ結果となる。これらの処理はすべて自動で実行されるため、チューニングやインデックス付け、パーティショニングなどは不要だ。

 「意志決定支援システム向けデータベースの情報量は、9カ月ごとに倍増しているといわれています。一方、半導体製品の進化を占うムーアの法則によれば、半導体チップの処理性能は18カ月ごとに倍増する計算になります。つまり、半導体技術の進歩だけでは情報の増加に追いつけないことを意味しています。仮に巨額の投資をして現在の要求を満たすシステムを構築したとしても、拡張性に乏しい従来型のアーキテクチャではすぐに陳腐化してしまいます。NPSアプライアンスでは、大半の処理をMPPノード群に委ねていますが、単にSMPホストの裏側にMPPノード群が接続されているだけでは、こうした情報量の急増には打ち勝てません。実は、データベースの処理性能を飛躍的に高められる秘訣(ひけつ)が、MPPノード自身の独特なアーキテクチャにあります。ここが、他社のDWHソリューションとの絶対的な差異ともいえるでしょう。(法華津氏)」

 後編では、MPPノードを支える独自のアーキテクチャと、より高度な分析を可能にするNetezzaならではの取り組みについて解説していく。




(伊勢 雅英)

2009/4/23/ 00:00