アットマーク・アイティ @IT@IT情報マネジメント@IT自分戦略研究所QA@ITイベントカレンダー  
 
 @IT > テラバイトOK! 大容量データでも高速検索を可能にしたXMLデータベース「TX1」
 
@IT[FYI]

 

テラバイトOK!
大容量データでも高速検索を可能にした
XMLデータベース「TX1」


   
XMLデータベースのボトルネックは解消された

 XMLデータベースへの要求は年々高まっている。ほかのデータ処理技術、例えばRDBを使用しても上手く処理できないニーズがあり、それに対する解決策としてXMLデータベースが求められている。

 しかし、この要求が満たされていたかといえば、必ずしもそうではない。従来のXMLデータベースには、いくつもの問題があった。例えば、製品の選択候補が少ない、大きなデータを扱うと極端に応答が遅くなる、複雑なクエリが重い(チューニングできない)など。特に大きな問題は、性能とそれを得るためのコストにあるといわれてきた。つまり、小さなデータ、簡単なクエリの場合はうまく動作するXMLデータベースであっても、大きなデータ、複雑なクエリを使うと極端に重くなり、これを回避するためには管理コストを押し上げるサーバ台数の増強を要求されるのだ。

プラットフォームソリューション事業部
商品企画部 参事 齋藤稔氏

 このような問題を解決するために生まれたのが、東芝ソリューションのXMLデータベース「TX1」である。TX1は、テラバイト級のデータを扱う能力を持つとともに、複雑なクエリを素早く実行するための新機軸を搭載している。

 革新的なテクノロジを搭載して市場投入されたTX1について、同社 プラットフォームソリューション事業部 商品企画部 参事 齋藤稔氏は「TX1は当社がこれまでに積み上げてきた日本語処理、ナレッジマネジメント、ファイルシステム管理といった自社技術の資産を集大成したといえる製品です」と語る。

 なぜTX1がテラバイト級データや複雑なクエリを高速処理できるのか、その仕組みを詳しく見ていこう。

   
類を見ない2つの高速化テクノロジ

 実は、XMLデータベースの高速さとは何かを考えるのは難しい。なぜなら、XMLデータベースに要求される検索処理には、まったく異なる性質を持つ2つの種類があるためだ。1つは、XMLならではの要素や属性といった構造を素早く検索する技術。もう1つは、要素や属性の値となる文字列を素早く検索する技術である。うっかりすると、前者だけがXMLデータベースで重要なポイントであると思いがちであるが、実用システムのニーズを考えると後者も負けず劣らず重要である。例えば、新聞記事や特許の検索というシステムを考えた場合、文章の中の特定の単語を検索する全文検索的なニーズは当然想定される。

 この2つのニーズを満たすために、TX1はXML的な構造だけでなく、強力なフルテキスト検索機能を備えている。これは、最新のフルテキスト検索技術を惜しみなく注ぎ込んだものである。そして、もちろんXML的な構造の検索も高速である。これらを実現するために生み出された「2つの新機軸」について解説しよう。

新機軸1 “スキーマアナライザ”

 スキーマアナライザは「構造自動抽出技術」、つまり階層構造の検索を高速化するための技術である。

 XMLはツリー構造である関係上、検索するためには階層構造を順にたどっていかなければならない。そこでTX1では、大容量データでも“階層パターン照合”を高速に行うための独自の索引方式を採用している。XMLデータから構造を自動的に抽出して、このための索引を作成する技術がスキーマアナライザである(図1)。

図1 構造自動抽出技術「スキーマアナライザ」
スキーマアナライザはXMLのツリー構造に着目した「構造索引」と、XMLの要素として格納されている語いに着目した「語い索引」の2つを同時に作成する。XQueryによる問い合わせでは、この2つの索引を使って目的のノードを照合するため、データ検索を高速化できる(画面をクリックすると拡大します)

 クエリは、スキーマアナライザが作成した構造索引と、全文検索機能(N-gram方式)が作成した語い索引によって高速に実行され、処理に時間がかかるデータ本体への参照は最小限に抑えられている。これが巨大XMLデータベースへの複雑なクエリを高速実行できる理由その1である。

