8

私は社内開発グループの QA 部門に所属しています。当社の実動データベース プログラマーは、SSIS パッケージを構築して、さまざまなデータベース ビットからサードパーティ アプリケーションにインポートするためのロード ファイルを作成しています (これとの統合をテストしています)。

ビルドすると、作成に使用した SQL Server と Visual Studio のバージョンに依存し、運用環境にもほとんど依存していないことがすぐにわかりました (これは SSIS の問題ではなく、性質を説明するだけです)。私たちのセットアップの)。

これを構築するには、数日間の地道な作業が必要でしたが、QA 環境では動作しませんでした。

パッケージが実行していた SQL クエリをそのチームに尋ねた後 (本番環境では正常に動作します)、依存関係なしで同じタスクを実行する Python スクリプトを作成しました。2 時間強かかりました (データベースとの対話を処理するためのカスタム ライブラリが既にあることに注意してください)。必要な UTF-16LE ファイルを書き出すことができました。

さて、私たちの実動データベース プログラマーは SSIS の専門家ではありませんが、ワークフローで SSIS をかなり使用しています。

したがって、私の質問 - かかる時間と、SQL Server および Visual Studio のバージョンへの依存関係を考えると、私の Python コードでは見られない可能性がある、SSIS パッケージがもたらす利点または利点は何ですか? それともシェル スクリプトですか、それとも Ruby ですか、それともコード フレーバー オブ ザ モーメントですか?

4

1 に答える 1

11

私は決して SSIS の専門家ではありませんが、SSIS の使用経験が 3 年強の平均的な開発者です。他のソフトウェアと同様に、SSIS にも短所はありますが、これまでのところ、SSIS での作業を楽しんでいます。技術の選択は、自分の要件と好みによって異なります。SSIS が他のテクノロジよりも優れているとは言いません。また、あなたが言及したPython、Ruby、またはその他のテクノロジーを使用したことはありません。

これが私の2セントです。これを一粒の塩で取ってください。

  1. 平均的な開発者の観点から見ると、SSIS は扱い方のニュアンスを理解すれば簡単に使用できます。他の技術についても同じことが言えると思います。SSIS パッケージは、コーディング ツールではなく、ビジュアル ワークフローです (もちろん、SSIS には優れたコーディング機能もあります)。何百行ものコードを調べるのではなく、ワークフローを見ることで、パッケージ内で何が起こっているのかを簡単に理解できます。

  2. SSIS は、主に ETL (抽出、変換、読み込み) ジョブを実行するために構築されています。特にSQL Serverでその機能をうまく処理できるように微調整されており、フラットファイル、DB2、Oracle、およびその他のデータソースも処理できることは言うまでもありません.

  3. ほとんどのタスクは、最小限のコーディングまたはコーディングなしで実行できます。数分以内に、あるデータ ソースから別のデータ ソースに数百万行をロードできます。タブ区切りファイルから3 分以内に 100 万行を SQL Server にロードするパッケージを示すこの例を参照してください

  4. Loggingパッケージとそのタスクによって実行されるすべてのアクションをキャプチャする機能。エラーを特定したり、パッケージによって実行されたアクションに関する情報を追跡したりするのに役立ちます。これにはコーディングは必要ありません。ロギングについては、この例を参照してください。

  5. Check Pointsレコーダーのようにパッケージの実行をキャプチャするのに役立ち、パッケージを最初から実行するのではなく、失敗した時点からパッケージの実行を再開するのに役立ちます。

  6. Expressions特定の条件に応じてパッケージ フローを決定するために使用できます。

  7. Package configurationsdtsconfigデータベースまたは XML ベースのファイルまたはマシン ベースの環境変数を使用して、さまざまな環境用にセットアップできます。環境変数ベースの構成については、この例を参照してください。ポイント #4 から #7 はすぐに使用できる機能で、マイナーな構成が必要であり、コーディングはまったく必要ありません。

  8. SSIS は .NET フレームワークの機能を活用でき、開発者は要件を満たすコンポーネントが見つからない場合に独自のカスタム コンポーネントを作成することもできます。この例を参照して、さまざまなデータ ソースと共に .NET コーディングを最適に使用する方法を理解してください。この例は 未満で作成されました3 hours

  9. SSIS は、データを再読み取りすることなく、複数の変換に同じデータ ソースを使用できます。マルチキャストの意味を理解するには、この例を参照してください。XML データ ソースの処理方法の例を次に示します。

  10. SSIS は、SSRS (Reporting Services) およびSSAS (Analysis Services) とも簡単に統合できます。

SSIS で使用した非常に基本的なものをリストしましたが、多くの優れた機能があります。前述したように、Python、Ruby、または他の言語がこれらのタスクをそれほど簡単に処理できるかどうかはわかりません。

それはすべて、テクノロジーを快適に使用することにつながります。テクノロジーが新しいとき、人々は非常に懐疑的で、それを適応させようとしません。

私の経験では、SSIS を理解して受け入れると、本当に便利なテクノロジになります。これは、SQL Server で非常にうまく機能します。パッケージの開発中に障害に直面したことは否定しませんが、ほとんどの場合、それらを克服する方法を見つけました。

ご期待に添えない回答かもしれませんが、参考になれば幸いです。

于 2011-06-08T20:01:51.640 に答える