ここには2つの問題があるようです。1つ目は、接続マネージャーの使用方法を理解することです。フラットファイル入力の場合、通常、ファイルレイアウトごとに接続マネージャーを作成する方が適切です。ファイル1は(Column1)のように見え、ファイル2は(Column1、Column2)のように見えますか?つまり、2つの異なるフラットファイル接続マネージャーを定義する必要があります。
2つのバージョンのファイル2がある場合、1つはColumn1に数字があり、もう1つはColumn1に文字データが含まれている場合、2つの固有の接続マネージャー(合計3つ)が必要になります。
上記に関連する朗報は、ファイル名の変更は簡単であり、一意の接続マネージャーを作成する必要がないことです。F1.txt、F1_20120501.txt、F1.good.txtなどはすべて、そのレイアウトに対して定義した接続マネージャーによって提供されます。実行時に現在のパッケージを更新するには、特定の接続マネージャーのConnectionStringプロパティで式を使用する必要があります。
これらのフラットファイル接続マネージャーがすべて揃ったので、それらを使用する必要があります。その魔法はデータフロータスクで発生します。データフローは、その中で使用されているメタデータについて非常に厄介です。データフローを設計するときは、SSISと契約を結んでおり、文字フィールドを日付フィールドにするか、すべての列を提供しないことで違反しようとすると、保持していないため、パッケージは検証チェックに失敗します。掘り出し物の終わりまで。これに対する解決策は、パッケージが必要とするさまざまな接続マネージャーの周りに複数のデータフローを定義する必要があるということです。
これらすべてを定義したら、コーディネーターがソースファイルを調べて、実行するデータフローを決定する必要があります。この質問の例を提供しました多くのデータソースの1つからインポートするSSISパッケージを作成します
一貫性のない列数のインポートのためのSSISタスクに関心があるかもしれない解決策を提案した同様の質問もありましたか?それは本当にあなたのルールが処理するためのものに依存します。
SSISパッケージでビジネスロジックを統合/再利用しようとしている場合は、さまざまなデータフローを使用して、個別のソースを単一のデータストレージのもの(rawファイル、null列が多いステージングテーブルなど)にステージングするアプローチを検討します。 )。