ChangeLog 最新ページ

XML - WinChalow

2004-06-25 Fri

XpSQL


XpSQL[2004-05-18-00000000000000000000000000000002] (うわ、まずい仕様だったのがちょっと露呈 >> WinChalow) では、デシマル・オーダーをint arrayというデータ型でPostgresに格納しています。MySQLにはint array型がないので、unsigned int に格納する方法を考えてみました。Perlのプロトタイプはうまく動いています。ていうか、こっちの方が効率いいんじゃないの?

問題はXPathの実装だなあ。NameSpaceも課題を残しています。XML::Parserは、かなりハックしないと Attribute のネームスペースが取得できないので、RDF系に使うのは高難度ですね。(エレメントとアトリビュートで別のネームスペースを使うのはやめて欲しい)

こうなったらまあ、ぼちぼちいきましょう。

2004-05-18 Tue

XpSQL


Software Design の今月号(5月号)にXpSQLというXMLデータベースがのっていたので買ってきました。バックエンドにPostgreSQLを使って、細粒度のマッピングを行い、XPath検索ができるというもので、平成14年度の未踏ソフトウェアに認定されています。

この手のものは20世紀末にさんざんやったので、前世紀の遺物と思っていましたが、いまだに未踏というのには少々驚きました。

ツリー構造情報(parent, child, next)をそのまんまPostgreSQLに格納するので、SAXパーザからのバルクロードは効率が悪そう、と思ってベンチマークを見ると1Mをロードするのに4分かかると書いてあります。リニアにいくという非現実的な仮定をしても、500Mのロードに33時間もかかる計算です。PostgreSQLは一定以上のデータ量でガックシとスピードが落ちます。実際にはロード不能と思われます。うちで使っているXMLの実データは500Mオーダーなので、採用は見送りとなりました。

検索効率の方はなかなか良好です。10Mオーダーの小規模DBにはよいかも知れません。

XMLを細粒度でRDBマッピングするシステムのキモは、ノードの付番法にあるわけですが、XpSQLではデシマル・オーダーという技法を使っています。これはちょっと面白いので、Perl+MySQLで実装してみましょうはあと