- PR -

XMLDB:製品間のメリットデメリット

投稿者投稿内容
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-12-01 16:43
引用:

Taminoはスキーマが扱え拡張ではありますが、データ型などをいろいろと
設定できるので、RDBになれていると、入りやすいかなという印象です。
ただ、欠点はスキーマが無いとパフォーマンスがかなり落ちるとのこと。
(これはTaminoの方も認めていました)


なるほど。
まあでも、スキーマが決定しないような状況ではパフォーマンスを求める
ようなことも無いかと思いますが、使い物にならない位遅いのでしょうか?

前に私がXISを使った案件をやって思ったことは、「なにもデータの全てを
XMLで格納する必要は無いのではないか」ということでした。つまり、
フォーマットが変わる可能性があまり無いところはRDBに格納し、まだ
フォーマットが決めきれていないようなところやレコードによってフォーマットが
変わってしまうようなところはXMLとしてNXDBに格納する、というハイブリッド
型(?)のアーキテクチャです。

RDBに格納した部分はRDBの良さを生かせますので、検索対象になるデータは
出来ればこちらに入れたほうが良いでしょうね。XMLデータの方は、まとめて
全文検索のミドルウェアなどを入れて面倒を見る、という感じで。
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2003-12-01 17:02
引用:
つまり、
フォーマットが変わる可能性があまり無いところはRDBに格納し、まだ
フォーマットが決めきれていないようなところやレコードによってフォーマットが
変わってしまうようなところはXMLとしてNXDBに格納する、というハイブリッド
型(?)のアーキテクチャです。



似たようなことを考えていました。
私の場合は RDB 寄りのアプローチで、決まっていて、しかも高速に検索するものはカラムを取ってそこに入れ、それ以外(もしくはデータ全体)は XML のまま、NXDB どころかもっとプリミティブに LOB として扱う方法です。
DOM として扱いたい場合は再パーズ、ないし、Serializable オブジェクトとして BLOB に入れておいて復元です。
オンメモリで処理できるものは、いくらチューンされているとは言えディスクアクセスを伴う DB 処理より充分高速だろうという前提ですが
bunbun
会議室デビュー日: 2002/08/15
投稿数: 12
投稿日時: 2003-12-01 20:37
引用:

おばけさんの書き込み (2003-12-01 16:43) より:
まあでも、スキーマが決定しないような状況ではパフォーマンスを求める
ようなことも無いかと思いますが、使い物にならない位遅いのでしょうか?



なぜ遅いかというと、インデックスが張れないからだそうです。なので、遅くなるといっても
その程度?のようです。(実際に試していない&ベンチマークなどは入手していません)

その辺、NeoCoreはフル「オート」インデックスということで、スキーマの有無に関係
なく、早く検索できると言っていました。(の、前にスキーマを扱えませんが。。)



[ メッセージ編集済み 編集者: bunbun 編集日時 2003-12-01 20:41 ]
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-12-01 21:09
引用:

それ以外(もしくはデータ全体)は XML のまま、NXDB どころかもっとプリミティブに LOB として扱う方法です。


なるほど。RDBMS製品だけで済ませるには理想的な案ですね。
CLOBでテキスト形式のXMLを入れるか、もしくはBLOBでシリアライズしたDOMオブジェクトを
放り込んでしまうか、、、後者はちょっと乱暴かな(笑)。
ただ、前者のアプローチの場合、Oracle9iだとXML Typeが使えますね。
そうすると、XMLの更新以外については解決できますねえ。
良い案かも
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-12-01 21:11
引用:

なぜ遅いかというと、インデックスが張れないからだそうです。なので、遅くなるといってもその程度?のようです。(実際に試していない&ベンチマークなどは入手していません)


なるほど。インデックスの有無ですか。
まあ、これだけだと「検索がインデックス使えないので遅いよ」とも取れますが、XISを使った経験上は
ただの検索でもXPathに複雑な条件を設定しているととんでもなく(分単位とか)遅くなったりして、
だとすると開発フェーズでも十分に実害があるのかな、なんて思いました。
bunbun
会議室デビュー日: 2002/08/15
投稿数: 12
投稿日時: 2003-12-02 00:07
引用:

まあ、これだけだと「検索がインデックス使えないので遅いよ」とも取れますが、XISを使った経験上は
ただの検索でもXPathに複雑な条件を設定しているととんでもなく(分単位とか)遅くなったりして、
だとすると開発フェーズでも十分に実害があるのかな、なんて思いました。



試してはいないのですが、XPathの書き方やXQueryの書き方はどうにでもできるので
検索式の内容によっては大きく左右するだろうなぁと思います。同感です。

結局XMLDBって現状では、製品によってかなり大きく特徴の違いがありますよね。
この違いを見極めながら使っていくのってなんか,難しいなぁと感じています。
(RDBはそこまで違いが無いですよね?)

XPathの話もそうですが、検索が早いといっているXMLDBは、特別な検索アルゴリズム?
を使っているようですので、そこにマッチすると超早いみたいですが、外れると並?に
なるようです。
自社のXMLDBでどこまで早くできるか、必要ならチューニングのご相談にも乗りますという会社
さんもありました。XPathやXMLの構造自体も工夫の余地があると。

XMLって何でもできる反面、きちんと使わないとRDB以上に、技術力の差が出そうですね。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-12-02 01:32
引用:

試してはいないのですが、XPathの書き方やXQueryの書き方はどうにでもできるので
検索式の内容によっては大きく左右するだろうなぁと思います。同感です。


そうですね。
XISでもインデックスの張り方とXPathの条件式の書き方をうまくやらないと、
インデックスが使われなかったりするそうで、そこはコンサルタントの人に
色々教えてもらいました。

引用:

XMLって何でもできる反面、きちんと使わないとRDB以上に、技術力の差が出そうでね。


製品に関するノウハウという点では、RDBMSに関してはかなりのユーザ
(SIerなど)が既に蓄積したものがあると思うのですが、XML DBMSはあまり
普及していない&製品が新しい分だけユーザにノウハウがなく、
コンサルティングなどを受けないで下手に使うと火傷をする、ということ
なのかなと思います。

XML DBはコンサルティングを受けて設計やチューニングを行うために追加で
費用を払う、ということも念頭において予算を考えなければいけないのかも
しれませんね。


[ メッセージ編集済み 編集者: おばけ 編集日時 2003-12-02 01:33 ]
bunbun
会議室デビュー日: 2002/08/15
投稿数: 12
投稿日時: 2003-12-06 19:22
引用:

XML DBはコンサルティングを受けて設計やチューニングを行うために追加で
費用を払う、ということも念頭において予算を考えなければいけないのかも
しれませんね。



なるほどー。
XMLDBって商用のはほとんどがRDBMSより高いですよね。それに追加して
コンサルティングも受けないといけないとなると。。。。。
なかなか手の出ない代物になりそうですね。

早く普及して安くなるのを待つのがよいのか。。Xindiceなどの無償DBでまずは
感触をつかみ、勉強するのが良いのか。どうなんでしょうね(笑)

スキルアップ/キャリアアップ(JOB@IT)