2017-10-06 5 views
0

私は、経験と理解に基づいて、以下のシナリオでスタックオーバーフローメンバーの考えを知りたいと思います。SSISパッケージとETLプログラムを.NETコンソールアプリケーション(C#.NET)に置き換える?

入力として20〜30百万のレコードが入力されます(入力は通常csvまたはxlsファイルで、役立つ場合はDBにアップロードできます)。これらのレコードを処理し、出力ファイルとエラーを含む異なるファイルを生成する必要がありますファイル。したがって、いくつかのビジネスロジックに基づいて、それらのレコードは出力ファイルまたはエラーファイルに移動されます。

現在のところ、このプロセスでは、SSISパッケージと一部のETLツールを使用してそのタスクを実行しています。それらのpkgsとETLツール自体は、入力サイズに応じて、処理に5〜15分かかります。

多数のSSISパッケージとETLプログラムがあります。

これらのSSIS pkgsおよびETLプログラムをいくつかの.NETアプリケーションに置き換えたいとします。 通常、I/Oが.netで遅いため、これらの.netアプリケーションの速度とパフォーマンスに懸念があります。

これに対処する方法はありますか。

+0

質問には多くの間違い、間違い、神話が含まれています。 IOは.NETで遅いですか?本当に?遅いIOは、悪いコード、悪いクエリ、悪いスキーマによって引き起こされます。それは.NETではないからです。 *なぜ*あなたはSSISから離れたいですか?あなたは同じ機能を複製できると思いますか?監視とロギングを含む?ストリーム処理を含む?なぜあなたはコンソールアプリケーションが*より優れていると思いますか? *実際の要件は何ですか? –

答えて

1

最も単純なSSISパッケージを、BULKINSERTでデータをインポートする.NETコンソールアプリケーションに置き換えました。性能は満足のいくものです。

+0

BULK INSERTを実行するためにコンソールアプリケーションは必要ありません。これが 'bcp'ツールのやり方です。 SSIS、BULK INSERT、bcpはこの場合同じ仕事をします –

+0

真ですが、コンソールアプリケーションに置くと、他のロジックと調整することができます。 –

0

個人的には、パッケージが新しい人に何をするか説明しやすいため、SSISを使用することを好みます。

C#コンポーネント/タスクを使用するたびに、私はほとんど常にパッケージを永久に所有しています。私の目標は、開発した作業を手渡すことです。

私はBI環境にあり、データベース開発者を雇って主に作家を報告していることや、通常はWeb開発でspeciallizeしている.netの人々が原因かもしれません。

XMLとJSONを返すWebサービスをプルするために、私は本当に自分自身にC#を教えました。データがページされ、SSIS XMLソースを使用しようとしているときにc#クラスに変換することで、非常に複雑なので、処理が簡単でした。しかし、今私は基本を持っているので、より多くの問題を解決する方法をすぐに学ぶことができます。

これはすべて、SSISのエンベロープが好きで、スクリプトタスクとコンポーネントが必要なときに素早く、時にはもっとシンプルなときに使用するということです。

関連する問題