web-dev-qa-db-ja.com

単一の完全なデータベースのデータウェアハウスを作成するにはどうすればよいですか?

データウェアハウスの概念について1日学習した後、データウェアハウジングを行うべきでない場合に実際に言うことができるソースを見つけることができませんでした。私が読んだほとんどのチュートリアルでは、DWはさまざまなソースからデータを取得して1か所に配置するためのものであると説明しています(簡略化)。

しかし、私の問題は、SQL Serverに単一のデータベースがあることです。後で分析に使用できるように、そのデータベースのコピーを用意するだけです。 ETLなどを実行する必要はありません。1週間または1日ごとにDWを更新するための何らかの方法です。 DWの設計とETLのこれらのステップをスキップできますか?最も簡単な解決策と私の問題への影響は何ですか。

1
tsu90280

おそらくあなたのデータベースは [〜#〜] oltp [〜#〜] スタイルのデータベースであり、アプリケーションの顧客/ユーザー側の部分として使用されます。 OLTPは、トランザクションをサポートするように最適化されています。

データウェアハウスは、分析クエリをより簡単にサポートするために構造化された [〜#〜] olap [〜#〜] スタイルのデータベースです。データウェアハウスの1つの側面は、さまざまなソースからのデータを1つの一貫したスキーマにマージすることです。これはあなたの問題の範囲外なので、これは無関係です。

3番目のアプローチは [〜#〜] ods [〜#〜] を作成することです。この種類のデータベースの主なポイントの1つは、レポートと抽出がメインのOLTPデータベースと干渉することを防ぐことです。これらは、データウェアハウスのソースとして使用できます。

何かを作成する前に、どのような問題があるかを理解しておく必要があります。複雑な分析のソースを作成しようとしているか、データウェアハウスが役立つか、ODSのようなものを示す可能性のあるトランザクションのレポートを実行しようとしているだけか。本当に必要なのは、まったく別のものである可能性があります。解決したい問題を明確に説明できたら、(おそらく、ここで質問することによって)どのソリューションが意味をなすかを決定できます。

2
JimmyJames

まず、データベースのバックアップを取り、それを別のサーバーに復元してデータウェアハウスとして機能させることができます。これはコピーよりも優れています。これを行うためのジョブを設定するだけです。

次に、データウェアハウスの理由は、レポートのニーズがトランザクションのニーズを遅くしないことです。

通常、データベースはトランザクション用またはレポート用に構築されます。トランザクションには不要なレポートの追加のインデックスが必要になる場合があります。

0
Jon Raynor

データウェアハウスは通常、トランザクションデータベースからのデータの非正規化されたコピーです。

通常のデータベースに顧客と注文のテーブルがあるとします。データウェアハウスには、すべての列を持つ1つの大きなcustomerOrdersテーブルがあります。

この原則を理解すると、変換レイヤーが必要であることがわかります。

変換レイヤーを作成したら、選択基準を入れる場所があります。

そのため、すべての顧客と注文は必要ありません。最後にエクスポートしてからの注文とそれに伴う顧客だけが必要です。そして、それを私の変換/エクスポートで指定できます。

プログラムできない場合、MSSQLにはこのプロセス用のツールがいくつかあります。たとえばSSIS。

0
Ewan