私はSSISを初めて使用します。私の要件は、asp.net Web ページにある EXCEL スプレッドシートからデータを取得することです。そのページから毎日データを取得する必要があります。どうすればこれを達成できますか?
1 に答える
解決できる問題が見つかるまで、問題を小さなチャンクに分解します。小さな問題をすべて解決したら、それらを統合してまとまりのあるソリューションを作成する必要があります。
問題文を読むと、次のニーズがあることがわかります
- Excel データ ソースからデータを抽出します (問題は、データをどう処理するかを指定していないことに注意してください) 。
- Web ページから Excel スプレッドシートを取得する
- SSIS を使用してこれを管理する
データの抽出
Excel 接続マネージャーを定義し、ファイルで動作するように構成します。推測されたデータ型に変更があるとデータ フロー タスクが停止するため、ファイルの形式が一貫していることを願っています。
コントロール フローにデータ フロー タスクを追加し、ソースとして Excel データ ソースを使用し、作成した Excel CM として接続マネージャーを設定します。適切な宛先を選択して接続します。Excel からの文字列データは nvarchar/unicode であるため、データ変換タスクを使用して非 Unicode タイプに切り替える必要があることに注意してください。
ファイルをダウンロードする
詳細が不足しているため、あなたのニーズを推測するしかありません。したがって、Excel ファイルは Web ページ上のリンクであると推測されます。Web ページは公開されているため、ログインは必要ありません。さらに、Web サイト上のファイルには常に同じ名前が付けられると想定しているため、 http://contoso.com/Yogurt.xlsファイル名が変更された場合はhttp://contoso.com/Yogurt_2013-05-19となります。 .xls、http://contoso.com/Yogurt_2013-05-20.xlsなどの場合、HTML を解析して適切なリンクを見つけるという副次的な問題があります。
これらすべての注意事項を踏まえて、WebClient.DownloadFileを紹介します。
string url = @"http://contoso.com/Yogurt.xls";
string downloadFile = @"C:\ssisdata\yogurt.xls";
WebClient wc = new WebClient();
wc.DownloadFile(url, downloadFile);
場所がハードコードされている、エラー処理を実行しないなどの理由で、このコードはプライムタイムの準備ができていませんが、解決策を示しています。
SSIS を使用する
上記のコードは 内に配置さScript Task
れ、URL を渡し、ファイルを変数としてタスクにダウンロードして、一般的なファイル グラブ タスクを作成します。