2016-03-22 21 views
1

5列を持つスキーマでETLを実行するためのSSISパッケージがあります。これらの各列は、適切なデータ型にキャストする必要があります。フラットファイルソースのための最高のパフォーマンス:複数の列を持つ単一のデータ変換タスク各列のVS複数のデータ変換タスク

私は最初、すべて単一のデータフロー変換タスクにキャストしました。そのため、エラー出力からどのキャストが失敗したのかを把握することが困難でした。

後で、列ごとに別々のデータフロー変換タスクを使用することにしました。

どのアプローチを使用するとパフォーマンスが向上するのでしょうか?

私はそれは本当にあなたが処理しているどのくらいのデータに依存するであろう

+0

私は以下に同意します - 最速のものはソースSQLクエリ –

+0

でキャストしている可能性がありますが、それぞれの入出力バッファが必要なので、すべての派生列変換にオーバーヘッドがあると仮定します。 1つの変換式で複数の派生カラムを実行するのではなく、1つの派生カラム変換で変換を実行します。私のすべてのETLで、varcharカラムでいっぱいのステージング・テーブルにロードし、そこでデータを修正して、別の場所に転送します。私は不良な列を識別するのと同じくらい多くのロジックを追加することができ、SSISでの変換よりもはるかに高速です –

答えて

3

(パイプが分離された)フラットファイルからのすべての私のデータを取得します。
データタイプはどのように変換されますか?
ETLプロセスのどの段階でデータを変換する必要がありますか?
最も速い方法は、可能であれば、それらをソースにキャストすることかもしれません。同じサーバー上のデータベースとデータベースとの間で変換を行う場合は、データベースレベルで変換を行うこともオプションになります。
プロセスに最も適した方法を特定するためには、いくつかのテストが必要です。

+0

すべてのデータはフラットファイル – DhruvJoshi

関連する問題