SQL Server Integration Services(SSIS)初心者向け-パート1







パート2

パート3



SSISは、統合を便利に実装できるツールです。 あるソースから別のソースにデータを転送するプロセスを実装します。 このプロセスはETLと呼ばれることもあります(英語から。抽出、変換、ロード-文字通り「抽出、変換、ロード」)。



この実践的なコースは、SSISを学びたいが、どこから始めればよいかわからない人にとって役立つと思います。 ここでは、ステップバイステップモードで、最初から始めます。 必要なものすべてのインストール。



その後、たくさんの写真があります!



SSISの学習に不可欠なツール



この記事では、例としてSQL Server 2014 Developer Editionを使用したSSISについて説明します 。 Integration Servicesは、SQL Server 2014でStandardから使用可能になりました。



さらに、 SQL Server Data Tools Developer Tool (SSDT)をダウンロードしてインストールする必要があります。



SSDTはVisual Studioの拡張機能であり、必要な種類のプロジェクトを作成できます。



インストールプロセスを容易にするために、Visual Studio 2012(VS2012)にSSDTを使用します。リンクからダウンロードできます(ファイル「 SSDTBI_VS2012_x86_ENU.exe 」)。

www.microsoft.com/en-US/download/details.aspx?id=36843



説明により、SSDTのこのバージョンは、SQL Server 2014、SQL Server 2012、SQL Server 2008、および2008 R2のSQL Serverのバージョンをサポートしています。



このバージョンのVSがコンピューターにインストールされていない場合、SSDTインストーラーは、必要な種類のプロジェクトを作成できる最小のシェルバージョンをインストールします。



SQL ServerとSSDTをインストールする



まず、必要なすべてのコンポーネントとともにSQL Serverをインストールします。



すべてをクリーンなWindows 7 SP 1(x64)にインストールしました。以下に示すもの以外のものをインストールする必要はありません。



なぜなら コースは初心者を対象としています。インストールプロセス全体を詳細に説明します。



SQL Server 2014のインストールファイルを実行します。











SSISが機能するには、次のコンポーネントを選択するだけで十分です。





なぜなら 今後、Analysis Services(SSAS)が必要になるので、必要でない場合はこのコンポーネントを選択できないことに注意しました。



他にインストールされているSQL Serverはありません。このインスタンスをデフォルトのインスタンスにします。







SQLエージェントを自動的に開始します。







必要に応じて、デフォルトで使用される照合を変更できます。







ユーザーsaのパスワードを入力して、混合認証モードを設定します。







なぜなら また、Analysis Servicesを選択してから、設定を行います。







[次へ]および[インストール]をクリックして、SQL Serverとそのコンポーネントのインストールを開始します。



コンピューターにはドライブが1つしかないため、デフォルトですべてのディレクトリを残しました。必要に応じて、より便利なディレクトリに変更できます。



次のステップはSSDTのインストールです。これはVisual Studioの拡張機能であり、SSISプロジェクトを作成する機能を提供します。 SSDTインストーラーは、VSシェルの最小バージョンをインストールするため、VSを個別にプレインストールする必要はありません。



SSDTBI_VS2012_x86_ENU.exe 」を起動し、次のステップに到達したら 、次の項目を選択します。







[次へ]をクリックすると、インストールが開始されます。



インストールが完了したら、念のため、コンピューターを再起動します。



SSISを学習するために必要なのはこれだけです。



デモデータベースの作成



SQL Server Management Studio(SSMS)を実行し、スクリプトを使用して3つのデータベースを作成します-最初の2つ(DemoSSIS_SourceAとDemoSSIS_SourceB)はデータソースとして機能し、3つ目(DemoSSIS_Target)はデータ受信者として機能します。



--        CREATE DATABASE DemoSSIS_SourceA GO ALTER DATABASE DemoSSIS_SourceA SET RECOVERY SIMPLE GO --        CREATE DATABASE DemoSSIS_SourceB GO ALTER DATABASE DemoSSIS_SourceB SET RECOVERY SIMPLE GO --       CREATE DATABASE DemoSSIS_Target GO ALTER DATABASE DemoSSIS_Target SET RECOVERY SIMPLE GO
      
      





ソースデータベースで、テストテーブルを作成し、テストデータを入力します。



 USE DemoSSIS_SourceA GO --    A CREATE TABLE Products( ID int NOT NULL IDENTITY, Title nvarchar(50) NOT NULL, Price money, CONSTRAINT PK_Products PRIMARY KEY(ID) ) GO --     SET IDENTITY_INSERT Products ON INSERT Products(ID,Title,Price)VALUES (1,N'',20), (2,N'',NULL), (3,N'',100), (4,N'',80), (5,N'',25) SET IDENTITY_INSERT Products OFF GO
      
      





 USE DemoSSIS_SourceB GO --    B CREATE TABLE Products( ID int NOT NULL IDENTITY, Title nvarchar(50) NOT NULL, Price money, CONSTRAINT PK_Products PRIMARY KEY(ID) ) GO --     SET IDENTITY_INSERT Products ON INSERT Products(ID,Title,Price)VALUES (1,N'',200), (2,N' ',70), (3,N'',220), (4,N'',150), (5,N' ',15) SET IDENTITY_INSERT Products OFF GO
      
      





