Loading
|
@IT > テラバイトOK! 大容量データでも高速検索を可能にしたXMLデータベース「TX1」 |
|
XMLデータベースへの要求は年々高まっている。ほかのデータ処理技術、例えばRDBを使用しても上手く処理できないニーズがあり、それに対する解決策としてXMLデータベースが求められている。 しかし、この要求が満たされていたかといえば、必ずしもそうではない。従来のXMLデータベースには、いくつもの問題があった。例えば、製品の選択候補が少ない、大きなデータを扱うと極端に応答が遅くなる、複雑なクエリが重い(チューニングできない)など。特に大きな問題は、性能とそれを得るためのコストにあるといわれてきた。つまり、小さなデータ、簡単なクエリの場合はうまく動作するXMLデータベースであっても、大きなデータ、複雑なクエリを使うと極端に重くなり、これを回避するためには管理コストを押し上げるサーバ台数の増強を要求されるのだ。
このような問題を解決するために生まれたのが、東芝ソリューションのXMLデータベース「TX1」である。TX1は、テラバイト級のデータを扱う能力を持つとともに、複雑なクエリを素早く実行するための新機軸を搭載している。 革新的なテクノロジを搭載して市場投入されたTX1について、同社 プラットフォームソリューション事業部 商品企画部 参事 齋藤稔氏は「TX1は当社がこれまでに積み上げてきた日本語処理、ナレッジマネジメント、ファイルシステム管理といった自社技術の資産を集大成したといえる製品です」と語る。 なぜTX1がテラバイト級データや複雑なクエリを高速処理できるのか、その仕組みを詳しく見ていこう。
実は、XMLデータベースの高速さとは何かを考えるのは難しい。なぜなら、XMLデータベースに要求される検索処理には、まったく異なる性質を持つ2つの種類があるためだ。1つは、XMLならではの要素や属性といった構造を素早く検索する技術。もう1つは、要素や属性の値となる文字列を素早く検索する技術である。うっかりすると、前者だけがXMLデータベースで重要なポイントであると思いがちであるが、実用システムのニーズを考えると後者も負けず劣らず重要である。例えば、新聞記事や特許の検索というシステムを考えた場合、文章の中の特定の単語を検索する全文検索的なニーズは当然想定される。 この2つのニーズを満たすために、TX1はXML的な構造だけでなく、強力なフルテキスト検索機能を備えている。これは、最新のフルテキスト検索技術を惜しみなく注ぎ込んだものである。そして、もちろんXML的な構造の検索も高速である。これらを実現するために生み出された「2つの新機軸」について解説しよう。 新機軸1 “スキーマアナライザ” スキーマアナライザは「構造自動抽出技術」、つまり階層構造の検索を高速化するための技術である。 XMLはツリー構造である関係上、検索するためには階層構造を順にたどっていかなければならない。そこでTX1では、大容量データでも“階層パターン照合”を高速に行うための独自の索引方式を採用している。XMLデータから構造を自動的に抽出して、このための索引を作成する技術がスキーマアナライザである(図1)。
クエリは、スキーマアナライザが作成した構造索引と、全文検索機能(N-gram方式)が作成した語い索引によって高速に実行され、処理に時間がかかるデータ本体への参照は最小限に抑えられている。これが巨大XMLデータベースへの複雑なクエリを高速実行できる理由その1である。 新機軸2 “クエリオプティマイザ” クエリオプティマイザは「問い合わせ最適化技術」、つまり複雑なXQueryでも高速に検索するための技術である。 巨大なデータベースへの問い合わせは、複雑なクエリが要求されることが多い。単純なクエリではあまりに多くのノードがヒットしてしまう可能性があるため、必然的にクエリの条件は複雑化する。もちろん、XMLの標準問い合わせ言語XQueryは複雑な問い合わせ処理が可能であるが、これはクエリの実行計画次第で劇的に速度が変わる場合がある。クエリを高速に実行するために、抽出した構造と語いの統計情報をヒントに、最適な問い合わせプランを生成する技術が、クエリオプティマイザである(図2)。
図2の例では、クエリに2つの条件を付している。どちらの条件を先に検索しても結果は同じだが、先に候補が少ない条件を調べると、後から処理する条件をチェックする対象が少なくなり、より短い時間で処理を完了できる。つまり、「XML」を先に調べるよりも、「受賞タグ」を先に調べる方が、全体として速くなるということである。このようなクエリの最適化は、巨大データベースでは特に有効性を発揮する。これが巨大XMLデータベースへの複雑なクエリを高速実行できる理由その2である。
では、これらの技術を活用した具体的な性能はどの程度なのだろうか。以下に特許文献の検索とXMarkのベンチマークの結果(どちらも東芝ソリューション計測)を示そう。
特許文献の検索 このベンチマークは、実用データを扱った場合の性能を見ることを意図している。そのため、実際の特許公開公報の約8年分、約300万文献(約100Gbytes)を対象としている(過去のSGML形式の公報はXML形式に変換してから登録してある)。
ここでは、実用データのXML的構造や文字列に対する複合的なクエリも素早く実行されていることに注目しよう。 XMark このベンチマークは、公開された標準的な条件での性能を見ることを意図している。そのため、XQueryによる問い合わせのベンチマークであるXMarkを使用している(インターネットオークションをモデルとするデータ)。
簡単なクエリでは他社製品でも同程度の性能であるが、TX1は複雑なクエリでも実用水準の応答時間で結果を出すことができている。これは他社製品と比較して、数倍以上の性能である。 以上のように、TX1は単にテラバイト級の巨大なデータベースを扱うポテンシャルを持つというだけでなく、巨大なサイズに見合った高速なクエリを実行できる能力を持っていることが分かる。
TX1を実行するために特殊なOSやハードウェアは必要とされない。TX1は、Windows版のほかに、Solaris版も発売が予定されている。また、Java、C++、Visual Basicなどを使用して応用ソフトを開発することができる。問い合わせ言語としては、XMLデータベースの標準ともいえるXQueryをサポートするほか、JDBC、ODBCをベースにした独自APIもサポートしている。
機能、性能面はもとより、管理機能・運用機能も非常に高い(図3)。まさに真の実用XMLデータベースと呼ぶにふさわしい内容である。
注目すべき点は、実は性能の高さだけではない。TX1は、東芝ソリューション自身のお客様のニーズに応えるために開発したソフトであるという事実も、注目すべき点である。新聞、金融(保険の約款など)、行政(特許など)、製造(企業内コンテンツの一元管理など)といった東芝ソリューションの顧客業務は大容量のXMLを処理するニーズを抱えていた。それを満足させるために生み出されたソフトは、まさに現場レベルで役立つ実用性の高いソフトである。 テラバイト級というキャパシティは一見して巨大システム専用ソフトのように見えるが、そうではない。テラバイト級という言葉は、少ないデータ量のシステムで使用した場合は、データ量が増えた場合でも対応できるという安心感を与えてくれる。そして、もう1つ見落とせないのが、1台のサーバに巨大なXMLデータを扱う能力を与えることで、サーバ台数の少ないシステムを可能とすることである。これにより、ハードウェアへの出費を抑制でき、さらに管理コストの削減も達成できる。こうしたシステムレベルでのコストパフォーマンスをアップさせることも、TX1の特長といえる。 さあ、これでXMLデータベースを活用する最初の一歩を踏み出す準備はできた。XMLデータベースの採用をためらう理由はもう存在しないのではないだろうか? 提供:東芝ソリューション株式会社
企画:アイティメディア 営業局 制作:@IT 編集部 掲載内容有効期限:2005年9月30日 |
|