By: Koen Verbeeck|更新しました。 2018-07-31| コメント(13) | 関連するもの その他 > Integration Services 開発

Problem

SQL Server Data Tools (SSDT) は Integration Services (SSIS) パッケージとプロジェクトを作成および維持するための開発環境です。 歴史的に、後方互換性はなく、新しいバージョンの SSDT では、古いバージョンの SSDT 用の SSIS パッケージを作成することができませんでした。 SQL Server 2016 リリース以降、SQL Server Data Tools は、SQL Server 2012 までの後方互換性をサポートしています。 Thipでは、この新機能について説明します。

ソリューション

イントロダクション

歴史的に、SQL Serverのすべてのリリースには、ビジネスインテリジェンス開発環境のリリースが付随していました。 これは、常にVisual Studioにインストールされているテンプレートのセット、またはVisual Studioが既に存在しない場合、BIプロジェクトを処理することができる唯一のShellof Visual Studioのどちらかであった。 このツールを使用すると、統合サービス、分析サービスとレポートサービスprojects.Initiallyをcoulddevelop、このツールは、SQL Server 2012で、それがSQL Server Data Toolsに改名されたビジネス-インテリジェンス-開発スタジオまたはBIDS.Inと呼ばれていました。 しかし、MicrosofthadもSQL Server Data Toolsと呼ばれる別の製品、このツールを使用すると、SQL Serverデータベースプロジェクトを作成し、管理することができました。 BIツールはSQL Serverのインストールメディアに収録されていますが、データベースツールは別途(無料で)ダウンロードする必要がありました。 このため、SSDT は SQL ServerData Tools for Business Intelligence または SSDT-BI に改名されました。 SQL Server 2016以降、BIツールはデータベースツールと結合され、ツールセット全体はSQL Server Data ToolsまたはSSDTと名付けられました。 概要を説明します。

  • SQL Server 2005 – Visual Studio 2005 (BIDS)
  • SQL Server 2008 および 2008R2 – Visual Studio 2008 (BIDS)
  • SQL Server 2012 – Visual Studio 2010 (SSDT, SQL Server installationmedia で入手可能) または Visual Studio 2012 (SSDT-BI, 別途ダウンロード可能)
  • SQL Server 2014 – Visual Studio 2013 (SSDT-BI.SSDT) (SDDT-BI.SSDT, 別途ダウンロード可能)。 別途ダウンロード可能)
  • SQL Server 2016 – Visual Studio 2015(SSDT、別途ダウンロード可能でデータベース プロジェクトも組み込まれています)
  • SQL Server 2017 – Visual Studio 2015 または Visual Studio 2017(SSDT)

ここで問題だったのが、SSIS が下位互換性をサポートしていないことでした。たとえば、SQL Server 2008 用のパッケージを開発する場合、VisualStudio 2008 が必要でした。 SQL Server 2014向けに開発したい場合は、Visual Studio2013が必要でした。 Visual Studio 2013 では、SQL Server2008 や SQL Server 2014 以外のバージョンの SQL Server 用の SSIS プロジェクトを開発することができませんでした。 これは、複数のバージョンの SSIS で作業する場合、開発マシン上に多くの異なるバージョンの Visual Studio があることを意味します。

SSDT の最新リリース (SQL Server 2016 以降) では、これらの問題を解決します。後方互換性の導入により、2012 から 2017 およびそれ以降のバージョンの SSIS プロジェクトを開発および保守するために 1 つの SSDT のバージョンを使用することが可能になっています。 SSAS と SSRS がかなり長い間後方互換性をサポートしていることに注目することが重要です。

SSIS と後方互換性

The rest of this tip was written using the Visual Studio 2015 SSDT release,together with SQL Server 2016. このヒントで与えられるすべてのアドバイスは、それ以降のバージョンにも有効です。

まず最初に、最新バージョンの Visual Studio 2015SSDT プレビュー リリースをインストールする必要があります。 SQL Server 2016 のインストール メディアを開くと、ダウンロード ページへのリンクが表示されます。 また、SQL Server Management Studio(SSMS)のダウンロードページへのリンクも含まれており、こちらも別途ダウンロードするようになったためです。

新しいプロジェクトの作成

新しいプロジェクトを追加すると、SSDTでもデータベースプロジェクトやBIプロジェクトが作成可能になったことが分かります。

プロジェクトのプロパティでは、SSDTがこのプロジェクトで使用するターゲットSSISバージョンを設定できます。

デフォルトのターゲットバージョンはSQL Server 2016(SSISの後のバージョンでは、SQL Serverの最新バージョンとなる予定です)です。 SQL Server 2014 と SQL Server 2012 もサポートされていますが、古いバージョン (2005 と 2008) はサポートされていません。 SQL Server 2012 より古いプロジェクトがある場合、最新の SSDT バージョンを使用する前に、まずそれらをアップグレードする必要があります。

