4

私は、パートナーから大量のデータを継続的に受信するためのシステムの実装を任されてきました。パートナー側のデータスキーマは私たちのものとは異なるため、データを受信して​​データベースにインポートするときに、何らかの変換を行う必要があります。

このタスクを解決するための最良のアプローチは何ですか?

私は方程式の両側をある程度制御できます。つまり、WCFを使用することを選択した場合、パートナーがそのサービスを実装します。ただし、パートナー側で実行する必要のあるプログラミングの量を可能な限り制限することが重要です。理想的には、SQL Serverの一部の機能を使用してデータをエクスポートし、残りを処理できるようにします。

その他の関連要因:

  • SQL Serverは両方の側で使用されます(2008年は私たちの側で、パートナーには不明です)。
  • .NET 4および/またはMicrosoftから提供されたもので、サードパーティ製品はありません。
  • 転送は一方向です。つまり、パートナーから私たちへの転送のみです。
  • データの量は、毎日転送される約数万の更新されたレコード/オブジェクトです。
  • データモデルはかなり複雑で、いくつかのテーブルとリレーションがあります。
  • ソリューションは、パートナー側の変更に耐性がある必要があります(いつ、どのようにモデルを変更するかはわかりません)
  • 保守性と信頼性はパフォーマンスよりも重要です。つまり最新のデータは必要ありませんが、サービスは簡単に変更でき、失敗したり停止したりすることはできません。

私は圧倒されたのでこの質問をしていますが、これを達成する方法はたくさんあります。.NET開発者として、私はWCFの実装、あるいはカスタムxmlベースの交換の実装に傾倒しています。しかし、Biztalkがおそらくここでの法案に適合することはわかっています。また、SQL Serverには、私が知らないいくつかの気の利いた機能が組み込まれている可能性があります。

どんなポインタ、アイデア、提案も大歓迎です!

4

3 に答える 3

2

Willの提案に加えて、SSIS(SQL Server Integration Services)を見ることができます。これにより、FTPサイトにエクスポートして、反対側にインポートできます。

于 2010-08-25T06:35:01.360 に答える
2

データベースの完全なコピーが必要な場合は、ログ配布が適切なオプションです。それ以外の場合は、コピー内容をよりきめ細かく制御できるレプリケーションを確認してください。

データをそのままコピーして、ワイヤの側で変換ロジックを処理できます。

于 2010-08-25T06:33:11.247 に答える
0

おそらく、これが私がそれを行う方法です:

  1. パートナーのデータベースのローカルコピーを維持します。ここでデータを変換するので、このステージングと呼びましょう。これを実現するには、データ比較(もちろん自動化できるVS 2010機能)またはレプリケーションを使用します。レプリケーションがCDCをトリガーするかどうかはわかりませんが、データ比較は確かにトリガーします。
  2. ステージングデータベースで変更データキャプチャを有効にします。これにより、変更されたレコードのみが提供されるため、データを選択的に変換してデータベースを更新できます。
  3. CDCテーブルをスキャンし、データを変換してデータベースにロードするSSISジョブをビルドしてデプロイします。

私の知る限り、データ比較はスキーマが変更されたときにうまく機能します(スキーマの変更は無視されます)。CDCも適切に機能します。スキーマが変更された場合は、2番目のキャプチャインスタンスを作成し、最初のインスタンスを削除するだけです。

于 2010-08-25T07:26:57.137 に答える