0

または、おそらくロギングデバイスの構成に一貫性がないため、SSISを介してcsvファイルのコレクションをロードする必要があります。このファイルには、列名の最初の行がある場合とない場合があります。それ以外のファイル形式は同じです。

ロギング構成を標準化できる可能性があるので、各ファイルを開いてヘッダー行があるかどうかを判断し、それに応じて異なる方法で処理するスクリプトタスクでプログラミング時間を無駄にしたくありません。

むしろ、Destination.MaxNumberOfErrorsのように、ファイルごとに最大1つのエラー行を許可するものを指定したいと思います(したがって、ファイルの唯一の問題がヘッダーである場合、失敗しません)。ただし、フラットファイルソースエラーは致命的であるため、続行する方法がわかりません。

失敗コードの意味はコンポーネントによって定義されますが、エラーは致命的であり、パイプラインは実行を停止しました。この前に、障害に関する詳細情報を含むエラーメッセージが投稿される場合があります。

私の最善の選択は、今のところ最初のデータ行を単に無視して、より均一な構成が実現できるかどうかを確認することです。もちろん、この戦略が実施されている間は、データセットは無効です。データが非常に大きいため、ETLルーチンは可能な限り効率的である必要があることを付け加えておきます。私の意見では、これは、代替手段がある場合、ファイルの解析または条件付き分割を禁じています。

問題は、この致命的なエラーから続行するようにファイルソースを構成する方法があるかどうかです。

4

2 に答える 2

0

はいあります!

エディターの [エラー出力] ページで、各行のエラー応答を [行のリダイレクト] に変更します。次に、ソースのエラー出力を介してそれらを単一の列として取得することにより、問題のある行 (この場合はヘッダー) をトラップできます。

于 2011-10-08T09:13:00.303 に答える
0

ヘッダー名の値がデータに表示されないと想定できる場合は、フラット ファイル接続マネージャーをヘッダーなしとして定義します。データ フロー内の最初のステップでは、列 1 ~ N の値とヘッダー行の値をチェックします。値が一致しない場合にのみ、データを通過させます。

それよりも複雑な問題はありますか?

于 2011-10-08T06:37:21.703 に答える