3

xmlドキュメントを保存し、さらに効果的にクエリを実行するための最適なオープンソースソリューションを検討しています。データ量は少なくなります。私が理解している限り、ネイティブxmlデータベースが私の場合の適切なソリューションを形成する可能性があります。彼らは明らかに非常に効率的な方法でxmlドキュメントを保存します。あなたの経験を学ぶのは素晴らしいことです。適切な解決策に関する提案はありますか?アプリでxmlストレージエンジンを使用した経験はありますか?

4

2 に答える 2

2

私たちの仕事では、ネイティブXMLサーバーを使用しています。データが100〜200 MB未満であれば問題ありませんが、その後、データを処理できる適切なサーバーを見つけることができませんでした。私は次のことを試しました:

  • eXist:JavaベースのネイティブXMLサーバー(オープンソース):大きなファイルの場合、通常はJVMのメモリを消費し、メモリ不足の例外をスローします
  • sedna:CベースのネイティブXMLサーバー(オープンソース):非常に大規模なデータベースを処理できますが、データベースからインデックス付けされていないデータをクエリしようとするとsegfaultsが発生します
  • Tamino XMLデータベース(プロプライエタリ):最初のXMLデータベースの1つであり、成熟していますが、xqueryのサポートが不十分です(少なくとも、使用している最新バージョンはXQueryのサポートが非常に悪いです)。十分に高速になるように適切に設定しないでください。

これが私の提案です:

  • 小さなデータおよびJavaベースのシステムの場合は、eXistを試してください。SQliteのようなファイルベースのデータベースサポートもあり、便利かもしれません。
  • パフォーマンスが重要な中小規模のデータの場合は、sednaを使用します。私のテストによると、3つのうちで最速です。
  • サポートが必要な場合は、Taminoを使用してください。少なくともサポートがあります。

大規模なデータベース(1GB以上)の場合、(まだ)それらのいずれもお勧めしません。eXistは通常、200MBサイズのデータ​​ベースでクラッシュしました。sednaは、インデックスが作成されていないものをクエリすると1GBサイズのデータ​​ベースでクラッシュし、taminoはシステム全体をクラッシュさせる前に1回の実行で500MBのデータをロードすることさえできませんでした。もちろん、これらのシステムはすべて進化しているので、少し後で安全に使用できるようになるかもしれませんが、残念ながらネイティブXMLデータベースはまだ未成熟です。

于 2009-06-16T08:58:14.597 に答える
1

OracleXMLDBなどの主要なベンダー提供のソリューションを調べましたか。私はそれを試していませんが、あなたがそのようなもののための予算を持っているならば、それは確かに評価する価値があります!

また、ウィキペディアには、評価したいXMLDbsの素晴らしいリストがあります。

于 2009-06-16T09:04:40.747 に答える