新機軸2 “クエリオプティマイザ”

 クエリオプティマイザは「問い合わせ最適化技術」、つまり複雑なXQueryでも高速に検索するための技術である。

 巨大なデータベースへの問い合わせは、複雑なクエリが要求されることが多い。単純なクエリではあまりに多くのノードがヒットしてしまう可能性があるため、必然的にクエリの条件は複雑化する。もちろん、XMLの標準問い合わせ言語XQueryは複雑な問い合わせ処理が可能であるが、これはクエリの実行計画次第で劇的に速度が変わる場合がある。クエリを高速に実行するために、抽出した構造と語いの統計情報をヒントに、最適な問い合わせプランを生成する技術が、クエリオプティマイザである(図2)。

図2 問い合わせ最適化技術「クエリオプティマイザ」
検索にかかるコストを判断し、同一の結果を得る問い合わせの実行計画でも、より少ないコストで済む実行計画を自動的に選択する

 図2の例では、クエリに2つの条件を付している。どちらの条件を先に検索しても結果は同じだが、先に候補が少ない条件を調べると、後から処理する条件をチェックする対象が少なくなり、より短い時間で処理を完了できる。つまり、「XML」を先に調べるよりも、「受賞タグ」を先に調べる方が、全体として速くなるということである。このようなクエリの最適化は、巨大データベースでは特に有効性を発揮する。これが巨大XMLデータベースへの複雑なクエリを高速実行できる理由その2である。

   
ベンチマークが証明する高速化技術

 では、これらの技術を活用した具体的な性能はどの程度なのだろうか。以下に特許文献の検索とXMarkのベンチマークの結果(どちらも東芝ソリューション計測)を示そう。

性能測定環境
PCサーバ Xeon 3GHz×2、メモリ 2Gbytes
ディスクアレイ装置 ArrayFort
OS Windows Server 2000

特許文献の検索

 このベンチマークは、実用データを扱った場合の性能を見ることを意図している。そのため、実際の特許公開公報の約8年分、約300万文献(約100Gbytes)を対象としている(過去のSGML形式の公報はXML形式に変換してから登録してある)。

■キーワード検索(972件該当)…… 0.69秒 
db("patent")/*/jp-official-gazette[contains(.//text(),"XML")]

分類コード検索(2万8000件該当)…… 1.6秒
db("patent")/*/jp-official-gazette
 [bibliographic-data/classification-ipc/main-clsf/text()
  [starts-with(.,"G06F3") or
   starts-with(.,"G06F7")]] //invention-title