ホストデータベースにテーブルを作成します。

 USE DemoSSIS_Target GO --   CREATE TABLE Products( ID int NOT NULL IDENTITY, Title nvarchar(50) NOT NULL, Price money, SourceID char(1) NOT NULL, --     SourceProductID int NOT NULL, -- ID   CONSTRAINT PK_Products PRIMARY KEY(ID), CONSTRAINT UK_Products UNIQUE(SourceID,SourceProductID), CONSTRAINT CK_Products_SourceID CHECK(SourceID IN('A','B')) ) GO
      
      





SSISプロジェクトの作成



Visual Studio 2012を起動して、提供されている環境設定の種類の1つを選択しましょう。ここでは、ローカルドキュメントを拒否します。







新しいプロジェクトを作成します( ファイル->新規->プロジェクト... ):







後で展開しやすくするために、プロジェクトプロパティに移動し、 ProtectionLevelオプションをDontSaveSensitiveに変更します。







デフォルトで作成されたパッケージのプロパティでも同じことを行います。







すべての新しいパッケージについて、このプロパティにはプロジェクトプロパティの値が入力されます。



接続を作成します。















データベース接続パラメーターを入力します。







SQL Serverエージェントタスクの作成時に、バトルフィールド接続パラメーターをさらに構成できます。







便宜上、接続名をSourceAに変更します。







同様に、 DemoSSIS_SourceBおよびDemoSSIS_Targetデータベースの接続を作成して名前を変更します







デフォルトパッケージの名前を「 LoadProducts.dtsx 」に変更します。







最初に、DemoSSIS_TargetデータベースのProductsテーブルを完全にクリアし、2つのデータベースDemoSSIS_SourceAとDemoSSIS_SourceBからデータを再びロードする単純なロジックを作成します。



クリーニングには、「SQLタスクの実行」コンポーネントを使用します。このコンポーネントは、「制御フロー」領域にマウスを使用して作成します。







明確にするために、コンポーネントの名前を変更できます。 「ターゲットからすべての製品を削除」という名前にしましょう。







この目的のために、Nameプロパティが使用されます。



この要素をダブルクリックして、次のプロパティを記述します。







なぜなら TSQLの「TRUNCATE TABLE Products」コマンドは何も返さないため、ResultSetプロパティはNoneのままにしておきます。



将来、パラメータの使用方法とSQLStatementで記述されたコマンドの実行結果の使用方法を検討しますが、今のところ、これが全体としてどのように機能するかの全体像を確認しようとします。



次に、「データフロータスク」コンポーネントを「制御フロー」領域にドロップし、「ソースAから製品をロード」という名前に変更し、「ターゲットからすべての製品を削除」からこのコンポーネントに緑の矢印を拡張します。







したがって、順番に実行されるチェーンを作成しました。



「ソースAから製品を読み込む」をダブルクリックすると、この要素の「データフロー」領域に移動します。



データフロータスクは、データフローを操作するためにネストされた要素が作成される独自の領域を持つ複雑なコンポーネントです。



「ソースアシスタント」コンポーネントをこの領域にドロップします。











このコンポーネントは、ソースからデータを受信します。 それをダブルクリックして、設定できます:







今のところ、「テーブルまたはビュー」に等しい「データアクセスモード」を使用します。 これにより、Productsテーブルからすべての行が取得されます。 「プレビュー...」をクリックすると、データを表示できます。



[列]タブでは、必要な列のみを選択し、必要に応じて、[出力列]列に新しい名前を入力して名前を変更できます。







受信者には、別の追加のSourceID列が必要です。これをDerived Columnコンポーネントを使用して出力セットに追加します。名前を「Add SourceID」に変更し、「OLE DB Source」からこの要素に青い矢印を伸ばします:







「Add SourceID」要素をダブルクリックして、値「A」を定数として書き込みます。







ここでは、型変換関数(DT_STR、1,1251)を使用して、Unicode文字列をANSIに変換しました。



次に、「宛先アシスタント」コンポーネントを作成します。







「Add SourceID」からのストリームをそこに向けましょう:







「OLE DB Destination」をダブルクリックして、設定を行います。







ここでは、結果のセットがどのテーブルに書き込まれるかを示します。



IDを保持 」は、受信テーブルにIDENTITYフラグのあるフィールドがあり、ソースから値も書き込まれるようにする場合に使用されます(これは、 SET IDENTITY_INSERT Products ONオプションを有効にすることに似ています)。



[マッピング]タブに移動して、ソースフィールドを受信者フィールドにバインドします。







同じソースフィールドとレシーバフィールドがあるため、バインディングは自動的に実行されました。