ターゲット バージョンが設定されると、SSIS ツールボックスはそれに応じて適応します。 たとえば、SQL Server 2016 では、利用可能な新しい Hadoop タスクがあり、Azure feature pack から Azure タスクをダウンロードできます。

バージョンを SQL Server 2014 に設定すると、これらの新しいタスクはすべて SSIS ツールボックスから削除されます。 SQL Server 2016 で導入されたデータフロー変換も同様です。

プロジェクトのバージョンを変更すると、既存のパッケージが変更されるかもしれないという警告が表示されます:

ただし SQL Server 2016 機能を使用すると、対象バージョンを以前のバージョンに設定すると、パッケージを開くときにエラーが表示されます。

パッケージは開くことができますが、問題のあるタスク、変換、または接続マネージャが消えてしまったり、エディターを開くことができなかったりする場合があります。 SQL Server 2016 に切り替えても問題が解決されない可能性があります:オブジェクトがまだ壊れている可能性があります。 この場合、オブジェクトを削除して、再度追加する以外に方法はありません。

執筆の時点では、ターゲット バージョン間の切り替え時にいくつかのバグが存在します。 MSDN ブログの記事 What’s New for SSIS 2016 RC0? にリストがあります。

SSIS で独自のカスタム コンポーネントを使用している場合、それらをターゲット バージョンのプロパティで動作させるには、いくつかのエクストラステップを実行する必要があります。 SQL Server MVP の Joost vanRossum が、ブログ投稿「Switching Target Server Vions for custom components」で、この方法を説明しています。

既存のパッケージをプロジェクトに追加する

以前のバージョンの既存の SSIS パッケージをプロジェクトに追加すると、たとえば、SSIS 2012 パッケージを 2016 プロジェクトへ追加すると、パッケージはターゲット バージョンに合わせてアップグレードされます。

バージョンが一致している場合、もちろんアップグレードは行われず、パッケージはプロジェクトに直接追加されます。

テストでは、このメッセージを常に信頼できるわけではないことがわかりました。 成功メッセージがあっても、SQL Server 2016 のみのコンポーネントを使用すると、パッケージが壊れる可能性があります。

既存のプロジェクトを開く

以前のバージョンの SSDT で作成したプロジェクトを SSDT 2015 で開くと、アップグレード ウィザードが自動的に開始されます。 これは、すべてのパッケージが SQL Server 2016 にアップグレードされることを意味します。

プロジェクトをダウングレードして以前のバージョンに戻すことはできますが、アップグレード プロセスを経ることはおそらく必要ないことでしょう。 代替案として、プロジェクト ファイルを編集し、次の行を追加することができます。 SQL Server 2014 の場合は、もちろん SQLServer2012 を SQLServer2014 に変更します。 この回避策はうまくいきそうですが、プロジェクトファイルのXMLを手動で編集することは、実際にはサポートされていません。 アドバイスとしては、新しい空のプロジェクトを作成し、ターゲットバージョンを設定してから、パッケージの追加を開始します。

Control Flow Parts

Control Flow Partsは、tipSQL Server Integration Services 2016 Control Flow Templates Introduction(テンプレートからパーツに名前が変更されました)で紹介されています。 意外なことに、ターゲットバージョンが SQL Server2016 でない場合でも、コントロール フロー パーツを使用することができます。 これは、設計時の機能であり、パッケージが実際にどのように動作するかに影響を与えないため、可能なことなのです。 この例では、ターゲット・バージョンをSQL Server 2014に設定した新しいプロジェクトを作成しました。

パッケージをデバッグすることは問題ありません。

また、SQL Server 2014 SSIS カタログ内でパッケージを実行することもできます。

まとめ

ターゲット サーバー バージョンのプロパティは、SSIS プロジェクトに対して SSDT 2015 で下位互換性を紹介します。 この新しい機能により、SSIS の古い欠点が最終的に修正されました:異なる SSIS プロジェクトを管理するために、単一のバージョンの Visual Studio しか使用できません。 それは問題につながる可能性があるため、プロジェクトの開始時にサーバーのバージョンを設定し、あなたがあまりにも頻繁にそれを切り替えしないことをお勧めします。良いニュースは、SSDT 2015以降では、あなたの古いプロジェクトでコントロールフロー部品を使用することもできます!

次のステップ
  • SQLサーバーデータツールの異なるバージョンの詳細については、
    • TheSSDT Evolution
    • SQL 2014 CTP1、どこに私のBIDSは何ですか?
  • コントロールフロー部品の詳細については、tipSQL Server Integration Services 2016 Control Flow Templates Introduction.
  • その他のSQL Server 2016のtipについては、thisoverview.

Last Updatedを使用して確認できます。 2018-07-31

著者について
Koen Verbeeck は BI プロフェッショナルで、特に SSIS に愛着を持ち Microsoft BI スタックを専門に扱っています。
View all my tips
Related Resources

  • More Business Intelligence Tips…

コメントを残す

メールアドレスが公開されることはありません。