私は、約250のテーブル(ステージングテーブル、ディメンションテーブル、ファクトテーブル)を作成するように成長したETLを作成しました。SQL Serverインテグレーションサービス - メモリ不足例外
私はStacia MeisnerからETLデザインパターンを入手しました。彼女のETLデザインパターンは、ステージングテーブルのロード、ディメンションテーブルのロード、ファクトテーブルのロードのためのテンプレートパッケージの作成に基づいていました。考え方は、特定のパッケージで設定した変数を使用して適切なストアドプロシージャを呼び出し、リネージとデータの監査を作成し、式を使用して正しいテーブルなどを作成して、ソリューションにテンプレートパッケージをコピーして貼り付けるだけです変数と、データと正しいテーブル名のソースを格納するストアドプロシージャを持っている限り、すべて正常に動作します。
これは... 250台のテーブルに達するまでです。私はBIDSでETLを実行すると、狂ったようにRAMを消費します。 ETLをデプロイしてSQLで実行すると、ETLは実行されません。私のラップトップ上の1つのETL Runは、親パッケージからすべての子パッケージを開くので、おそらく約3〜4ギガバイトのRAMを消費するでしょう。私のソリューションには250のパッケージがあります。
ノートパソコン(現在は8GBまたはRAM)にあるRAMをアップすることはできますが、おそらく私の頭の中に警告音が鳴り響いて、250データフロータスクがより良い選択になっていると思います。今、このデザインパターンの欠陥を理解
は、私が
- を次のように私の質問があるとし、これまでETL内で実行されるので、多くのパッケージを持っていることを意図BIDSましたか?
- IDE内でETLを実行するとRAMの消費を減らす方法はありますか?
- RAMの消費量は予想されますか?その場合、開発者は通常どのようにそれを処理しますか? IDE内でETL全体を実行しないで簡単に回避することができますが、その部分をテストして全体を展開してください。
- テーブルごとに1つのパッケージから離れて、データフロータスクを実装する必要があります。 3個のパッケージ(ステージングテーブルのロード用に1個、寸法をロードするために1個、ファクトテーブルをロードするために1個)
お時間をいただきありがとうございます。
よろしく、しばらく離れRAMの質問からステッピング
ジェシー
ありがとう、本当にありがとう。私はあなたが言及したすべてに同意します。 –