分類コード+キーワード(59件該当))…… 1.9秒
db("patent")/*/jp-official-gazette
 [ bibliographic-data/classification-ipc/main-clsf/text()
  [ starts-with(.,"G06F3") or starts-with(.,"G06F7") ]
   and contains(. //text(), "XML") ] //invention-title
リスト1 特許文献検索クエリ例と測定結果
注)G06F:「電気的デジタルデータ処理」の分類コード

 ここでは、実用データのXML的構造や文字列に対する複合的なクエリも素早く実行されていることに注目しよう。

XMark

 このベンチマークは、公開された標準的な条件での性能を見ることを意図している。そのため、XQueryによる問い合わせのベンチマークであるXMarkを使用している(インターネットオークションをモデルとするデータ)。

Q1.‘person0’のIDを持った参加者の名前を調べる(基本的なクエリ)
  (1件該当)…… 0.58秒
for $b in db("XMark")/site/people/person[@id="person0"]
return $b/name/text()

Q5. 40ドル以上で売れた商品の数を求める(簡単なクエリ)
  (1件該当)…… 0.50秒
count(for $i in db("XMark")/site/closed_auctions/closed_auction
           where $i/price/text() >= 40
           return $i/price)

Q9. ヨーロッパで購入したことがある全参加者の購入履歴の一覧
  (複雑なクエリ)

  (2万5500件該当)…… 13.3秒
for $p in db("XMark")/site/people/person
let $a := for $t in db("XMark")/site/closed_auctions/closed_auction
           let $n := for $t2 in db("XMark")/site/regions/europe/item
                     where  $t/itemref/@item = $t2/@id
                     return $t2
           where $p/@id = $t/buyer/@person
           return <item> $n/name/text() </item>
return <person name="{$p/name/text()}"> {$a} </person>
リスト2 XMarkクエリ例と測定結果

 簡単なクエリでは他社製品でも同程度の性能であるが、TX1は複雑なクエリでも実用水準の応答時間で結果を出すことができている。これは他社製品と比較して、数倍以上の性能である。

 以上のように、TX1は単にテラバイト級の巨大なデータベースを扱うポテンシャルを持つというだけでなく、巨大なサイズに見合った高速なクエリを実行できる能力を持っていることが分かる。

   
「TX1」製品の概要

 TX1を実行するために特殊なOSやハードウェアは必要とされない。TX1は、Windows版のほかに、Solaris版も発売が予定されている。また、Java、C++、Visual Basicなどを使用して応用ソフトを開発することができる。問い合わせ言語としては、XMLデータベースの標準ともいえるXQueryをサポートするほか、JDBC、ODBCをベースにした独自APIもサポートしている。

プラットフォーム OS CPU メモリ容量
Windows Windows 2000 Server(SP4)
Windows Server 2003
PentiumV 800MHz(最小)
Xeon 3.0 GHz、2CPU(推奨)
256MB(最小)
2GB(推奨)
(データ量、同時実行数に依存)
Solarisなど 2005年7月以降の予定
表1 TX1の稼働環境

API OS SDK XMLパーサ
Java Windows 2000 Server (SP4)
Windows Server 2003
Windows 2000 Professional (SP4)
Windows XP Professional (SP1)
JDK/JRE 1.4.2
(Sun Microsystems)
JAXP1.1
(Sun Microsystems:
JDK/JREに含まれる)
C++ Windows 2000 Server (SP4)
Windows Server 2003
Windows 2000 Professional (SP4)
Windows XP Professional (SP1)
Microsoft Visual C++ 6.0 (SP6)
Microsoft Visual C++ .NET 2003
MSXML 3.0
MSXML 4.0
Visual Basic Windows 2000 Server (SP4)
Windows Server 2003
Windows 2000 Professional (SP4)
Windows XP Professional (SP1)
Microsoft Visual Basic 6.0 (SP6)
Microsoft Visual Basic .NET 2003
MSXML 3.0
MSXML 4.0
表2 TX1の開発環境

 機能、性能面はもとより、管理機能・運用機能も非常に高い(図3)。まさに真の実用XMLデータベースと呼ぶにふさわしい内容である。

 図3 TX1の管理機能・運用機能


   
実ニーズに鍛えられた
コストパフォーマンスの高いXMLデータベース

 注目すべき点は、実は性能の高さだけではない。TX1は、東芝ソリューション自身のお客様のニーズに応えるために開発したソフトであるという事実も、注目すべき点である。新聞、金融(保険の約款など)、行政(特許など)、製造(企業内コンテンツの一元管理など)といった東芝ソリューションの顧客業務は大容量のXMLを処理するニーズを抱えていた。それを満足させるために生み出されたソフトは、まさに現場レベルで役立つ実用性の高いソフトである。

 テラバイト級というキャパシティは一見して巨大システム専用ソフトのように見えるが、そうではない。テラバイト級という言葉は、少ないデータ量のシステムで使用した場合は、データ量が増えた場合でも対応できるという安心感を与えてくれる。そして、もう1つ見落とせないのが、1台のサーバに巨大なXMLデータを扱う能力を与えることで、サーバ台数の少ないシステムを可能とすることである。これにより、ハードウェアへの出費を抑制でき、さらに管理コストの削減も達成できる。こうしたシステムレベルでのコストパフォーマンスをアップさせることも、TX1の特長といえる。

 さあ、これでXMLデータベースを活用する最初の一歩を踏み出す準備はできた。XMLデータベースの採用をためらう理由はもう存在しないのではないだろうか?


提供:東芝ソリューション株式会社
企画:アイティメディア 営業局
制作:
@IT 編集部
掲載内容有効期限:2005年9月30日
 
関連リンク
XMLデータベース「TX1」Webサイト
TX1製品情報
TX1活用例
TX1サポートサービス
東芝ソリューション

関連記事
「テラバイト級の大容量データでも高速検索できるXMLデータベース「TX1」の発売とTX1を中核としたパッケージ型ソリューションの受注開始について」(東芝ソリューション・プレスリリース)

テラバイト級のデータを高速検索、東芝ソリューションのXMLDB(@ITニュース)


 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