2

私のアプリケーションは、さまざまなベンダーの XML データを使用します。すべてのベンダーが異なる xml 形式/スキーマを使用しており、これらの XML からさまざまなデータを取得するにはカスタム クエリが必要です。

最初は RDBMS アプローチから始めました。ベンダーから特定の XML を取得した後、XML を解析/クエリし、いくつかのテーブルにデータを書き込みます (Woodstock StAX パーサーを使用)。ただし、RDBMS (固定スキーマ) の性質上、さまざまなベンダーのすべての XML 形式をサポートすることはできません。サポートしたとしても、階層 xml を RDBMS 固定スキーマ リレーショナル データに「正規化」する必要があります。

ベンダーからの xml/data は毎日頻繁に更新され、サイズは数 kbs から最大 50 MB のデータ ファイルまでさまざまです。

次のステップとして、さまざまな NXD (ネイティブ Xml データベース)、eXist-db、Sedna、BaseX、および MonetDB を評価して、これが私の目的に合っているかどうかを確認しています。

これを解決する方法について、実用的なアドバイスを提供してもらえますか? または、さまざまな形式/スキーマの多数の XML データを処理する同様のシステムを構築しました。

私が答えようとしているコア XML 要件は次のとおりです。

  • 複数のソースからの複数の xml データ ファイルを処理します。XML はベンダーごとに異なります。
  • ドキュメント全体と、DB 内の既存の XML の一部のフィールドの XML 更新。
  • 特定のベンダーからのものかどうかを識別し、それに応じてクエリを起動します。
  • XPath/XQuery を使用してこれらの xml にクエリを実行し、データを読み取り、共通のビューでユーザーに表示します。

ご意見をお聞かせください。

ありがとう、サブロー。

4

2 に答える 2

4

SQL サーバーなどのハイブリッド データベースではなく、ネイティブの XML データベースを選択するのは正しいと思います。ハイブリッド データベースは多くのことを行うため、XQuery の適合実装や XQuery 更新などのコア XML 機能を提供するのに時間がかかることがよくあります。また、データを格納するさまざまな方法が提供されているという事実は、開発者を制御下に置くことを困難にする可能性があります。

どの製品かというと、ここに本当の問題があります。データベース製品の評価は費用のかかるプロセスであり、有意義な回答を得るために徹底的に評価を行うことは、間違った選択をするよりも多くの費用がかかるでしょう。データベース プロジェクトが失敗するのは、通常、データベース ソフトウェアが不十分だったからではなく、選択したデータベース ソフトウェアを最大限に活用するためのスキルや経験がプロジェクトに欠けていたからです。つまり、利用可能なスキルに基づいて製品を選択してください。

于 2011-01-09T15:04:59.147 に答える
0

統合ツールとしてSQLServerIntegration Services(SSIS)と組み合わせて、データベースとしてSQLServerを使用します。

SQL Serverは、XML列タイプをネイティブにサポートします。XMLがスキーマまたはスキーマのセットに従うことを要求でき、XQueryを使用してXMLを処理できます。同時に、もちろん、ベンダー間で同じXMLの部分をテーブルに分割することもできます。

XMLは、XMLインデックスによってインデックスを作成することもできます。これにより、クエリがはるかに高速になります。

SSISは、さまざまなディスクドロップから、またはFTPまたはWebサービスを介して、さまざまなXMLファイルを収集するために使用でき、追加の前処理の有無にかかわらず、データベースに処理できます。たとえば、さまざまなXML形式をある程度合理化して、ほとんどのデータを通常のリレーショナルテーブルに保持しながら、残り(またはドキュメント全体)を後続のクエリのために同じデータベースに保存できる場合があります。

OBTW、SSISはSQLServerで無料です。

于 2011-01-09T11:40:54.970 に答える