パッケージをテストして、データがDemoSSIS_TargetデータベースのProductsテーブルにアップロードされていることを確認できます。



Startを押すかF5を押して、Visual Studioから実行するパッケージを実行します







コンテキストメニューのコマンドを使用してパッケージを実行することもできます。







スタートアップオブジェクトとして設定 」を使用して、 開始(F5)をクリックして起動するパッケージを指定できます。



開始(F5)をクリックすると起動されるパッケージは、プロジェクトプロパティで再定義できます。







デフォルトでは、現在開いているパッケージが起動されます。これは、<Active Package>と等しいStartObjectIDの値によって示されます。



プロジェクトを開始すると、次の図が表示されます。







緑色のアイコンと下部のテキストで示されるように、パッケージはエラーなしで実行されました。



エラーがある場合は、[進行状況]タブで確認できます。



「パッケージの実行が完了しました...」リンクをクリックするか、ツールバーの「デバッグの停止」ボタンをクリックして、パッケージの実行を停止します。







リクエストを実行します:



 USE DemoSSIS_Target GO SELECT * FROM Products
      
      





そして、データが受信テーブルに書き込まれていることを確認してください。



「コントロールフロー」領域に移動し、「ソースBから製品をロード」と呼ぶ別のコンポーネント「データタスクフロー」を作成し、そこから緑色の矢印を「ソースAから製品をロード」を描画します。







この要素の「データフロー」領域をダブルクリックして、「ソースアシスタント」を作成します。







この要素をダブルクリックすると、構成が異なります。







「SQLコマンド」モードを選択し、次のクエリを作成します。



 SELECT ID SourceProductID, 'B' SourceID, Title, Price FROM Products
      
      





次に、すぐに「Destination Assistant」コンポーネントを作成し、「OLE DB Source」から青い矢印をそのコンポーネントまで延長します。











この要素のギアボックスをダブルクリックして構成します。











プロジェクトを実行し、2つのソースからのデータがターゲットデータベースのテーブルに落ちたことを確認します。



 USE DemoSSIS_Target GO SELECT * FROM Products
      
      









さらに、矢印のコンテキストメニューで、「データビューアー」をアクティブにできます。







これで、パッケージが実行のために起動されると、この時点で停止が行われ、このストリームのデータが表示されます。







パッケージの実行を続行するには、矢印ボタンをクリックするか、データビューを閉じる必要があります。



この機能を無効にするには、矢印コンテキストメニューで[日付ビューアを無効にする]を選択します。







最初の部分については、これで十分だと思います。



アセンブリを作成します。







その結果、ファイル「C:\ SSIS \ SSISDemoProject \ bin \ Development \ SSISDemoProject.ispac 」が取得されます。



このプロジェクトをSQL Serverに展開する方法を検討してください。



SSISの展開



後続のすべてのアクションはSSMSで実行されます。



SSISDBディレクトリの作成:







ここにパスワードを入力します。



次に、プロジェクトを配置するフォルダーを作成します。







プロジェクト自体を展開します。



















結論として、次の図が表示されます。







更新(F5)後、プロジェクトが表示されます。







SQL Serverエージェントでのタスクの作成



SQLエージェントでタスクを作成して、スケジュールに従ってパッケージを実行します。







新しいステップを作成します。







構成パラメーター 」タブで、パッケージのパラメーターを設定できます(次の部分で検討します)。



[ 構成 ] [ 接続マネージャー ]タブで、プロジェクトで作成した各接続の接続設定を変更できます。







[詳細設定]タブで、ステップが成功または失敗したときに使用されるロジックを変更できます。







作成されたステップ:







このタスクのスケジュールを作成することは残ります。







スケジュールはさまざまな方法で設定できます。 ここではすべてが直感的であると思います。







すべて、タスクが作成されます。



テスト実行を行う:





ステップが1つしかないため、タスクはすぐに開始されます。それ以外の場合は、実行を開始するステップを指定する必要があります。



タスクの結果は、次のログで確認できます。





このログでは、各ステップの完了の成功、実行時間およびその他のパラメーターを確認できます。



パッケージの実装に関するより詳細なレポートは、次のレポートを使用して表示できます。















前半の結論



この部分では、読者がすぐにすべての外観と動作を完全に把握できるように、概要図を提供しようとしました。



生徒が必要なツールをすべて個別にインストールし、実際に段階的に教材を操作できるように、すべてを可能な限り詳細に説明しようとしました。 独立した研究では、作業環境を整えることは非常に重要な側面です。



私の意見では、SSISは非常に便利で直感的なツールであり、その多くは自分で理解することで理解できます。 これは私自身の経験から言っています。なぜなら、私自身がSSISに対処しなければならなかったからです。ここでは、この分野での私の経験を共有します。



この資料が多くの人がこのツールの研究の最初の一歩を踏み出し、彼らの知識を仕事にさらに応用するのに役立つことを願っています。



良い週末を! 頑張って



パート2



All Articles