web-dev-qa-db-ja.com

SSISを介してSFTPまたはFTPSファイルに最適な方法

この質問は、SSISでSFTPまたはFTPSを介してファイルをアップロードするための最良の方法はどちらであるかを最初に尋ねました。これで、各ソリューションの長所と短所がリストされます。私は最近、CozyRocのSFTPライブラリを個人的に使用していますが、以下の各ソリューションをいずれかの時点で使用しています。

SSISコンポーネントライブラリ

方法:SSISコンポーネントライブラリを CozyRocCodeplexBizCryptoPragmaticWorks 、またはそれぞれのその他のベンダーからインストールします開発サーバーと本番サーバーを使用し、SFTPタスクを使用してファイルをアップロードします。

長所:使いやすい。見た目、におい、感じが通常のSSISタスクのようです。また、SSISはパスワードを機密情報として認識し、機密情報をクリアテキストで安全でない方法で保存するだけでなく、機密情報を保護するためのすべての通常のオプションを許可します。 ForEachループコンテナーなどの他のSSISタスクとうまく連携します。アップロードとダウンロードが失敗するとエラーになります。ダウンロードするリモートFTPサイト上のファイルの名前がわからない場合、または実行時までアップロードするファイルの名前がわからない場合に適しています。

短所:Codeplexソリューションを除いて、これには実稼働環境でのライセンスに費用がかかります。各開発マシンと本番マシンにライブラリをインストールする必要があります。それがCodeplexソリューションである場合は、特定のベンダーによってサポートされていないソフトウェアを使用しています。これにより、各バージョン間でライブラリを更新することもベンダーに依存するようになります。たとえば、2008 RTMの前に、2008のCTPバージョンで新しいサーバーを開発していましたが、CozyRoc 2005ライブラリはそれと互換性がありませんでした。最終的に彼らは2008互換バージョンをリリースしましたが、この問題を回避するにはコマンドラインソリューションを一時的に使用する必要がありました。

コマンドラインSFTPプログラム

方法:PuTTYやWinSCPなどの無料のコマンドラインSFTPアプリケーションをインストールし、バッチファイルまたはオペレーティングシステムのプロセスタスクを実行して実行します。 WinSCPを介してこれを行うための手順は、リストされています ここ

長所:無料、無料、無料。多数のGUI FTPクライアントが背後でPuTTYを使用しているように見えるので、PuTTYを使用している場合は安全です。 SSHではなくSSH2を使用していることを明確に理解している。

短所:私が試した2つのコマンドラインユーティリティ(PuTTYとCygwin)では、SFTPパスワードを安全でない場所に保存する必要がありました。ファイルのアップロード時にエラーやエラーをキャプチャする適切な方法が見つかりませんでした。このプロセスはSSISのように見えず、匂いもしません。ほとんどのコードは、SSIS自体ではなくテキストファイルにカプセル化されています。アップロードまたはダウンロードするファイルの正確な名前がわからない場合は使いにくい。

サードパーティのC#またはVB.NETライブラリ

方法:SFTPまたはFTPSライブラリをインストールし、ライブラリを参照するスクリプトタスクを使用してファイルをアップロードします。 (私はこれを試したことがないので、長所と短所を推測します)

長所:おそらくエラーを簡単にキャプチャできます。変数でうまく機能するはずなので、アップロードまたはダウンロードしているファイルの正確な名前がわからない場合でも、おそらく使いやすいでしょう。

短所:.NETライブラリと組み合わせたスクリプトタスクです。 SSISを使用している場合は、おそらく.NETコードよりもSSISタスクの方が快適です。通常の.NETプロジェクトと同じデバッグツールと機能がないため、スクリプトタスクのトラブルシューティングも困難です。 SQL Serverの異なるバージョン間で機能しない可能性があるサードパーティのコードへの依存関係を作成します。公平を期すために、SQL Serverの異なるバージョン間では、サードパーティのSSISタスクライブラリよりも機能する可能性が高いでしょう。もう1つの大きな欠点-現時点でこれを行う無料のC#またはVB.NETライブラリをまだ見つけていません。誰かが知っているなら、私に知らせてください!

30
Registered User

次の質問が役に立つかもしれません:

SFTPまたはFTPSタスクを実行するために推奨されるSSISコンポーネントは何ですか?

Cozyroc:

サーバーを「SSHv2のみを許可する」に設定してテストすることで、sshプロトコルの可用性を簡単にテストできます。コージーの営業部に聞いてみましたか?

コマンドラインsftp:

不明なファイル名の問題は、(少なくともCygwinでは)単純なスクリプト/ワイルドカードの使用で解決できます。

サードパーティlib:

FTPSにサードパーティのlibが必要なのはなぜですか? .NETは、2.0以降からこのプロトコルをサポートしています。

http://msdn.Microsoft.com/en-us/library/system.net.ftpwebrequest.enablessl.aspx

9

私は、SSISのSFTPの問題を解決するために実際に行うことを決定したことに関する最新情報を提供したかっただけです。起こったことの内訳は次のとおりです。

  1. 最初はPuTTYといくつかのバッチファイルを使用してファイルをアップロードしようとしましたが、エラーをキャプチャするのが困難でした。また、SFTP資格情報はPuTTYアップロードスクリプトの一部であるため、クリアテキストファイルに保存していました。

  2. 私たちはSSISサーバーのCozyRocライセンスを年間数百ドルで購入しました。私は彼らの製品を使用した結果に完全に満足しています。 CozyRocの製品では、アップロードに問題がある場合、制御フロータスクでエラーが発生します。チームには数人のジュニアSSISプログラマーもいるため、PuTTYスクリプトメソッドを使用するよりも、制御フロータスクのセットアップ方法を理解する方が簡単でした。最後に、機密データを保護するために、SSISのネイティブ暗号化を使用してパスワードが暗号化されます。サーバーにクリアテキストで保存されているパスワードはもうありません。

この質問で推奨された他のサードパーティライブラリの一部を確認しましたが、CozyRocが最も安価なベンダーであり、BIチームで使用できる他のSSISタスクもいくつかありました。ありがとう、CozyRoc!

2
Registered User