0

次の場合の適切なアプローチは何ですか。

毎週、トランザクションを表す約 250,000 のレコードが SQL 2005 データベースの大きなテーブルに追加されます。このデータを拡張して別のテーブルに追加する必要があります。(たとえば、トランザクションのクライアント ID に基づいて、特定のビジネス ルールに基づいてさまざまなデータが計算されます。データは、クライアント ID とトランザクション ID に依存します。) このテーブルは、分析エンジンの前処理された入力と考えてください。この入力データは、さらに 3 番目のデータベース テーブルを生成する分析エンジン (ベンダー ソリューション) に渡されます。このテーブルは、チームがレポート作成に使用できる形式で結果を含むテーブルに追加するために、さらなる処理 (クライアント ID による集計や社内分析など) が必要になります。将来的には、同じデータが他のアプリケーションに供給される可能性があります。

私たちのスキル ベースは、C、C++、C#、.NET であり、ADO.NET と LINQ にもある程度精通しています。このようなプロジェクトでこれが十分でない場合は、お知らせください。現在、新しい人材のための予算はありませんが、プロジェクトの要件を満たすために、社内のスキルベースを強化するか、別のチームから借用することに取り組むでしょう.

4

4 に答える 4

3

あなたの説明に基づいて、これは、たとえばT-SQLやSSISを使用して、データベースを完全に駆動する必要があるように聞こえます。テーブルへの読み込みと前処理と後処理 (集計、後続の読み込みなど) は、SSIS が得意とするところです。意図を逃した場合はお知らせください。

于 2008-12-24T17:54:23.770 に答える
2

私は最近、次元モデリング、スター スキーマ、およびデータ ウェアハウジングについて読んでいるので、ハンマーを勉強した後に釘を見たことを許してください。優れたデータモデラーが手元にあるかどうかお尋ねします。次元モデリングに関する Ralph Kimball のアイデアが本当に好きです。ベンダのレポート ソリューションがすぐに組み込まれることは間違いありません。トランザクション スキーマとレポート スキーマのミッションの違いにより、異なるアプローチが必要になるように思えます。

于 2008-12-24T18:12:46.680 に答える
0
  1. データベース操作は S... L... O... W...

  2. データベースに物を入れてクエリします。

したがって、中間結果はデー​​タベース ストレージの候補として適切ではありません。

「トランザクションを表す 250,000 レコード .... このデータを拡張する必要があります ... トランザクションのクライアント ID に基づいて、さまざまなデータが特定のビジネス ルールに基づいて計算されます。データはクライアント ID とトランザクションに依存します。 ID。」

最初のいくつかの操作は、クエリするデータにつながりません。データベースにステージングするだけです。これは (1) 遅く、(2) あまり役に立ちません。この拡張処理をすべて行うには、ファイルに残すだけです。

データベースのバックアップと同じように簡単にバックアップできるディレクトリにファイルを配置すれば、問題ありません。

あなたのデザインはかなりうまく固定されているように見えるので、それがあなたができるすべてです。ただし、データベース設計が柔軟な場合は、Kimball の Data Warehouse Toolkit を見てください。クライアント ID に依存するフィールドがある場合、それは実際にはクライアント ディメンションがあることを意味します。

クライアントのテーブルを定義します。ファクトとディメンション間の単純な結合を使用して、クライアント データを見つけます。

この次元ルックアップ手法は、これらすべての「データ拡張」操作で機能します。したがって、「データ拡張」で実行する実際の処理はほとんどありません。

ほとんどの場合、着信トランザクションのキーを定義済みのディメンションと照合する方法を理解します。ディメンション値が変更されている場合があります。場合によっては、新しいディメンション値を追加する必要があります。その結果、「拡張」は、次元をチェックし、各入力レコードにいくつかのキーを追加することになります。次に、適切なメジャーとディメンションへの外部キーを含むファクト テーブルを読み込みます。

于 2008-12-28T15:56:54.627 に答える
0

ETLプロジェクトのように聞こえます。SQL Server Integration Service を使用したい。これは、SQL 2000 の DTS に代わるものです。

于 2008-12-24T18:08:49.497 に答える