• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DWHの処理能力について)

DWHの処理能力について

このQ&Aのポイント
  • DWHの導入を検討している際に、インポートしたいテーブル数が500超えてしまい、処理時間に1日かかってしまうという問題が発生しました。
  • 現在のシステムではオラクルのDBを使用しており、そのデータをDWH用のオラクルDBに写し、DWHにデータを入れる予定です。
  • 一般的に、DWHへのインポートできるテーブル数の制限や500テーブルを希望の時間でインポートする方法について知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.2

ANo.1です。 >基幹DBに顧客などのマスタテーブルや売上などのトランテーブルの数が約800あり、これらのデータを>毎日DWH用のDBへ差分更新します。 マスタは無視して、売上などのトランテーブルがいくつあるのでしょうか? これが数百あるなら分けたほうがいいというのが、前の回答の趣旨。 「xx別売上テーブルみたいな中間ワークテーブル」といっていたのが、 「DWH側のDBにビューを約500作成し」に相当します。 500も必要でしょうか? (ついついいくつも作ってしまうのがビューだったりします。) 例えば、課別月別売上ビューと部別月別売上ビューを別々に作ってしまったりとか。 (課別月別売上ビューがあれば部別月別に売上リストを出すのは結構早い。) 昔やった仕事で、縦軸、横軸の組み合わせ150個程の検索を、12個の中間ワークファイル (ビューと思ってください)で実現したことがあります。 ・・・ビューは、出力が遅ければ追加するという考え方で作っていくのも有りと思っています。 (もちろん、1伝票毎のトランザクションから出力させると遅いにきまっていますので、  最も細かい単位でのビューは作る前提のほうがいいですが。) 「ドクタサム」がよくわからないのであまりアドバイスはできないのですが、 ビューといっているけど実データを別に格納していて毎日更新する必要があるという前提と 考えられますので、効率よく更新する方法はあると思われます。 例えば、日別取引先別売上ビューがあるなら、月別課別売上ビューは、元データから更新する のではなく、日別取引先別売上ビューから更新するとか(前提として1取引先1課とする)。 あと、差分更新は、ちょくちょく、値があわなくなることがあります。 (あってはいけないのですが、バグやsqlを直接実行して削除したため、マイナスデータが 作れなかったとかいったイリーガルなオペレーションからおきることがあるので。) 例えば当月分を月末に全件再計算するとかしたほうが安全です。 毎日当月分を再計算するってほうがベターとは思いますが、処理時間とのバーターです。 >本来、基幹で作成しなければならなかった帳票などもDWHから出るようにしたいため プルーフリストとか入力内容を確認する帳票は、基幹で出すようにしてください。 基幹で正しいデータにしてからデータを受け取らないと、取り消しデータとか山のように データを受け渡ししなければいけないことになります。 ## ま、お分かりと思いますので余計なお世話なんですが。 ## とりあえず、こんなところで。 ## 後は個別にどんなデータとどんなビューがあって・・・ ## と1件ずつ掘り下げていく必要があるのですが、 ## QAサイトではそれもなかなか難しそうですね。

jkjk83310
質問者

お礼

Siegruneさん 重ね重ねご回答ありがとうございます。 トランテーブルは600くらいありますので、サーバは分けた方がよさそうですね。 また、ビューの必要性についても再度考えてみるようにしてみます。 いろいろ参考になりました。有難うございます。

その他の回答 (1)

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.1

>インポートしたいテーブル数が500超えてしまい ってキューブの数が500って言う意味ですか? ⇒もしそうなら、サーバを分けるべきでしょうというしかないです。 例えば、売上データ用DWHと経費データ用DWH・・・とかいった感じ。 そうじゃなくって、マスタデータとトランザクションデータが合わせて500という意味なら やりようはあります。 というか、500テーブルを毎日全件入れるのですか? マスタ類は差分をいれるように設計できませんか? 例えば、売上データのDWHなら、データは売上データの1種。 但し、xx別売上テーブルみたいな中間ワークテーブルがないと検索速度が遅いので つくっていますということなら、作成用のバッチを実行する。(またはこれもインポートすればよい) マスタ類は、依存関係がなければ並行処理できるのだから、同時に格納する。 サーバはマルチコアのサーバを用意しておけば、並行処理してくれるはず・・・。 とか何らかの対策をできるはずです。

jkjk83310
質問者

お礼

Siegruneさん ご回答ありがとうございます。 キューブというものがどういうものかあまりわかってしませんが、 基幹DBに顧客などのマスタテーブルや売上などのトランテーブルの数が約800あり、これらのデータを毎日DWH用のDBへ差分更新します。 また、DWH側のDBにビューを約500作成し、これらのビューもテーブルと一緒に多次元データベース差分更新をかけることになっています。 『500は多すぎる』といった部分は多次元データベースに更新かけるこのビューの数のようです。 サーバはXoen?といったCPUになり、ドクタサムといったものになります。 基本的に昨日までの内容に基づいた実績をDWHで確認し、本来、基幹で作成しなければならなかった帳票などもDWHから出るようにしたいため、毎日基幹のデータを更新する必要があります。 希望の要件を満たすためには複数のサーバに分けて処理する必要があるということでしょうか?

関連するQ&A