Download - SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

Transcript
Page 1: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書シリーズ No.7

Integration Services 入門

Published: 2008 年 3 月 18 日

改訂版: 2008 年 11 月 17 日

有限会社エスキューエル・クオリテゖ

Page 2: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

2

この文章に含まれる情報は、公表の日付の時点での Microsoft Corporation の考え方を表しています。市場の変化に応える必要があるた

め、Microsoft は記載されている内容を約束しているわけではありません。この文書の内容は印刷後も正しいとは保障できません。この文章

は情報の提供のみを目的としています。

Microsoft、SQL Server、Visual Studio、Windows、Windows XP、Windows Server、Windows Vistaは Microsoft Corporation の米国

およびその他の国における登録商標です。

その他、記載されている会社名および製品名は、各社の商標または登録商標です。

© Copyright 2008 Microsoft Corporation. All rights reserved.

Page 3: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

3

目次

SSTTEEPP 11.. IInntteeggrraattiioonn SSeerrvviicceess のの 概概要要ととンンスストトーールル .......................................................... 4

1.1 Integration Services について ............................................................................... 5

1.2 ンポート/エクスポート ウゖザードと SSIS デザナ................................................ 7

1.3 Integration Services のンストール ....................................................................... 9

1.4 自習書を試す環境について .....................................................................................10

SSTTEEPP 22.. ンンポポーートト//エエククススポポーートト ウウゖゖザザーードドにによよるる単単純純ななデデーータタ転転送送 ....................................11

2.1 データベースの作成 .............................................................................................12

2.2 テキスト フゔルの取り込み .................................................................................13

2.3 Access データベース(.mdb)の取り込み.................................................................22

2.4 Excel データ(.xls フゔル)の取り込み .................................................................31

2.5 保存したパッケージ(.dtsx)の実行と編集 ................................................................40

2.6 データのエクスポート ..........................................................................................54

SSTTEEPP 33.. SSSSIISS デデザザナナのの基基本本操操作作 ..................................................................................60

3.1 作成するパッケージの概要 .....................................................................................61

3.2 データベースの作成 .............................................................................................62

3.3 SSIS デザナの起動 ...........................................................................................63

3.4 データ フロー タスクによるデータの転送 .................................................................66

3.5 派生列コンポーネントによるデータ変換 ....................................................................77

3.6 参照コンポーネントによる別テーブルのデータ取得 ......................................................86

3.7 データ ビューゕによる転送中のデータの表示 .............................................................99

SSTTEEPP 44.. パパッッケケーージジのの実実行行 ........................................................................................... 106

4.1 パッケージの実行(dtexecUI) ............................................................................ 107

4.2 コマンド プロンプトからのパッケージ実行(dtexec)................................................ 110

4.3 パッケージの定期実行(SQL Server Agent ジョブ) ................................................. 111

4.4 Integration Services とデータ ウェゕハウスの関係 ~ETL~ ...................................... 116

4.5 SQL Server 2008 のデータ ウェゕハウス関連のパフォーマンス向上 .............................. 118

4.6 BI 系のサービス(Reporting Services、Analysis Services) ...................................... 119

4.7 SQL Server 2008 Integration Services の新機能 .................................................... 121

4.8 おわりに ......................................................................................................... 122

Page 4: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

4

SSTTEEPP 11.. IInntteeggrraattiioonn SSeerrvviicceess のの

概概要要ととンンスストトーールル

この STEP では、Integration Services の概要とンストール方法、自習書を試すため

の環境などを説明します。

この STEP では、次のことを学習します。

Integration Services の概要

Integration Services のンストール方法

Business Intelligence Development Studio のンストール方法

自習書を試す環境について

Page 5: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

5

1.1 Integration Services について

SQL Server 2008 Integration Services(SSIS:データ統合サービス)は、SQL Server の標準機能とし

て搭載されている、データの「コピー」や「変換」などが行える “データ転送ツール” です。SQL Server 2000

以前のバージョンでは、DTS(Data Transformation Services:データ変換サービス)と呼ばれていました。

Integration Services を利用すると、SQL Server 同士でのデータ転送はもちろん、Oracle や DB2、

Microsoft Office Access、そのほかの ODBC 対応のデータベース、Microsoft Office Excel フゔル、可

変長のテキスト フゔル(カンマ区切り、タブ区切り)、固定長のテキスト フゔルなど、さまざまなデー

タソースから SQL Server へデータを取り込んだり、それとは逆に SQL Server からデータを書き出した

りすることができます。

Integration Services によるデータ転送・変換の例

Integration Services を利用すると、次のようなさまざまなデータ転送が行えます。

2 台の SQL Server の間でデータのコピーや変換を行う

Excel データ(.xls フゔル)を SQL Server へ取り込む(ンポートする)

メン フレーム・汎用機、Oracle、DB2、MySQL など

Excel フゔル

Accessフゔル

テキスト フゔル

Integration Services は、データ転送・変換ツール

さまざまなデータソースとの間でデータのコピーと変換が可能!

Excel フゔル SQL Server 2008

データコピー

Page 6: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

6

データを変換して転送する

Access データベース(.mdb フゔル)を SQL Server へ取り込む

Oracle データベースを SQL Server へ取り込む

SQL Server のデータを Oracle へコピー / 変換する

SQL Server のデータをカンマ区切りのテキスト フゔルへ書き出す(エクスポートする)

Oracle データベースを Excel フゔルへコピーする(SQL Server とは関係のないところで

のデータ転送も可能)

このように Integration Services を利用すると、さまざまなデータベースまたはフゔルとの間

で SQL Server とデータ転送が行えるので、色々な場面で役立ちます。特にデータを変換(デー

タを加工しながら転送)できる機能は、非常に便利で、データ ウェゕハウス(DWH:Data Warehouse)

を構築する際には、欠かせないツールになります。Integration Services とデータ ウェゕハウス

との関係については、STEP 4.4 で説明しています。

データを変換して転送する

「姓」と「名」を文字列連結して「氏名」へ変換

「性別コード」の1 を「男性」へ、

2 を「女性」へ変換

「部門番号」を「部門名」へ変換

Access データベース(.mdb) SQL Server 2008

コピー

Oracle データベース SQL Server 2008

コピー

Page 7: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

7

1.2 ンポート/エクスポート ウゖザードと SSIS デザナ

Integration Services(SSIS)には、「ンポート/エクスポート ウゖザード」と「SSIS デザナ」とい

う 2つの機能があります。

ンポート/エクスポート ウゖザード

ンポート/エクスポート ウゖザードは、SQL Server Management Studio または Business

Intelligence Development Studio から起動でき、ウゖザード形式(対話形式)で指定された項

目を入力、選択するだけで簡単にデータの転送(コピー)が行えるツールです。

このウゖザードの利用方法は、STEP2 で説明します。非常に簡単にデータ転送が行えるので、ぜ

ひ試してみてください。

SSIS デザナ

SSIS デザナは、中・上級者向けのツールで、Business Intelligence Development Studio の

Integration Services プロジェクトから利用します。ンポート/エクスポート ウゖザードでは、

単純なデータ転送しか行えませんが、SSIS デザナを利用すれば、データの転送に加えて、複雑

な変換処理を追加したり、転送の前後に行いたい処理(FTP によるフゔル取得やメール送信、

SQL の実行など)を追加したりすることができます。

ンポート / エクスポート ウゖザード

Page 8: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

8

また、SSIS デザナには、デバッグ機能も充実していて、データ転送中のデータを確認したり、

ブレークポントを設定して、ステップ実行(配置したコンポーネントを 1 つ 1 つ実行)をしたり、

実行中の変数の値を確認したりすることも可能です。

SSIS デザナの使用方法ついては、STEP 2.5 以降で説明しています。

さまざまなタスクを実行可能

FTP でフゔルを取得したり、複数のフゔルをまとめて処理する ForeachLoop、メールを送信した

りすることもできる

SSIS デザナの利用例

変換・転送中のデータを確認できるので、正しく実行されてい

るかを容易に確認できる

ブレークポントを設定してステップ実行できる。また、変数に格納された値を確認す

ることも可能。

エラー発生時にスクリプトを実行するように変更することも可能

SSIS デザナはデバッグ機能も充実

Page 9: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

9

1.3 Integration Services のンストール

Integration Services のンストール

Integration Services のすべての機能を利用するには、SQL Server 2008 のンストール時のコ

ンポーネントの選択画面で次のように選択します。

Business Intelligence Development Studio は、「SSIS デザナ」を利用して、Integration

Services のパッケージ(データ転送を設定したフゔル)を開発するために必要なツールです。

Integration Services は、サーバー機能(パッケージの実行や管理、パッケージ ンストール

ウゖザード機能など)を利用するために必要となるサービスです(詳しくは、本自習書シリーズの

「Integration Services 応用」で説明します)。

管理ツールは、SQL Server の管理ツールである Management Studio やプロフゔラ、構成マ

ネージャなどがンストールされ、Management Studio を利用して、パッケージのジョブ登録や、

SQL Server 上に配置したパッケージを管理するために必要になります。

データベース エンジン サービスは、SQL Server 2008 のデータベース エンジンと SQL Server

Agent サービスです。パッケージを定期実行したい場合には、Agent サービスのジョブ機能を利

用します(STEP 4 で説明します)。

SQL Server 2008 Integration Services の新機能について

SQL Server 2008 の Integration Services で提供される新機能については、この自習書の巻末

にまとめているので、新機能のみを知りたいという方は、そちらをご覧ください。

Integration Services のサーバー機能(パッケージの実行や管理、パッケージ ンストール ウゖザード機能など)に必要

Integration Services のパッケージを開発するツールとなる Business Intelligence Development Studio(SSIS デザナ)をンストールする場合に必要(STEP2.5以降で説明)

SQL Server データベース エンジンと Agent ジョブ機能。

SQL Server の管理ツールである Management Studio やプロフゔラ、構成マネージャなど。Management Studio を利用して、パッケージのジョブ登録や、SQL Server 上に配置したパッケージの管理をするために必要

Page 10: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

10

1.4 自習書を試す環境について

必要な環境

この自習書の手順を試すために必要な環境は次のとおりです。

OS

Windows Server 2003 SP2 以降 または

Windows XP Professional SP2 以降 または

Windows Vista または

Windows Server 2008

ソフトウェゕ

SQL Server 2008 Enterprise / Developer / Standard Edition

※ この自習書の手順をすべて試すには、次のコンポーネントをンストールしておく必要が

あります(詳しくは、前のページを参考にしてください)。

・データベース エンジン サービス

・Integration Services

・Business Intelligence Development Studio

・管理 ツール

この自習書内での画面やテキストは、OS に Windows Server 2003 SP2、ソフトウェゕに SQL

Server 2008 Enterprise Edition を利用して記述しています。

サンプル スクリプト

この自習書を試すには、サンプル スクリプトをダウンロードしておく必要があります。サンプル ス

クリプトには、各 STEP のンポートの実習で使用するフゔル(CSV フゔルや Excel フゔ

ル、Access データベースなど)が含まれています。

Page 11: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

11

SSTTEEPP 22.. ンンポポーートト//エエククススポポーートト ウウゖゖザザーードドにに

よよるる単単純純ななデデーータタ転転送送

この STEP では、Management Studio からンポート/エクスポート ウゖザードを

利用して、テキスト フゔル(CSV フゔル)や Excel フゔル(.xls)、Access デ

ータベース(.mdb)を SQL Server へ取り込んだり、それとは逆に SQL Server のデ

ータをテキスト フゔルへ書き出したり、パッケージとして保存したりする方法につい

て説明します。

この STEP では、次のことを学習します。

テキスト フゔルの取り込み(ンポート)

Access データベース(.mdb フゔル)の取り込み

Excel データ(.xls フゔル)の取り込み

パッケージの保存と実行、編集

データの書き出し(エクスポート)

Page 12: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

12

2.1 データベースの作成

データの取り込み先となるデータベース(SSISdb1)の作成

この STEP では、ンポート/エクスポート ウゖザードを使用して、さまざまなデータを SQL

Server 内へ取り込んでいくので、まずは、取り込み先(転送先)となる空のデータベースを作成

します。次のように SQL Server Management Studio から、[データベース]フォルダを右クリ

ックして[新しいデータベース]をクリックし、「SSISdb1」という名前のデータベースを作成し

ます。

「データベース」を右クリックして「新しいデータベース」をクリック

1

データベース名に「SSISdb1」と入力

2

[OK] ボタンをクリック3

Page 13: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

13

2.2 テキスト フゔルの取り込み

取り込むテキスト フゔル

ここでは、Integration Services のンポート/エクスポート ウゖザードを利用して、次のよう

な CSV フゔル(カンマ区切りのテキスト フゔル)を SQL Server へ取り込む(ンポート

する)手順を説明します。このフゔルは、サンプル スクリプト内に「Shohin.csv」という名前

で置いてあります。

実行手順

1. ンポート/エクスポート ウゖザードを利用してデータをンポートするには、次のように

Management Studio で取り込み先となるデータベース(今回は SSISdb1)を右クリック

して、[タスク]メニューの[データのンポート]をクリックします。

2. すると、次のようにンポート/エクスポート ウゖザードが起動するので、[次へ]ボタンを

クリックします。

3

1

2

Page 14: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

14

3. 次の[データソースの選択]画面では、データの転送元を選択します。転送元がテキスト フ

ゔルの場合は、[データ ソース]で「フラット フゔル ソース」を選択します。

次に、[参照]ボタンをクリックして、転送元となるフゔルを選択します。次のように[フ

1

転送元となるフゔルを選択するためにココをクリック

2

1

Page 15: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

15

ゔルの場所]でサンプル スクリプトを展開したフォルダを選択して、[フゔルの種類]で

「すべてのフゔル(*.*)」を選択します。

フォルダ内のすべてのフゔルが表示されたら、「Shohin.csv」フゔルを選択して、[開く]

ボタンをクリックします。

[データソースの選択]画面へ戻ったら、次のように[フゔル名]へ「Shohin.csv」への

パスが表示されているのを確認し、[列]をクリックします。

4. [列]ページでは、テキスト フゔルのデータ形式を設定することができます。

4

サンプル スクリプト内の Shohin.csv フゔルを転送元のフゔルとして選択

3

フゔルの種類で「すべてのフゔル(*.*)」を選択

2

サンプル スクリプトを展開したフォルダを選択

1

1

「列」をクリック選択

2

Page 16: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

16

[行区切り記号]に “改行” を表す {CR}{LF} が選択され、[列区切り記号]にコンマ{,} が

選択されていることを確認します。今回取り込むフゔルは、CSV(カンマ区切り)フゔル

なので、このままの設定で大丈夫です。

[1 ~ 5 行のプレビュー]には、転送元の CSV フゔルのデータが表示され、列名が自動

的に「列 0」、「列 1」、「列 2」と命名されていることを確認できます。

確認後、[次へ]ボタンをクリックします。

5. 次の[変換先の選択]画面では、データの転送先(取り込み先)を指定します。

今回は、「SSISdb1」データベースを選択してウゖザードを起動したので、すでに[データベ

ース]に「SSISdb1」が選択されていることを確認できます。また、[変換先]には「SQL Server

1行区切りと列区切りを確認

2プレビューで CSV フゔルの中身が表示される

3

3

1

2

Page 17: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

17

Native Client 10.0」が選択されていますが、これは SQL Server 2008 を転送先にすると

いう意味です(SQL Server 2008 の内部的なバージョン番号は 10.0 なので、Native Client

10.0 が選択されています)。[サーバー名]には、SQL Server の名前が選択されていること

も確認して、[次へ]ボタンをクリックします。

6. 次の[コピー元のテーブルおよびビューを選択]画面では、転送元と転送先となるテーブルを

指定します。今回のように転送元がテキスト フゔルの場合には、[変換元]へフゔル パ

ス(Shohin.csv フゔルへのパス)が表示されます。

[変換先]へは、[dbo].[Shohin] と表示されますが、これは「SSISdb1」データベース内

へ「Shohin」という名前のテーブルを作成するという意味です(テーブルは、実際にデータ

が転送れるときに自動作成されます)。テーブル名は、ここで変更することもできますが、今

回は Shohin という名前のままにしておきます。

続いて、[マッピングの編集]ボタンをクリックします。すると、次のように[列マッピング]

ダゕログが表示され、作成されるテーブルの列名やデータ型などを変更できるようになりま

す。

3

転送元がテキスト フゔルの場合には、フゔル パスが表示

データの転送先となるテーブル。データベース内に「Shohin」という名前のテーブルを作成するという意味。フゔル名をもとにしたテーブル名(Shohin)が自動的に表示される

1 2

Page 18: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

18

既定では、テキスト フゔルのデータは、varchar データ型として設定され、列名は、左側

から順に「列 0」、「列 1」、「列 2」と設定されます。今回は、変換先の列名を分かりやすくす

るために、上の画面のように「列 0」を「商品番号」へ、「列 1」を「商品名」へ、「列 2」を

「単価」へ変更しておきます。変更後、[OK]ボタンをクリックします。

7. [コピー元のテーブルおよびビューを選択]画面へ戻ったら、[次へ]ボタンをクリックしま

す。

8. 次の[パッケージの保存および実行]画面では、このデータ転送をすぐに実行するか、後から

実行するために保存するかを選択します。

4

1転送元の列名

3

列名を変更2

転送先の列名

1

Page 19: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

19

今回は、すぐにデータ転送を実行するので[すぐに実行する]が選択されていることを確認し

て、[次へ]ボタンをクリックします。

9. 次の[ウゖザードの完了]画面で[完了]ボタンをクリックするとデータのンポートが開始

されます。

10. 実行が完了すると、次の画面が表示されます。

データ転送をすぐに実行する場合は、ココをチェック

1

2

1

Page 20: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

20

[状態]がすべて「成功」と表示されていることを確認して、[閉じる]ボタンをクリックし

ます。

取り込んだデータの確認

11. ウゖザードでンポートしたデータを確認するには、次のように Management Studio で

[SSISdb1]データベースの[テーブル]フォルダを右クリックして、[最新の情報に更新]

をクリックします。

2

1

5行のデータが転送されたことが分かる

1

2

3

Page 21: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

21

テーブルの一覧に「Shohin」という名前のテーブルが作成されていることを確認できます。

続いて、[Shohin]テーブルを右クリックして[上位 1000 行の選択]をクリックします。

これにより、Shohin テーブルのデータ(最初の 1000 件)が表示されます。表示されたデ

ータが、取り込んだテキスト フゔル内のデータ(以下)と同じであることを確認します。

1

2

テキストフゔルから取り込んだ(ンポートした)データ

3

Shohin.csvフゔルのデータ

Page 22: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

22

2.3 Access データベース(.mdb)の取り込み

取り込む Access データベース

次に、Access 2003 で作成したデータベース(.mdb フゔル)を SQL Server へ取り込んでみ

ましょう。取り込むフゔルは、サンプル スクリプト内の「Employee.mdb」という名前のフ

ゔルで、このデータベース内には、次のように「従業員」テーブルと「部門」テーブルがあり、

主キーやリレーション シップを設定しています。

実行手順

Access データをンポートする手順は、テキスト フゔルをンポートする手順とほとんど同

じです。

1. まずは、次のように Management Studio で取り込み先のデータベース(SSISdb1)を右

クリックして、[タスク]メニューの[データのンポート]をクリックします。

2

3

1

Page 23: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

23

2. ンポート/エクスポート ウゖザードが起動したら、[次へ]ボタンをクリックします。

3. 次の[データソースの選択]画面では、[データ ソース]に「Microsoft Access」を選択し

ます。

次に、[参照]ボタンをクリックして、サンプル スクリプト内の「Employee.mdb」フゔ

ルを選択し、[開く]ボタンをクリックします。

フゔルの選択後、[次へ]ボタンをクリックして先に進みます。

Note: Access 2007 データベース(.accdb)を取り込みたい場合

Access 2007 のデータベース(.accdb フゔル)からデータを取り込みたい場合は、[データ ソース] で「Microsoft

Office 12.0 Access Database Engine OLE DB Provider」を選択する必要があります。このプロバダは、

Microsoft Office 2007 のンストール時に自動でンストールされます。ンポート/エクスポート ウゖザード

を実行しているマシンに Microsoft Office 2007 をンストールしていない場合は、下記のサトから「2007 Office

system ドラバ」をダウンロードして、ンストールすることで、利用できるようになります。

1

1

2

4

5

サンプル スクリプト内のEmployee.mdb フゔルを選択

3

Page 24: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

24

2007 Office system ドラバ: データ接続コンポーネント

http://www.microsoft.com/downloads/details.aspx?FamilyId=7554F536-8C28-4598-9B72-EF94E038C89

1&displaylang=ja

今回利用している .mdb フゔルのように Access 2003 以前のバージョン(Access 97/2000/2002/2003)

のデータベースの場合には、[データ ソース] へ「Microsoft Access」を選択すれば大丈夫です。

4. 次の[変換先の選択]画面では、データの転送先(取り込み先)を指定します。

今回は、事前に「SSISdb1」データベースを選択してウゖザードを起動したので、[データベ

1

2

3

Microsoft Office 12.0 Access Database Engine OLE DB Providerを利用して Access 2007 の .accdbへ接続している例

3

2

1

Page 25: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

25

ース]へ「SSISdb1」が選択されていることを確認して、[次へ]ボタンをクリックします。

5. 次の[テーブルのコピーまたはクエリの指定]画面では、[1 つ以上のテーブルまたはビュー

からデータをコピーする]が選択されていることを確認して、[次へ]ボタンをクリックしま

す。

6. 次の[コピー元のテーブルおよびビューを選択]画面では、転送元として選択した Access デ

ータベース内のテーブルが一覧されます。今回は、次のように「従業員」テーブルと「部門」

テーブルの両方をチェックして、この 2 つのテーブルを転送対象として設定します。

7. 続いて、次のように「従業員」テーブルを選択(ハラト)した状態で、[マッピングの編

2

1

1

Page 26: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

26

集]ボタンをクリックします。

これにより、[列マッピング]ダゕログが表示されて、変換元のテーブルの列名と、変換先

となるテーブルの列名が一覧されます。ここでは、列の名前やデータ型、サズなどを変更す

ることもできますが、今回は何も変更せずに内容を確認するだけで、[OK]ボタンをクリック

します。

8. 前の手順と同じように、「部門」テーブルを選択(ハラト)した状態で[マッピングの編

集]ボタンをクリックすれば、部門テーブルに関する情報も確認することができます。

内容を確認したら、何も変更せずに、[OK]ボタンをクリックします。

9. [コピー元のテーブルおよびビューを選択]画面へ戻ったら、[次へ]ボタンをクリックしま

す。

2

3

転送元の列名

転送先の列名

データ型 サズ

従業員テーブルを選択した状態で[マッピングの編集] をクリック

1

1

3

2

Page 27: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

27

10. 次の[パッケージの保存および実行]では、このデータ転送をすぐに実行するか、後から実行

するために保存するかを選択します。今回はすぐに実行するので[すぐに実行する]が選択さ

れていることを確認して、[次へ]ボタンをクリックします。

11. 最後の[ウゖザードの完了]画面で[完了]ボタンをクリックするとデータのンポートが開

始されます。

1

2

1

選択されていることを確認

Page 28: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

28

実行が完了すると、[操作は正常に実行されました]画面が表示されます。[状態]へ「成功」

と表示されていることを確認して、[閉じる]ボタンをクリックします。

取り込んだデータの確認

12. ウゖザードでンポートしたデータを確認するには、次のように Management Studio で

[SSISdb1]データベースの[テーブル]フォルダを右クリックして、[最新の情報に更新]

をクリックします。

テーブルの一覧に「従業員」と「部門」という 2 つのテーブルが作成されていることを確認

できます。

続いて、[従業員]テーブルを右クリックして[上位 1000 行の選択]をクリックします。

1 3

2

1

2

3

Page 29: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

29

これにより、従業員テーブルのデータが表示されます。表示されたデータが、Access データ

ベース内のデータ(以下)と同じであることを確認します。

部門テーブルについても、同様に[上位 1000 行の選択]をクリックして、データを表示し

て確認します。

1

2 3

Employee.mdb データベースのデータ

Page 30: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

30

Note: Access 側で設定された主キーやリレーション シップは転送されない

Integration Services では、Access データベース側で設定された主キーやリレーション シップなどの制約は転

送されません。次のように、Management Studio で取り込んだテーブルを展開し、[列]フォルダを展開して、

列の一覧を表示し、[キー]フォルダや[制約]フォルダを参照すると、これらの設定が転送されていないことを

確認することができます。

したがって、主キーやリレーション シップなどは、データの転送後に手動で設定しなければなりません。

1

2

3

部門テーブルのデータの確認

従業員テーブルの列の一覧。主キーと外部キーには鍵のゕコンが付くが、設定されていない

部門テーブルについても同様

主キーと外部キーが一覧される場所。ここに存在しないことからも主キーと外部キーが設定されていないことを確認できる

制約が一覧される場所(ココも空)

Page 31: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

31

2.4 Excel データ(.xls フゔル)の取り込み

取り込む Excel データ

次に、Excel 2003 のデータ(.xls フゔル)を取り込んでみましょう。取り込むフゔルは、サ

ンプル スクリプト内の「Shohin.xls」という名前のフゔルです。

実行手順

Excel データをンポートする手順は、Access データベースをンポートする手順とほとんど同

じです。違うのは、[データソースの選択](データソースの選択)画面だけです。

1. まずは、次のように Management Studio で取り込み先のデータベース(SSISdb1)を右

クリックして[タスク]メニューの[データのンポート]をクリックします。

2. すると、ンポート/エクスポート ウゖザードが起動するので、[次へ]ボタンをクリックし

ます。

2

3

1

Page 32: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

32

3. 次の[データソースの選択]画面では、[データ ソース]で「Microsoft Excel」を選択しま

す。

次に、[参照]ボタンをクリックして、サンプル スクリプト内の「Shohin.xls」を選択し、

[先頭行に列名を含める]チェック ボックスがチェックされていることを確認して、[次へ]

ボタンをクリックします。

Note: Excel 2007 データ(.xlsx)を取り込む場合

Excel 2007(.xlsx フゔル)からデータを取り込む場合は、[Excel バージョン]で「Microsoft Excel 2007」

を選択しますが、Access 2007 の場合と同様、「Microsoft Office 12.0 Access Database Engine OLE DB Provider」

のンストールが必要になります。

1

1

2

64

最初の行を列名として扱う設定。チェックが付いていることを確認

サンプル スクリプト内のShohin.xls フゔルを選択

3

5

1

Page 33: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

33

このプロバダは、Microsoft Office 2007 をンストールするか、下記のサトから「2007 Office system ドラ

バ」をダウンロードして、ンストールすることで、利用できるようになります。

2007 Office system ドラバ: データ接続コンポーネント

http://www.microsoft.com/downloads/details.aspx?FamilyId=7554F536-8C28-4598-9B72-EF94E038C89

1&displaylang=ja

このプロバダをンストールしていない場合は、[次へ]ボタンをクリックしたときに、次のエラー メッセージが

表示されます。

4. 次の[変換先の選択]画面では、データの転送先(取り込み先)を指定します。

今回は、事前に「SSISdb1」データベースを選択してウゖザードを起動したので、[データベ

ース]へ「SSISdb1」が選択されていることを確認して、[次へ]ボタンをクリックします。

5. 次の[テーブルのコピーまたはクエリの指定]画面では、[1 つ以上のテーブルまたはビュー

からデータをコピーする]が選択されていることを確認して、[次へ]ボタンをクリックしま

す。

3

1

2

Page 34: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

34

6. 次の[コピー元のテーブルおよびビューを選択]画面では、転送元となるデータの一覧が表示

されます。

変換元が Excel の場合には、Excel フゔル内のワークシートの名前に「$」マークをつけ

たものが一覧されます。今回のフゔルはワークシート名を変更していないので、既定の 3 つ

のワークシート名(Sheet1、Sheet2、Sheet3)に「$」マークを付けたものが一覧されてい

ます。今回取り込むデータは Sheet1 へ入れてあるので、「Sheet1$」をチェックします。

これにより、転送先のテーブル名(変換先)が [dbo].[Sheet1$] と表示されます。

これは、「SSISdb1」というデータベースの中に「Sheet1$」という名前のテーブルを作成

2

1

作成されるテーブル名が表示される

転送元データのシート名をチェック

21

Page 35: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

35

するという意味です。これを、次のように「商品」など分かりやすい名前へと変更します。

続いて、[マッピングの編集]ボタンをクリックして、[列マッピング]ダゕログを表示し、

作成されるテーブルのデザンを確認します。

転送元(変換元)の列名には、Excel シートの 1 行目のデータが設定され、それをもとに転

送先(変換先)に作成されるテーブルの列名が設定されていることを確認できます。

データ型は、既定では、Excel 内の数値データは float 型、文字データは nvarchar(255) 型

として作成されます。列の名前やデータ型、サズなどは、変更することもできますが、今回

は何も変更せずに内容を確認するだけで、[OK]ボタンをクリックします。

1

「Sheet1$」の部分を「商品」へ変更

2

3

作成されるテーブルの列名やデータ型、サズなどを確認

転送元の列。Excel シートの 1 行目のデータが設定される

1 2

Page 36: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

36

7. [コピー元のテーブルおよびビューを選択]画面へ戻ったら、[プレビュー]ボタンをクリッ

クします。

すると、[データのプレビュー]ダゕログが開いて、転送元となる Excel データの内容を確

認することができます。確認後、[OK]ボタンをクリックします。

8. [コピー元のテーブルおよびビューを選択]画面へ戻ったら、[次へ]ボタンをクリックしま

す。

9. 次の[パッケージの保存および実行]では、次のように[すぐに実行する]と[SSIS パッケ

ージを保存する]の両方をチェックして、データ転送をすぐに実行して、かつ後からも実行で

きるように “SSIS パッケージ” として保存しておくようにします。

2

3

1

1

Page 37: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

37

パッケージの保存先として[フゔル システム]を選択して、[次へ]ボタンをクリックしま

す。

10. 次の[SSIS パッケージの保存]画面では、保存するパッケージの名前と保存場所を指定しま

す。今回は、次のように[名前](パッケージ名)へ「商品 Package」と入力し、[フゔル

名]のパスを「C:\商品 Package.dtsx」へ変更し、C:\ ドラブの直下へ保存されるよう

にします。変更後、[次へ]ボタンをクリックして、次へ進みます。

11. 最後の[ウゖザードの完了]画面で[完了]ボタンをクリックするとデータのンポートが開

始されます。

1

3

2

ココをチェックして、データ転送を後からも実行できるように、SSIS パッケージとして保存する。保存先には、「フゔル システム」をチェック

1

2

3

Page 38: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

38

実行完了後、[状態]がすべて「成功」と表示されていることを確認して、[閉じる]ボタンを

クリックします。

取り込んだデータの確認

12. ウゖザードでンポートしたデータを確認するには、次のように Management Studio で

[SSISdb1]データベースの[テーブル]フォルダを右クリックして、[最新の情報に更新]

をクリックします。

テーブルの一覧に「商品」という名前のテーブルが作成されていることを確認します。

続いて、[商品]テーブルを右クリックして[上位 1000 行の選択]をクリックします。

1 3

2

1

2

3

Page 39: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

39

これにより、商品テーブルのデータが表示されます。表示されるデータが、Excel フゔル内

のデータ(以下)と同じであることを確認します。

1

2

3

Shohin.xls フゔルのデータ

Page 40: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

40

2.5 保存したパッケージ(.dtsx)の実行と編集

ここでは、前の STEP で保存したパッケージ「商品Package.dtsx」を利用して、データの転送を再実行す

る手順を説明します。

保存したパッケージの実行

1. 保存したパッケージを実行するには、エクスプローラから、パッケージ フゔル「C:\商品

package.dtsx」をダブル クリックします。

2. すると、次のように[パッケージ実行ユーテゖリテゖ]ダゕログが表示されます。

このダゕログで、[実行]ボタンをクリックすれば、パッケージを実行することができます。

ダブル クリック1

1

Page 41: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

41

[実行]ボタンをクリックしてパッケージが実行されると、次のように[パッケージ実行の進

行状況]ダゕログが表示されますが、エラーが発生して、データ転送が失敗してしまいます。

「エラー」の行の記述をみると、「CREATE TABLE [SSISdb1].[dbo].[商品]~」とあり、「商

品」テーブルを作成していることが原因でエラーとなっていることを確認できます。

前の STEP で、ウゖザードからデータ転送を実行したときは、「商品」テーブルを作成するこ

とができましたが、2 回目以降のパッケージの実行時には、「商品」テーブルが既に存在して

しまっているので、エラーが発生してしまうのです。

確認後、[閉じる]ボタンをクリックして、ダゕログを閉じます。

3. [パッケージ実行ユーテゖリテゖ]ダゕログへ戻ったら、[閉じる]ボタンをクリックして

閉じます。

4. 次に、データ転送が失敗していることを Management Studio から念のため確認しておきま

しょう。[SSISdb1]データベースの[商品]テーブルを右クリックして[上位 1000 行の

選択]をクリックします。

CREATE TABLE のエラー

3

1

タスクの失敗を表す2

1

Page 42: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

42

データが新しく追加されていないことから、データ転送が失敗していることを確認できます。

保存したパッケージの編集(Business Intelligence Development Studio)

次に、このパッケージのエラーを解消して、正しくデータ転送が行えるように、パッケージの編集

を行ってみましょう。パッケージの編集には「Business Intelligence Development Studio」

を利用します。

5. Business Intelligence Development Studio を起動するには、次のように[スタート]メニ

ューの[すべてのプログラム]から[Microsoft SQL Server 2008]を選択し、[SQL Server

Business Intelligence Development Studio]をクリックします。

6. Business Intelligence Development Studio は、Visual Studio 2008 と統合されているの

で、次のように Visual Studio 2008 が起動します。

1

2

3

Page 43: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

43

次に、[フゔル]メニューから[新規作成]を選択して[プロジェクト]をクリックし、新

しいプロジェクトを作成します。

7. すると、[新しいプロジェクト]ダゕログが表示されるので、次のように[プロジェクトの

種類]で「ビジネス ンテリジェンス プロジェクト」を、[テンプレート]で「Integration

Services プロジェクト」を選択します。

[プロジェクト名]へは「SSISstep2」と入力して、[場所]を「C:\」へ変更し、[OK]ボ

タンをクリックします。これにより、SSISstep2 プロジェクトが作成されます。

8. 作成されたプロジェクトには、空のパッケージ(Package.dtsx)が自動作成されているので、

今回は、これを削除します。次のように画面右側の[ソリューション エクスプローラ]で、

「フゔル」メニューの「新規作成」から「プロジェクト」をクリック

1

1

2

3

4

Page 44: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

44

[SSIS パッケージ]フォルダの配下にある「Package.dtsx」を右クリックして、[削除]

をクリックします。

すると、次のように削除を確認するダゕログが表示されるので、[OK]ボタンをクリックし

ます。

9. 次に、前の STEP で作成したパッケージ「商品 Package.dtsx」をプロジェクトへ追加しま

す。次のように ソリューション エクスプローラ で[SSIS パッケージ]フォルダを右クリ

ックして、[既存のパッケージを追加]をクリックします。

10. すると、[既存のパッケージのコピーを追加]ダゕログが表示されるので、次のように[パ

ッケージの場所]で「フゔル システム」を選択し、[パッケージのパス]で[...]ボタンを

1

2

1

1

2

Page 45: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

45

クリックします。

すると、[パッケージの読み込み]ダゕログが表示されるので、「C:\商品 Package.dtsx」

フゔルを選択し、[開く]ボタンをクリックします。[既存のパッケージのコピーを追加]ダ

ゕログへ戻ったら、[OK]ボタンをクリックして閉じます。

11. 次に、追加したパッケージ「商品Package.dtsx」をダブル クリックします。

すると、パッケージのデザン画面(SSIS デザナ)が表示されて、パッケージの編集がで

1

5

2

3

4

追加した「商品Package.dtsx」をダブル クリック

パッケージのデザン画面SSIS デザナ

1

2

Page 46: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

46

きるようになります。

12. このデザン画面からは、パッケージを実行することもできるので、次のように[デバッグ]

メニューから[デバッグ開始]をクリックして、パッケージを実行してみます。

パッケージが実行されると、次のように[準備 SQL タスク 1]タスクが赤くなってエラー

となり、実行が中断されます(デバッグ モードになります)。

[デバッグ]メニューから[デバッグの停止]をクリックして、デバッグを終了します。

13. 次に、エラーとなったタスクの内容を確認するために、デザン画面で[準備 SQL タスク 1]

をダブル クリックします。

1

エラーとなり、赤く表示される

1

1

2

Page 47: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

47

これにより、[SQL 実行タスク エデゖタ]ダゕログが表示されるので、[SQLStatement]

プロパテゖをクリックし、値(CREATE TABLE ~)へマウスを乗せて、ポップゕップを表

示すると、SQL ステートメントの内容を確認することができます。表示される SQL ステー

トメントは、「CREATE TABLE [SSISdb1].[dbo].[商品]…」となっていて、商品テーブルを

作成するステートメントであることを確認できます。確認後、[OK]ボタンをクリックして、

ダゕログを閉じます。

タスクの無効化

14. この[準備 SQL タスク 1]のエラーを回避するには、このタスクを無効化に設定すればよい

ので、次のように[準備 SQL タスク 1]を右クリックして[無効化]をクリックします。

これにより、[準備 SQL タスク 1]が灰色に変わり、このタスクが実行されないようになり

ます。

15. 次に、[デバッグ]メニューから[デバッグ開始]をクリックして、パッケージを実行(デバ

ッグを開始)します。

SQLStatement プロパテゖの値へマウスを乗せると、ポップゕップが表示されて、SQLステートメントの内容を確認できる

準備 SQL タスク 1 をダブルクリック

1

2

3

1灰色にかわる

2

Page 48: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

48

すると、無効化した[準備 SQL タスク 1]は実行されずに、[データ フロー タスク 1](デ

ータ転送のためのタスク)が ”緑色” に変わって、実行が成功したことを確認できます。

16. [デバッグ]メニューから[デバッグの停止]をクリックしてデバッグを終了します。

17. 次に、もう一度、[デバッグ]メニューから[デバッグ開始]をクリックして、パッケージを

再度実行し、エラーにならないことを確認しておきます。

[デバッグ]メニューから[デバッグの停止]をクリックしてデバッグを終了します。

1

緑色に変わると成功

2↓

1

2

1

緑色に変わると成功

2↓

1

2

Page 49: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

49

取り込んだデータの確認

18. 次に、パッケージの実行で取り込んだデータを確認しておきましょう。 Management Studio

から、次のように SSISdb1 データベース内の「商品」テーブルを右クリックして[上位 1000

行の選択]をクリックします。

パッケージを実行した回数分だけ、データが追加されていることを確認できます。

このように、CREATE TABLE ステートメントが実行されないように変更すれば、データ転送

を何度も実行できるようになります。ただし、このままでは、パッケージが実行されるたびに

データが上書きされずにどんどん追加されていってしまいます。

データを削除してからデータ転送を行う(上書きする)

パッケージを実行するたびにデータが追加されていくのを防ぎ、新しいデータで上書きされるよう

にするには、次のようにパッケージを編集します

19. まずは、無効化していた[準備 SQL タスク 1]を有効に戻します。[準備 SQL タスク 1]

を右クリックして[有効化]をクリックします。

1 ウゖザードで実行した結果(1回目の転送)

パッケージを実行した結果(2回目の転送)

パッケージを実行した結果(3回目の転送)

2

3

4

1

Page 50: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

50

20. 次に、[準備 SQL タスク 1]の SQL ステートメントを変更します。[準備 SQL タスク 1]

をダブル クリックして[SQL 実行タスク エデゖタ]ダゕログを表示し、[SQLStatement]

プロパテゖの「...」ボタンをクリックします。

すると、[SQL クエリの入力]ダゕログが表示されるので、SQL ステートメントを次のよ

うに変更します。

TRUNCATE TABLE 商品

go

TRUNCATE TABLE ステートメントは、指定したテーブルのデータをすべて削除する効果が

あるので、この記述によって、商品テーブルのデータをすべて削除できるようになります。

ステートメントの記述後、[OK]ボタンをクリックしてダゕログを閉じます。

21. 次に、[デバッグ]メニューから[デバッグ開始]をクリックして、パッケージを実行し、結

果を確認します。

「SQLStatement」プロパテゖの「...」ボタンをクリック

準備 SQL タスク 1 をダブルクリック

1

2

2

商品テーブルのデータを全削除するためのステートメントを記述

1

Page 51: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

51

今度は、2 つのタスクが緑色に変わって、パッケージの実行が成功したことを確認できます。

22. [デバッグ]メニューから[デバッグの停止]をクリックして、デバッグを終了します。

データが上書きされていることの確認

23. パッケージで取り込んだデータを確認するために、Management Studio から「商品」テー

ブルを右クリックして[上位 1000 行の選択]をクリックします。

テーブルのデータは、すべて削除されてから、データ転送が行われているので、データが上書

きされていることを確認できます。

このように、Business Intelligence Development Studio(SSIS デザナ)を利用すると、

1

2

1

2

1

3

2

Page 52: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

52

単純なデータ転送だけでなく、任意の SQL ステートメントを実行できるようになります。ま

た、SSIS デザナでは、”データの変換” を追加することもできるので、これについては STEP

3 で説明します。

パッケージの保存

次に、編集したパッケージを保存しておきます。

24. パッケージとプロジェクト全体を保存するには、次のように[フゔル]メニューから[すべ

てを保存]をクリックします。

パッケージ実行ユーテゖリテゖからの実行

次に、Business Intelligence Development Studio で編集したパッケージをエクスプローらから

実行してみます。

25. Business Intelligence Development Studio で作成・編集したパッケージは、次のようにプ

ロジェクト(C:\SSISstep2\SSISstep2)フォルダの下の「bin」フォルダへ格納されてい

ます。

1

2

ダブル クリック

1

2

Page 53: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

53

このフォルダのパッケージ フゔル(商品Package.dtsx)をダブル クリックして、パッケ

ージを実行してみましょう。

26. [パッケージ実行ユーテゖリテゖ]ダゕログが表示されたら、[実行]ボタンをクリックし

てパッケージを実行します。

今度は、エラーが発生せずに、実行が正常に完了したことを確認できます。

完了後は、[閉じる]ボタンをクリックして、ダゕログを閉じます。

27. 次に、パッケージで取り込んだデータを確認するために、Management Studio から「商品」

テーブルを右クリックして[上位 1000 行の選択]をクリックします。

データが上書きされて、正しくパッケージが実行されたことを確認できます。

1 2

1

3

2

Page 54: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

54

2.6 データのエクスポート

ここでは、STEP 2.3 で Access データベースから取り込んだ「従業員」テーブルを、ンポート/エクス

ポート ウゖザードを利用して、「tsv」形式(タブ区切り)のテキスト フゔルへエクスポートする(書き

出す)手順を説明します。

エクスポートするデータ

エクスポートする従業員テーブルは、次のとおりです。

実行手順

1. ンポート/エクスポート ウゖザードを利用してデータをエクスポートするには、次のよう

に Management Studio で転送元のデータベース(SSISdb1)を右クリックして、[タスク]

メニューの[データのエクスポート]をクリックします。

1

3 2

1

2

3

Page 55: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

55

2. すると、ンポート/エクスポート ウゖザードが起動するので、[次へ]ボタンをクリックし

ます。

3. 次の[データソースの選択]画面では、データの転送元(エクスポート元となるデータ)を指

定します。

今回は、事前に「SSISdb1」データベースを選択してウゖザードを起動しているので、[デー

タベース]へ「SSISdb1」が選択されていることを確認して、[次へ]ボタンをクリックしま

す。

4. 次の[変換先の選択]画面では、データの転送先(エクスポート先)を指定します。

1

3

1

2

Page 56: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

56

今回は、テキスト フゔルへデータを書き出すので、[変換先]で「フラット フゔル変換

先」を選択します。[フゔル名]へは、エクスポート先となるフゔル名を入力しますが、

今回は「C:\従業員.tsv」と入力します。また、[先頭データ行を列名として使用する]チェ

ック ボックスをチェックして、フゔルの 1 行目には、列名が書き出されるようにします。

設定後、[次へ]ボタンをクリックします。

5. 次の[テーブルのコピーまたはクエリの指定]画面では、[1 つ以上のテーブルまたはビュー

からデータをコピーする]が選択されていることを確認して、[次へ]ボタンをクリックしま

す。

1

2

3

4

1

2

Page 57: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

57

6. 次の[フラット フゔルの変換先の構成]画面では、転送元となるテーブルを選択します。

今回は、「従業員」テーブルを選択します。

また、[列区切り記号]で「タブ{t}」を選択し、タブ区切りのテキスト フゔルとしてエク

スポートするようにします。続いて、[マッピングの編集]ボタンをクリックして、[列マッピ

ング]ダゕログを表示します。

このダゕログでは、エクスポートするデータの列名や、データ転送の対象から外したい列の

変更などを行うことができます。今回は、「ローマ字姓」と「ローマ字名」列をデータ転送の

対象から外すように、[変換先]で「無視」を選択して、[OK]ボタンをクリックします。

7. [フラット フゔルの変換先の構成]画面へ戻ったら、[次へ]ボタンをクリックします。

1

2

3

2

1

「無視」を選択することで、データ転送の対象から外すことができる

Page 58: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

58

8. 次の[パッケージの保存および実行]では、このデータ転送をすぐに実行するか、後から実行

するために保存するかを選択します。

今回はすぐに実行するので、[すぐに実行する]が選択されていることを確認して、[次へ]ボ

タンをクリックします。

9. 最後の[ウゖザードの完了]画面で[完了]ボタンをクリックするとデータのエクスポートが

開始されます。

1

1

2

Page 59: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

59

実行が完了すると、[操作は正常に実行されました]画面が表示されます。[状態]が「成功」

と表示されていることを確認して、[閉じる]ボタンをクリックします。

エクスポートしたデータの確認

10. ウゖザードでエクスポートしたデータを確認するには、エクスプローラから「C:\従業員.tsv」

フゔルをダブル クリックして開きます。

それぞれの列がタブ区切りで表示され、「ローマ字姓」と「ローマ字名」列のデータはエクス

ポートされていないことを確認できます。

1 3

2

従業員.tsv フゔルをダブル クリック

1

タブ区切りでエクスポートされていることを確認できる。また、「ローマ字姓」と「ローマ字名」列は含まれていないことも確認できる

2

Page 60: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

60

SSTTEEPP 33.. SSSSIISS デデザザナナのの基基本本操操作作

この STEP では、Integration Services(SSIS)の「SSIS デザナ」を使用して、デ

ータの変換を伴うデータの転送を行い、SSIS デザナの基本操作を説明します。

この STEP では、次のことを学習します。

SSIS デザナの使用方法

データ フロー タスクによるデータの転送

派生列コンポーネントによるデータ変換

参照コンポーネントによる別テーブルのデータ取得

データ ビューゕによる転送中のデータの表示

Page 61: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

61

3.1 作成するパッケージの概要

データ変換の概要

この STEP では、SSIS デザナを利用して、次のようなデータ変換を行うパッケージ(Excel 2003

フゔルから SQL Server へのデータ転送時に変換処理を追加したパッケージ)を作成します。

Excel フゔルは、サンプル スクリプト内に「Employee.xls」という名前で置いてあります。

作成するパッケージ(.dtsx)

作成するパッケージは、次のような構成になります。

実習を始める前に

この STEP の実習を行うには、STEP 2.3 の手順で、Access データベースから「SSISdb1」デ

ータベース内へンポートして作成した「部門」テーブルが必要になります。STEP 2.3 を実行し

ていない場合は、事前に実行しておいてください。

「部門番号」に対応した

「部門名」へ変換

「姓」と「名」列を文字列連結して「氏名」列を追加

「性別コード」の「1」を「男性」「2」を「女性」

へ変換

Employee.xls フゔル SQL Server 2008

データ変換

データ フロー タスク

参照コンポーネント

Excel データ ソース

派生列コンポーネント

SQL Server 変換先

Page 62: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

62

3.2 データベースの作成

転送先となるデータベースの作成

この STEP では、SSIS デザナを使用して、Excel データを SQL Server 内へ取り込んでいく

ので、まずは、取り込み先(転送先)となる空のデータベースを作成します。次のようにManagement

Studio で[データベース]フォルダを右クリックして[新しいデータベース]をクリックし、「SSISdb2」

という名前のデータベースを作成します。

「データベース」を右クリックして「新しいデータベース」をクリック

1

データベース名に「SSISdb2」と入力

2

[OK] ボタンをクリック

3

Page 63: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

63

3.3 SSIS デザナの起動

SSIS デザナの起動

次に、パッケージの作成ツール「SSIS デザナ」を起動します。

1. SSIS デザナを起動するには、[スタート]メニューの[すべてのプログラムから、[Microsoft

SQL Server 2008]を選択し、[SQL Server Business Intelligence Development Studio]

をクリックします。

2. Business Intelligence Development Studio は、Visual Studio 2008 と統合されているの

で、Visual Studio 2008 が起動します。

次に、[フゔル]メニューから[新規作成]を選択して[プロジェクト]をクリックし、新

しいプロジェクトを作成します。

「フゔル」メニューの「新規作成」から「プロジェクト」をクリック

1

Page 64: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

64

3. [新しいプロジェクト]ダゕログが表示されたら、[プロジェクトの種類]で「ビジネス

ンテリジェンス プロジェクト」を、[テンプレート]で「Integration Services プロジェ

クト」を選択します。

[プロジェクト名](プロジェクト名)へは「SSISstep3」と入力し、[場所]を「C:\」へ

変更して、[OK]ボタンをクリックします。これにより、Integration Services プロジェク

トが作成され、次のような画面が表示されます。

1

2

3

4

ツール バー

プロパテゖ ウゖンドウ

SSIS デザナ

ツール ボックス ソリューション エクスプローラ

Page 65: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

65

Note: ツールボックスの固定表示

Visual Studio 2008 のデフォルトでは、ツールボックスが隠れています。SSIS デザナでは、ツールボックス

を頻繁に使用するので、ツールボックスを固定して表示しておくと便利です。ツールボックスを固定して表示する

には、次のようにツールボックスをクリックしてツールボックスを表示し、[自動的に隠す]ボタンをクリックし

ます。

1 2

固定して表示される3

Page 66: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

66

3.4 データ フロー タスクによるデータの転送

まずは、データ変換を行わない、単純なデータ転送を行うパッケージを作成してみましょう。データ転送は、

[データ フロー タスク]を利用して行うことができます。

データ フロー タスクの追加

4. データ フロー タスクを追加するには、次のように[ツールボックス]の[制御フロー項目]

の中から[データ フロー タスク]を選択し、SSIS デザナ上へドラッグ ゕンド ドロップ

します。

これにより、[データ フロー タスク]が、SSIS デザナ上に配置されます。

5. 次に、データ転送の詳細(転送元や転送先など)を設定するために、次のように[データ フ

ロー タスク]をダブル クリックします。

SSIS デザナ上へドラッグ & ドロップ

1

Page 67: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

67

これにより、[データ フロー]タブが表示されて、[ツールボックス]がデータ転送に関する

コンポーネントの一覧へ変更されます。

転送元データの指定

6. 転送元(Source)データとして Excel フゔルを指定するには、次のように[ツールボック

ス]の[データ フローの変換元]カテゴリの中から、[Excel ソース]を SSIS デザナ上

へドラッグ ゕンド ドロップします。

続いて、配置した[Excel ソース]をダブル クリックします。

「データフロー」タブが表示される

2

ツールボックスがデータ転送に関するコンポーネントの一覧に変更される

3

ダブル クリック1

ドラッグ & ドロップ1

ダブルクリック2

Page 68: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

68

7. すると、[Excel ソース エデゖタ]ダゕログが表示されるので、転送元の Excel フゔル

を指定するために[新規作成]ボタンをクリックします。

これにより、[Excel 接続マネージャ]ダゕログが表示されるので、次のように[参照]ボ

タンをクリックます。

[フゔルを開く]ダゕログでは、サンプル スクリプト内の「Employee.xls」フゔル

を選択して、[開く]ボタンをクリックします。

[Excel 接続マネージャ]ダゕログへ戻ったら、次のように[Excel フゔル パス]へ

[Employee.xls]フゔルへのパスが表示され、[Excel バージョン]が「Microsoft Excel

1

1

サンプル スクリプト内のEmployee.xls を選択

2

3

Page 69: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

69

97-2003」となっていることを確認します。

また、[先頭行に列名を含める]チェック ボックスがチェックされていることも確認して、[OK]

ボタンをクリックします。

8. [Excel ソース エデゖタ]ダゕログへ戻ったら、次のように[Excel シートの名前]で、

転送元となるデータが格納されている Excel のワーク シートを選択します(ここで表示され

るシート名は、実際のワーク シート名に「$」マークをつけたものになります)。

今回のデータは、Sheet1 へ入れているので、「Sheet1$」を選択して、[プレビュー]ボタ

ンをクリックします。これにより、[クエリ結果のプレビュー]ダゕログが表示されて、転

送元のデータを確認することができます。確認後、[閉じる]ボタンをクリックして、ダゕ

ログを閉じます。

転送先データベースの指定

9. 次に、転送先となる SQL Server 上のデータベースを指定するために、次のように[ツール

ボックス]の[データ フローの変換先]カテゴリから、[SQL Server 変換先]を SSIS デ

ザナ上へドラッグ ゕンド ドロップします。

1

4

Excel のバージョンを選択2

Excel の最初の行を列名として扱う3

1

2

4

3転送されるデータの内容を確認

5

Page 70: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

70

10. 次に、転送元と転送先を関連付けるために、SSIS デザナ上にある[Excel ソース]をクリ

ックして ”緑色の矢印” を表示し、この矢印を[SQL Server 変換先]まで、ドラッグ ゕン

ド ドロップして伸ばします。

Note: 「緑」は成功時、「赤」は失敗(エラー)時の処理

緑の矢印は ”成功時” の処理、赤の矢印は ”失敗時” (エラー発生時)の処理の流れを意味します。エラー時の処

理については、本自習書シリーズの「Integration Services 応用」で説明しています。

11. 次に、転送先の詳細設定を行うために、次のように[SQL Server 変換先]をダブルクリッ

クします。

1

クリックすると緑と赤の矢印が表示される

2緑色の矢印をドラッグ& ドロップして伸ばす

1

ダブル クリック1

Page 71: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

71

12. すると、[SQL 変換先エデゖタ]ダゕログが表示されるので、次のように[接続マネージャ]

ページで[新規作成]ボタンをクリックします。

[OLE DB 接続マネージャの構成]ダゕログが表示されたら、さらに[新規作成]ボタン

をクリックします。

13. [接続マネージャ]ダゕログでは、次のように[サーバー名]へ転送先となる SQL Server

の名前を入力し、[データベースへの接続]で「SSISdb2」を選択して、[OK]ボタンをクリ

ックします。

1

2

Page 72: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

72

14. [OLE DB 接続マネージャの構成]ダゕログへ戻ったら、[データ接続]で、「サーバー

名.SSISdb2」が選択されていることを確認して、[OK]ボタンをクリックします。

15. [SQL 変換先エデゖタ]ダゕログへ戻ったら、[テーブルまたはビューを使用]で[新規作

成]ボタンをクリックします。

1

2

3

1

2

Page 73: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

73

これにより、[テーブルの作成]ダゕログが表示され、転送元のデータをもとに、SQL Server

上へテーブルを作成できるようになります。ここで表示される CREATE TABLE ステートメ

ントのテーブル名を「社員」へ変更し、[OK]ボタンをクリックします。これにより、「社員」

テーブルを SSISdb2 データベース内へ作成することができます([OK]ボタンをクリック

したときに実際にテーブルが作成されます)。

16. 続いて、次のように[マッピング]ページをクリックすると、転送元のデータの各列と、転送

先のデータの各列とのマッピング(対応)を設定することができます。

1

3

2SQL 文のテーブル名を変更

Page 74: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

74

[使用できる入力列]と[使用できる変換先列]とで、同じ名前の列が割り当てられているこ

とを確認して、[OK]ボタンをクリックします。

データ転送の実行

17. ここまでの設定を確認するために、次のように[デバッグ]メニューから[デバッグ開始]を

クリックして、データの転送を実行します。

配置されているオブジェクトがすべて緑色に変わると、データの転送が成功しています。

18. 転送が成功したら、[デバッグ]メニューから[デバッグの停止]をクリックして、デバッグ

を終了します。

1 2

3

1

2

Page 75: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

75

転送されたデータの確認

19. 転送されたデータを確認するには、Management Studio から、次のように[SSISdb2]デ

ータベースの[テーブル]フォルダを右クリックして、[最新の情報に更新](最新の情報に更

新)をクリックします。

テーブルの一覧に「社員」という名前のテーブルが作成されていることを確認できます。

続いて、[社員]テーブルを右クリックして[上位 1000 行の選択]をクリックします。

1

2

1

2

3

Page 76: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

76

表示された社員テーブルのデータが、Excel フゔル内のデータ(以下)と同じであることを

確認します。

プロジェクトの保存

20. 次に、ここまでの手順を保存するために、Business Intelligence Development Studio から、

次のように[フゔル]メニューの[すべてを保存]をクリックして、プロジェクトを保存し

ます。

1

2

3

Employee.xls フゔル

1

2

Page 77: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

77

3.5 派生列コンポーネントによるデータ変換

次に、単純なデータ変換(コピー)だけでなく、データ変換を追加していきましょう。ここでは、「姓」と「名」

列から「氏名」列へ変換し、「性別コード」列からは、「1」を「男性」へ、「2」を「女性」へと変換するよ

うな「性別」列を作成します。このようなデータ変換は、派生列コンポーネントを利用して簡単に行うこと

ができます。

派生列コンポーネントの追加

21. まずは、前の手順で設定した[Excel ソース]から、[SQL Server 変換先]へ向かって出て

いる ”緑色の矢印” を右クリックして、[削除]をクリックします。これにより、矢印が削除

されます。

22. 次に、データ変換を行うためのコンポーネントとなる[派生列]を[Excel ソース]と[SQL

Server 変換先]の間へ配置します。このコンポーネントは、[ツールボックス]の[データ フ

ロー変換]カテゴリにあります。

2

右クリック1

ドラッグ&ドロップして少し下へ移動

SSIS デザナ上へドラッグ&ドロップ

2

1

Page 78: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

78

23. 次に、転送元と派生列を関連付けるために、SSIS デザナ上にある[Excel ソース]をクリ

ックして ”緑色の矢印” を表示し、この矢印を[派生列]まで、ドラッグ ゕンド ドロップし

て伸ばします。

24. 次に、データ変換を定義するために、次のように[派生列]をダブル クリックします。

すると、[派生列変換エデゖタ]ダゕログが表示されるので、[列]フォルダを展開します。

これにより、転送元の列が一覧されます。

25. 今回は、「姓」列と「名」列をもとに「氏名」列を作成するので、次のように[派生列名]に

「氏名」と入力して、[派生列]が「新しい列として追加」となっていることを確認します。

1ドラッグ&ドロップして伸ばす

ダブル クリック1

1

Page 79: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

79

次に、「姓」と「名」列を文字列連結するために、[式]へ、「姓」と「名」列をドラッグ ゕン

ド ドロップして配置し、次のように式を入力します。

[姓]+ " " +[名]

Note: 文字列連結演算子の「+」

Integration Services では、文字列の連結に「+」演算子を利用し、文字列は「"」で囲みます。したがって、上

のように式を記述すると、「姓」列のデータに半角スペースを連結し、さらに「名」列を連結できるようになりま

す。たとえば、姓が「山田」、名が「太郎」なら「山田 太郎」のように連結できます。

このように、派生列コンポーネントを利用すると、既存の列データを元に、新しい列(元デー

タから派生した列)を作成できるようになります。

26. 続いて、「性別コード」列をもとに「性別」列を作成するために、次のように[派生列名]に

「性別」と入力して、[派生列]が「新しい列として追加」となっていることを確認します。

「+」演算子を利用して、文字列連結をするように

式を入力して完成

「姓」列を「式」 へドラッグ&ドロップ

「名」列をドラッグ & ドロップ3

4

2

1

Page 80: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

80

次に「性別コード」が「1」の場合は「男性」、「2」の場合は「女性」になるように「性別」

列を作成するために、「性別コード」列を[式]へドラッグ ゕンド ドロップして配置し、次

のように式を入力します。

[性別コード]== 1 ? "男性" : "女性"

Integration Services では、条件分岐を行うための演算子として、「?」と「:」を利用して、

次のように利用します。

条件式 ? 真の場合 : 偽の場合

この演算子は、Access や Reporting Services などで利用できる「IIF」関数と同じ効果が

あります。また、式で利用している「==」演算子は、等価比較のための比較演算子です。し

たがって、上のように式を記述すると、性別コードが「1」に等しい場合は「男性」、そうでな

い場合は「女性」という文字列へ変換するという意味になります。

式を入力後、[OK]ボタンをクリックしてダゕログを閉じます。

27. 次に、派生列で作成した「氏名」列と「性別」列が SQL Server へ転送されるようにします。

次のように[派生列]をクリックして ”緑色の矢印” を表示し、この矢印を[SQL Server 変

換先]までドラッグ ゕンド ドロップして伸ばします。

1

式を入力して完成する

2「性別コード」列をドラッグ&ドロップ

4

3

Page 81: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

81

転送先のテーブルの変更

28. 次に、[SQL Server 変換先]をダブル クリックします。

29. [SQL 変換先エデゖタ]ダゕログが表示されたら、[接続マネージャ]で「サーバー名.SSISdb2」

が選択されていることを確認します。続いて、[テーブルまたはビューを使用]で[新規作成]

ボタンをクリックします。

1ドラッグ&ドロップして伸ばす

ダブル クリック1

3

2

1

Page 82: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

82

これにより、[テーブルの作成]ダゕログが表示されて、転送元のデータと派生列コンポー

ネントをもとに、CREATE TABLE ステートメントが自動生成されます。今回は、この SQL ス

テートメントを次のように変更します。

CREATE TABLE[社員2](

[社員番号]float,

[氏名]nvarchar(511),

[性別]nvarchar(2),

[部門番号]float

)

これにより、「社員2」テーブルを SSISdb2 データベース内へ作成することができます([OK]

ボタンをクリックしたときに実際にテーブルが作成されます)。

30. 続いて、次のように[マッピング]ページをクリックすると、転送元のデータの各列と転送先

のデータの各列とのマッピング(対応)を設定することができます。

前の手順で作成した「氏名」列がテーブルへ転送されるように、[使用できる入力列]の「氏

名」列から[使用できる変換先列]の「氏名」列へドラッグ ゕンド ドロップします。同様に、

「性別」列に対しても同じ操作を行います。

これにより、[使用できる入力列]から[使用できる変換先列]へ 2 本の線(マッピング)が

2

テーブル名を「社員2」へ変更。「姓」列と「名」列、「性別コード」列を削除して、「部門番号」列を一番下へ移動(その際に ,(カンマ)の位置に注意)

1

3

2

「氏名」列から「氏名」列へ、「性別」列から「性別」列へドラッグ & ドロップ

4

1

Page 83: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

83

追加され、作成した「氏名」列と「性別」列を、「社員 2」テーブルの「氏名」列と「性別」

列へそれぞれ割り当てることができます。

データ転送の実行

31. ここまでの設定を確認するために、次のように[デバッグ]メニューから[デバッグ開始]を

クリックして、データ転送を実行します。

配置されているオブジェクトがすべて緑色に変わると、データの転送が成功しています。

32. 転送が成功したら、[デバッグ]メニューから[デバッグの停止]をクリックして、デバッグ

を終了します。

転送されたデータの確認

33. 転送されたデータを確認するには、Management Studio で、次のように[SSISdb2]デー

タベースの[テーブル]フォルダを右クリックして、[最新の情報に更新]をクリックします。

1

2

1

2

Page 84: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

84

テーブルの一覧に「社員 2」という名前のテーブルが作成されていることを確認できます。

34. 続いて、[社員 2]テーブルを右クリックして[上位 1000 行の選択]をクリックします。

表示されたデータが、Excel フゔル内のデータ(以下)をもとに変換され、「姓」と「名」

列を連結して「氏名」列が、「性別コード」列が変換されて「性別」列が追加されていること

を確認できます。

1

2

3

1

2

3

4

「姓」と「名」が連結されている

5

男性と女性に変換されている

Employee.xls フゔル

Page 85: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

85

プロジェクトの保存

35. 次に、ここまでの手順を保存するために、Business Intelligence Development Studio から、

次のように[フゔル]メニューの[すべてを保存]をクリックして、プロジェクトを保存し

ます。

1

2

Page 86: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

86

3.6 参照コンポーネントによる別テーブルのデータ取得

次に、社員データの「部門番号」から、「部門」テーブルにある「部門名」を取得(参照)してデータを転送

するようにパッケージを変更します。他のテーブルのデータを参照するには、「参照」(Lookup)コンポー

ネントを利用します。

参照コンポーネントの追加

36. まずは、前の手順で設定した[派生列]から[SQL Server 変換先]へ向かって出ている ”緑

色の矢印” を右クリックして、[削除]をクリックします。これにより矢印が削除されます。

Employee.xls フゔル SSISdb1 データベース内の「部門」テーブル

結果

参照

右クリック1

2

Page 87: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

87

37. 次に、[ツールボックス]の[データ フロー 変換]カテゴリの中から、[参照]コンポーネン

トを SSIS デザナ上へドラッグ ゕンド ドロップします。

38. 次に、SSIS デザナ上にある[派生列]コンポーネントをクリックして ”緑色の矢印” を表

示し、この矢印を[参照]コンポーネントまで、ドラッグ ゕンド ドロップして伸ばします。

39. 次に、取得するデータを指定するために、[参照]コンポーネントをダブル クリックします。

1

緑色の矢印をドラッグ & ドロップして伸ばす

1

Page 88: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

88

40. すると、[参照変換エデゖタ]ダゕログが表示されるので、[接続]ページをクリックして開

きます。

41. [接続]ページが表示されたら、次のように、[OLE DB 接続マネージャ]で[新規作成]ボ

タンをクリックします。

ダブル クリック1

1

Page 89: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

89

[OLE DB 接続マネージャの構成]ダゕログが表示されたら、次のように、STEP 2 で作

成した「SSISdb1」データベースへ接続するために[新規作成]ボタンをクリックします。

42. [接続マネージャ]ダゕログでは、次のように[サーバー名]へ転送先となる SQL Server

の名前を入力し、[データベースへの接続]で「SSISdb1」を選択して、[OK]ボタンをクリ

ックします。

1

1

Page 90: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

90

43. [OLE DB 接続マネージャの構成]ダゕログへ戻ったら、[データ接続]で、「サーバー

名.SSISdb1」が選択されていることを確認して、[OK]ボタンをクリックします。

44. [参照変換エデゖタ]ダゕログへ戻ったら、[テーブルまたはビューを使用する]で参照先

のテーブルを指定します。今回は、「部門」テーブルのデータを参照するので、次のように、

「dbo.部門」テーブルを選択します。

2

1

3

2

1

Page 91: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

91

部門テーブルのデータを確認するために[プレビュー]ボタンをクリックします。確認後、[閉

じる]ボタンをクリックします。

45. 続いて、[列]ページをクリックして、参照する列を設定します。次のように、[使用できる入

力列]の「部門番号」列の参照先が、[使用できる参照列]の「部門番号」列となるように、

ドラッグ ゕンド ドロップします。

しかし、「データ型が浮動小数点(float)型のため、参照できない」という主旨のエラーメッ

セージが表示され、正しく設定することができません。参照コンポーネントは、データ型が一

致しないと参照することができないためです(転送元の「部門番号」列は float 型で、参照

先の「部門」テーブルの「部門番号」列は int 型で、データ型が一致していません)。そこで、

1

2

3

4

1

3

「部門番号」列をドラッグ&ドロップ

2

チェックボックスではなく、[名前]列内の「部門番号」へドラッグ&ドロップすることに注意。チェックボックスへドラッグ&ドロップした場合は、何も起こらない。

Page 92: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

92

ここでは、ひとまず[OK]ボタンをクリックして、エラー メッセージを閉じ、[接続]ペー

ジへ戻ります。

続いて、[OK]ボタンをクリックして、[参照変換エデゖタ]ダゕログを閉じます。

46. 転送元の「部門番号」列のデータ型を float 型から int 型へ変更するには、次のように[Excel

ソース]を右クリックして、[詳細エデゖタの表示]をクリックします。

47. これにより、[Excel ソースの詳細エデゖタ]ダゕログが表示されるので、次のように[入

力プロパテゖと出力プロパテゖ]タブをクリックします。

1

2

2

右クリック1

Page 93: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

93

このダゕログでは、[Excel ソースの出力]の[出力列]を展開して、Excel フゔルから

転送される列を一覧します。この一覧から「部門番号」列を選択して、表示されるプロパテゖ

の中から、[Data Type](データ型)を探します。この値は、「倍精度浮動小数点数」(SQL Server

での float 型に相当するデータ型)へ設定されているので、「4 バト符号付き整数」(SQL

Server での int 型に相当するデータ型)へ変更します。

データ型の変更後、[OK]ボタンをクリックして、ダゕログを閉じます。

48. 次に、先ほど失敗した参照列の設定を再度行うために、[参照]コンポーネントをダブル クリ

ックします。

1

クリックして選択

2

3

5

4

6

ダブル クリック1

Page 94: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

94

49. [参照変換エデゖタ]ダゕログが表示されたら、[列]ページをクリックして開きます。

[使用できる入力列]の「部門番号」列を[使用できる参照列]の「部門番号」列へドラッグ

ゕンド ドロップすると、今度はエラーメッセージが表示されずに線が追加されます。続いて、

取得したい列を指定するために、[使用できる参照列]の「部門名」列のチェック ボックスを

チェックし、[OK]ボタンをクリックします。

これで部門テーブルから部門名を参照(取得)できるようになります。

50. 次に、取得した部門名が SQL Server へ転送されるように、[参照]コンポーネントの緑色の

矢印を[SQL Server 変換先]までドラッグ ゕンド ドロップして伸ばします。

すると、[入出力の選択]ダゕログが表示されるので、[出力]で「参照の一致出力」を選択

して、[OK]ボタンをクリックします。これで、[参照]コンポーネントで参照した値(参照

元の部門番号と参照先の部門番号が一致する部門名)を[SQL Server 変換先]へ渡せるよう

になります。

1

2「部門番号」列をドラッグ & ドロップ

チェック

4

3

13

2

Page 95: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

95

転送先のテーブルの変更

51. 次に、転送先のテーブルを変更するために、[SQL Server 変換先]をダブル クリックして、

[SQL 変換先エデゖタ]ダゕログを開きます。

52. [接続マネージャ]で「サーバー名.SSISdb2」が選択されていることを確認し、[テーブル

またはビューを使用]で[新規作成]ボタンをクリックします。

これにより、[テーブルの作成]ダゕログが表示されて、転送元のデータと派生列、参照コ

ンポーネントで参照した列をもとに、CREATE TABLE ステートメントが自動生成されます。

今回は、このステートメントを次のように変更します。

ダブル クリック1

1

3

2

2

テーブル名を「社員3」へ変更。「姓」列と「名」列、「性別コード」列、「部門番号」列を削除する

1

Page 96: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

96

ステートメント変更後、[OK]ボタンをクリックすると、「社員 3」テーブルが作成されます。

53. [SQL 変換先エデゖタ]ダゕログに戻ったら、次のように[マッピング]ページをクリッ

クします。

[参照]コンポーネントで参照した「部門名」列がテーブルへ転送されるように、[使用でき

る入力列]の「部門名」列から[使用できる変換先列]の「部門名」列へドラッグ ゕンド ド

ロップします。線が追加されたことを確認して、[OK]ボタンをクリックします。

データ転送の実行

54. ここまでの設定を確認するために、[デバッグ]メニューから[デバッグ開始]をクリックし

て、パッケージを実行します。

配置されているオブジェクトがすべて緑色に変わると、データの転送が成功しています。

55. 転送が成功したら、[デバッグ]メニューから[デバッグの停止]をクリックして、デバッグ

を終了します。

「部門名」列から「武門名」列へドラッグ & ドロップ

4

3

2

1

1

Page 97: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

97

転送されたデータの確認

56. 転送されたデータを確認するには、Management Studio から、次のように[SSISdb2]デ

ータベースの[テーブル]フォルダを右クリックして、[最新の情報に更新]をクリックしま

す。

テーブルの一覧に「社員 3」という名前のテーブルが作成されていることを確認できます。

続いて、[社員 3]テーブルを右クリックして[上位 1000 行の選択]をクリックします。

1

2

1

2

3

Page 98: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

98

「部門番号」列の代わりに「部門名」列が追加されていることを確認できます。このように参

照コンポーネントを利用すると、他のテーブルを参照して、関連データを取得できるようにな

るので、大変便利です。

プロジェクトの保存

57. 最後に、ここまでの手順を保存するために、Business Intelligence Development Studio か

ら、次のように[フゔル]メニューの[すべてを保存]をクリックして、プロジェクトを保

存します。

1

2

3

「部門番号」列のかわりに「部門名」列が追加

4

1

2

Page 99: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

99

3.7 データ ビューゕによる転送中のデータの表示

データの転送は、ここまで作成してきたように、矢印の順にそれぞれのコンポーネントを通って行われます

が、データ ビューゕ機能を利用すると、次のようにコンポーネント間を転送されるデータを確認できるよう

になります。

データ ビューゕは、派生列や参照コンポーネントによるデータ変換処理が正しく行われているかどうかの確

認目的(デバッグ目的)として利用できるので、大変便利です。ここでは、これまで作成してきた SSISstep3

プロジェクトのパッケージを引き続き利用して、データ ビューゕの機能を試してみましょう。

データ ビューゕの設定

58. 最初に、[Excel ソース]から[派生列]へ転送されるデータを確認するためのデータ ビュー

ゕを設定してみましょう。次のように SSIS デザナ上の[Excel ソース]と[派生列]の

間の矢印を右クリックして[データ ビューゕ]をクリックします。

データ ビューゕを利用すると、変換・転送中のデータを確認できるので、正しく実行されているかを容易に確認できる

右クリック1

2

Page 100: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

100

59. すると、次のように、[データ フロー パス エデゖタ]ダゕログが表示されるので、[デー

タ ビューゕ]ページで[追加]ボタンをクリックします。

これにより、[データ ビューゕの構成]ダゕログが表示されるので、「グリッド」を選択し

て、[OK]ボタンをクリックします。

[データ フロー パス エデゖタ]ダゕログへ戻ると、設定したデータ ビューゕが表示され

ていることを確認できます。

確認後、[OK]ボタンをクリックします。

60. デザナへ戻ると、次のようなメガネ マークのデータ ビューゕ ゕコンが追加されている

ことを確認できます。

1

2 4

3

2

1

Page 101: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

101

これでデータ ビューゕの設定が完了です。

61. 同様にして、[派生列]と[参照]コンポーネントとの間にもデータ ビューゕを設定しましょ

う。次のように SSIS デザナ上の[派生列]と[参照]の間の矢印を右クリックして[デ

ータ ビューゕ]をクリックします。

62. [データ フロー パス エデゖタ]ダゕログが表示されたら、[追加]ボタンをクリックしま

す。

メガネ マークのデータ ビューゕ ゕコン

1

2

右クリック1

1

2 4

5

3

Page 102: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

102

[データ ビューゕの構成]ダゕログでは、「グリッド」を選択して、[OK]ボタンをクリッ

クします。[データ フロー パス エデゖタ]ダゕログへ戻ったら、[OK]ボタンをクリック

します。

63. 次のようにデータ ビューゕ ゕコンが追加されることを確認します。

実行してデータ ビューゕの効果を確認

64. 次に、[デバッグ]メニューから[デバッグ開始]をクリックして、パッケージを実行します。

65. すると、[派生列]コンポーネントが黄色になってデータ転送がここで一時的に停止し、[デー

タ ビューゕ]ウゖンドウが表示されます。

1

1

Page 103: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

103

データ ビューゕでは、[Excel ソース]から[派生列]に転送されてきたデータを確認するこ

とができます。

このデータは、元の Excel データと同じであることを確認し、「 」ボタンをクリックし

て、転送を再開します。

66. 次に、[参照]コンポーネントが黄色になってデータ転送がここで再び一時的に停止し、次の

ように[データ ビューゕ]ウゖンドウが表示されます。

データ ビューゕでは、[派生列]から[参照]コンポーネントへ転送されてきたデータを確認

することができます。

派生列(新しい列)として作成した「氏名」列と「性別」列が追加されていることを確認して、

「 」ボタンをクリックし、転送を再開します。

67. すべてのコンポーネントが緑色に変わると、データの転送が完了します。転送完了後、[デバ

ッグ]メニューから[デバッグの停止]をクリックして、デバッグを終了します。

3

1 2

1

2

3

Page 104: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

104

データ ビューゕの削除

68. 設定したデータ ビューゕを削除したい場合は、次のように線の矢印を右クリックして[デー

タ ビューゕ]をクリックします。

[データ フロー パス エデゖタ]が表示されたら、[データ ビューゕ]に一覧されているデ

ータ ビューゕを選択して、[削除]ボタンをクリックします。

69. もう一つのデータ ビューゕに対しても、同様の操作をして、削除することができます。

1

2

4

右クリック1

2

5

3

4

右クリック1

2

5

3

Page 105: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

105

プロジェクトの保存

70. 次に、ここまでの設定を保存するために、[フゔル]メニューの[すべてを保存]をクリッ

クして、プロジェクトを保存します。

1

2

Page 106: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

106

SSTTEEPP 44.. パパッッケケーージジのの実実行行

この STEP では、保存したパッケージを実行するためのユーテゖリテゖとなる

「dtexecUI.exe」と「dtexec.exe」や、パッケージを定期的に実行する方法を説明し

ます。

この STEP では、次のことを学習します。

パッケージの実行(dtexecUI.exe)

コマンド プロンプトからの実行(dtexec.exe)

パッケージの定期実行(SQL Server Agent ジョブへの登録)

Page 107: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

107

4.1 パッケージの実行(dtexecUI)

SSIS パッケージを実行するには、dtexecUI.exe(パッケージ実行ユーテゖリテゖ)を使用します。ここで

は、STEP 3 で作成したパッケージ(SSISstep3 プロジェクト内にあるパッケージ)を実行してみましょ

う。

パッケージの確認

1. まずは、STEP3 で作成したパッケージ フゔルを確認します。Windows エクスプローラを

起動して、「C:\SSISstep3\SSISstep3\bin」フォルダを展開します。この中にある

「Package.dtsx」というフゔルが、SSISstep3 プロジェクトで作成したパッケージ フゔ

ルです。

dtexecUI の起動

2. エクスプローラで、パッケージ フゔル(Package.dtsx)をダブル クリックします。

3. すると、dtexecUI.exe が起動されて、次のような[パッケージ実行ユーテゖリテゖ]ダ

ゕログが表示されます。

1

2パッケージ フゔル

ダブル クリック

1

Page 108: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

108

[パッケージ ソース]が「フゔル システム」になっていて、[パッケージ]がパッケージ フ

ゔルのパス(今回は、C:\SSISstep3\SSISstep3\bin\Package.dtsx)になっていること

を確認します。

次に、[実行]ボタンをクリックして、パッケージの実行を開始します。

4. パッケージの実行が開始されると、次のように[パッケージ実行の進行状況]]ダゕログが

表示され、進捗状況が表示されます。

完了後、[閉じる]ボタンをクリックします。

1

2

3

1

Page 109: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

109

Note: 実行時に接続先を変更することも可能

[パッケージ実行ユーテゖリテゖ]の[接続マネージャ]ページを利用すると、パッケージの実行時に接続先(SQL

Server の名前やデータベース名、Excel フゔルの格納されているフォルダ パスなど)を変更することも可能で

す。

この機能は、開発機と本番機で SQL Server の名前が異なる場合や、データベース名が異なる場合に大変便利です。

また、dtexecUI では、接続先だけでなく、パッケージ内に配置したコンポーネントのその他のプロパテゖについて

も可変にして、実行時に値を変更することができます。これは、構成フゔル(.dtsConfig)を利用することで行え

ますが、これについては、本自習書シリーズの「Integration Services 応用」で説明します。

1

変更したい接続先をチェックする

接続先のサーバー名(Data Source)やデータベース名(Initial Catalog)、認証方法などを直接変更できる

2 3

Page 110: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

110

4.2 コマンド プロンプトからのパッケージ実行(dtexec)

SSIS パッケージは、「dtexec.exe」を利用すると、コマンドから実行することもできます。

dtexec の利用

1. dtexec を利用して、STEP3 で作成したパッケージを実行するには、コマンド プロンプトか

ら次のようにコマンドを入力し、[Enter]キーを押して実行します。

dtexec /FILE "C:\SSISstep3\SSISstep3\bin\Package.dtsx"

すると、パッケージの進捗状況が表示され、パッケージの実行が完了すると、次のようなメッ

セージ表示されます。

Note: dtexecUI を利用したコマンド ラン オプションの生成

dtexecUI.exe の[コマンド ラン]ページでは、GUI ベースで設定した実行時のオプションに対して、コマン

ド プロンプト(dtexec)から実行する際のコマンド ラン オプションを生成してくれる機能があるので、これ

をコピーして dtexec を実行すると便利です。

1

dtexec コマンド用のコマンド ラン オプションが表示される。コピーして利用できる

2

Page 111: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

111

4.3 パッケージの定期実行(SQL Server Agent ジョブ)

SSIS パッケージを定期的に実行したい場合は、SQL Server Agent サービスの「ジョブ」機能を利用しま

す。ここでは、STEP3 で作成したパッケージ(C:\SSISstep3\SSISstep3\bin\Package.dtsx)を定期

的に実行する手順を例に説明します。

SQL Server Agent サービスの起動

パッケージをジョブとして定期的に実行させるには、事前に「SQL Server Agent」サービスを開

始しておく必要があります。

1. 「SQL Server Agent」サービスを開始するには、次のように Management Studio のオブ

ジェクト エクスプローラで[SQL Server エージェント]を右クリックして、[開始]をク

リックします。

すると、「SQLSERVERAGENT サービスを開始しますか?」という主旨のメッセージが表示

されるので、[はい]ボタンをクリックします。

SQL Server Agent のジョブとしての登録

2. パッケージを SQL Server Agent のジョブとして登録するには、次のようにオブジェクト エ

クスプローラで[SQL Server エージェント]の[ジョブ]フォルダを右クリックして、[新

しいジョブ]をクリックします。

1右クリック

2

3

4

Page 112: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

112

これにより、[新しいジョブ]ダゕログが表示されるので、[名前]へ任意の名前(パッケー

ジの実行など)を入力します。

3. 次に、[ステップ]ページをクリックして表示し、[新規作成]ボタンをクリックします。

これにより、[新しいジョブ ステップ]ダゕログが表示されるので、[ステップ名]へ任意

の名前(STEP3 パッケージ実行など)と入力します。

パッケージをステップとして登録するには、[種類]で「SQL Server Integration Services

パッケージ」を選択します。また、[パッケージ ソース]で「フゔル システム」を選択し、

[ パ ッ ケ ー ジ ] へ STEP 3 で 作 成 し た パ ッ ケ ー ジ フ ゔ ル

「C:\SSISstep3\SSISstep3\bin\Package.dtsx」を選択して、[OK]ボタンをクリックし

ます。

1

2

2

3

4

5

7

6

1

Page 113: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

113

4. 次に、ジョブのスケジュールを設定するために、次のように[スケジュール]ページをクリッ

クして開きます。

新規のスケジュールを作成するために、[新規作成]ボタンをクリックします。

5. すると、[新しいジョブ スケジュール]ダゕログが表示されて、スケジュールの設定が行え

ます。

[名前]へ任意のスケジュール名を入力し、どのくらいの頻度で実行するかや、実行日時など

1

2

スケジュール名

2単位(日、週、月)の指定

何週ごとか、何曜日に実行するか(週を指定した場合)

何時に実行するか、または何時間おきに実行するか

3

1

4

5

Page 114: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

114

を設定します。例えば、”毎日夜 2:00” に実行したい場合は、次のように設定します。

6. 最後に[新しいジョブ]ダゕログで、[OK]ボタンをクリックすれば、ジョブの登録が完了

です。

以上で、設定したスケジュールの時刻にパッケージが自動実行されるようになります。

2

毎日 夜の 2:00 に実行したい場合は「実行」を「毎日」「間隔」を「1」日「1回」 を「2:00:00」に設定する

1

1

Page 115: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

115

ジョブの確認(手動実行)

次に、登録したパッケージのジョブが正常に実行されるかどうかを確認するために、手動で実行し

てみましょう。

7. 登録したジョブを手動で実行するには、次のように[ジョブ]フォルダ内の登録したジョブ(パ

ッケージの実行)を右クリックして、[ステップでジョブを開始]をクリックします。

ジョブが開始され[ジョブの開始]ダゕログが表示されます。すべての[状態]が「成功」

になれば、ジョブの実行(パッケージの実行)が成功しています。結果を確認後、[閉じる]

ボタンをクリックします。

1

3

4 2

Page 116: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

116

4.4 Integration Services とデータ ウェゕハウスの関係 ~ETL~

ここでは、Integration Services とデータ ウェゕハウスとの関係について説明します。Integration Services

は、データ ウェゕハウスを構築する上で欠かせないツールとなります。

一般的なデータ ウェゕハウスの構成は、次のようになります。

データ ウェゕハウス(DWH : Data Warehouse)は、基幹業務系のシステムのデータを整理、統合、蓄積

したもので、Warehouse は「倉庫」という意味です。蓄積したデータに対してさまざまな分析を行うこと

で、売上や利益を上げるための方針を立案したり、競合他社に対する施策を練ったりするために利用します。

Integration Servcies は ETL ツール

データ ウェゕハウスを構築する上で欠かせないツールとなるのが、Integration Services のよう

に、さまざまなデータ ソースからデータを抽出して、フォーマットの統一(データ変換・加工)

が行え、分析へ適した形へ変換・転送できるツールです。このようなツールは、抽出、転送、ロー

ドが行えることから「ETL」(Extraction、Transformation and Loading)ツールと呼ばれていま

す。このため、Integration Services は ETL ツールとも呼ばれます。

データ ウェゕハウスの構築作業のうち、ETL ツールによる作業が 6 割~ 8 割を占めるとも言わ

れており、非常に重要な役割を担っています。

Note: データ ウェゕハウスや BI の定義は、人によってさまざま

データ ウェゕハウスの定義は、使う人によってさまざまで、狭い意味では「企業内に散在する業務システムのデータを

OLAP サーバー

キューブ(多次元DB)

広義のデータ ウェゕハウス

RDB・専用 DB

その他のデータ

メン フレーム(汎用機)や UNIX など

キューブ

SQL Server

セントラルデータ ウェゕハウス

・RDB・専用DB

部門や地域、使

用目的ごとに抜き出したデータ

データ マート

RDB・専用 DB

OLAP ツール(クラゕント)

・データ分析・予測・グラフ・クロス集計レポート・経営ダッシュボード

・データ マニング)

基幹系システム

いろいろな場所へ散在するデータ、フォーマットの不

統一など

BI (Business Intelligence: ビジネス ンテリジェンス)システム

ETL ツールさまざまなデータソースか

らデータ抽出・変換・転送

狭義のデータ ウェゕハウス

データ分析・意

思決定のための全社統合データ

Page 117: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

117

抽出、変換、統合して蓄積したデータの集まり」(全社統合データ)を指し、「セントラル データ ウェゕハウス」と呼ば

れます。これに対して、広い意味では「データの蓄積から活用までを含めた意思決定を支援するシステム全体」を指しま

す(データマートや OLAP サーバーを含めて、あるいは人によっては OLAP ツールまでを含めてデータ ウェゕハウス

と呼ぶこともあります)。

最近は、「OLAP ツールを利用した高度なデータ分析までを含めたシステム全体」を指して「BI」(Business Intelligence:

ビジネス ンテリジェンス)システムと呼ぶことが多くなり、データ ウェゕハウスという言葉は、セントラル データ ウ

ェゕハウスやデータマートを指すことが多くなっています。なお、狭義での BI は、OLAP サーバーや OLAP ツールを

指します。

データ ウェゕハウスと SQL Server の関係

SQL Server には、Database Engine や Integration Services だけでなく、Reporting Services

(レポート サーバー)や Analysis Services(分析サービス)など、いろいろな機能が提供され

ています。これらの SQL Server のサービスと、一般的なデータ ウェゕハウスの構成を当てはめ

ると、次のようになります。

SQL Server の Database Engine Services(RDB Engine:リレーショナル データベース エン

ジン)は、基幹系システムやセントラル データウェゕハウス、データマートにおけるデータの格

納先として、十二分に利用することができます。実際、SQL Server を利用したテラ バト(TB)

サズのデータ ウェゕハウスを構築している企業は多数あり、筆者もそういった企業のコンサル

テゖング(物理設計や論理設計、BI システム設計など)を行った経験があります。

また、SQL Server 2008 では、データ ウェゕハウス関連の機能(特にパフォーマンス)が大き

く向上しており、より大規模かつミッション クリテゖカルなデータベース環境への対応を強化し

ています。

OLAP サーバー

広義のデータ ウェゕハウス

その他のデータ

メン フレーム(汎用機)や UNIX など

セントラルデータ ウェゕハウス

OLAP ツール(クラゕント)

・データ分析・予測・グラフ・クロス集計レポート・経営ダッシュボード

・データ マニング)

基幹系システム

BI (Business Intelligence: ビジネス ンテリジェンス)システム

SQL ServerDatabase Engineデータベース エンジン

SQL ServerDatabase Engineデータベース エンジン

データマート

SQL ServerDatabase Engineデータベース エンジン

SQL ServerAnalysis Services

分析サーバー

SQL ServerReporting Services

レポート サーバー

Microsoft Office Excel

Internet ExplorerWebブラウザ

ETL ツール

SQL ServerIntegration Services

データ転送・変換

狭義のデータ ウェゕハウス

Page 118: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

118

4.5 SQL Server 2008のデータ ウェゕハウス関連のパフォーマンス向上

SQL Server 2008 の新機能(データ ウェゕハウス関連)

SQL Server 2008 では、データ ウェゕハウス関連のパフォーマンスが大きく向上しています。そ

の主なものは、次のとおりです。

スター ジョンのパフォーマンス向上

パーテゖションのパラレル処理のパフォーマンス向上(1 つのパーテゖションを複数スレ

ッドが処理可能に)

パーテゖション単位のロックが可能に。またロック エスカレーションの禁止も可能に

データ圧縮(Data Compression)機能によるパフォーマンス向上とデゖスク コストの削

リソース ガバナーによるリソース調整(ワークロード単位での CPU 利用率やメモリ使用

量の調整が可能に)

バックゕップ圧縮によるバックゕップ・リストゕのパフォーマンス向上とデゖスク コスト

の削減

ンデックス付きビューがパーテゖションへ割り当て可能に

実行プランの固定(プラン キャッシュをもとに実行プランの固定が可能に。従来のバージ

ョンでは XML 実行プランをもとに固定が可能)

Integration Services のパフォーマンス向上

SQL Server 2008 では、Integration Services のパフォーマンスも向上しています。具体的には、

次のとおりです。

内部処理エンジンの改良により、データ フロー タスクのパフォーマンスが向上

Lookup(参照)コンポーネントのパフォーマンス(キャッシュ機能)が向上

Page 119: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

119

4.6 BI 系のサービス(Reporting Services、Analysis Services)

前述の図(データ ウェゕハウスと SQL Server の関係)のように、SQL Server には、Reporting Services

(レポート サーバー)や Analysis Services(分析サービス)など、データベース エンジンのほかにも、

いろいろな機能が提供されています。これらは、データ分析のための「BI」(Business Intelligence:ビジ

ネス ンテリジェンス)システムを構築するうえでは、非常に重要なツールとなっています。

Reporting Services(レポート サーバー)

SQL Server 2008 Reporting Services(SSRS)は、レポートの「作成」や「管理」、「配布」が

行える ”レポーテゖング ツール” です。会社の売上レポートやグラフ、クロス集計、ABC 分析(パ

レート図)、帳票(見積書や納品書、請求書など)を GUI ベースで容易に作成し、レポート サー

バーへ配置して、Web ブラウザから閲覧することができる機能です。

Reporting Services を利用すると、次のようなレポートを簡単に作成することができます。

これらのレポートを作成する手順は、本自習書シリーズの「Reporting Services 入門」で説明し

ているので、ぜひご覧になってみてください。

SQL Server 2008 自習書シリーズ「Reporting Services 入門」のダウンロードはこちら

http://www.microsoft.com/japan/sqlserver/2008/self-learning/default.mspx

Analysis Services(分析サービス)

SQL Server 2008 Analysis Services(SSAS:分析サービス)は、"データ分析" のためのサーバ

ABC 分析グラフ(パレート図。2Y軸対応) 3D 棒グラフ

クロス集計レポート 円グラフ

Page 120: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

120

ー機能です。Microsoft Office Excel や Microsoft Office PeformancePoint Server 2007 など

をクラゕント ツールとして利用することで、企業の売上分析やクロス集計レポート、ABC 分析

(パレート図)、財務諸表分析、経営ダッシュボード、データ マニングなどを容易に行えるよう

になります。

Analysis Services を利用すると、次のようなデータ分析を簡単に行えるようになります。

Analysis Services によるデータ分析を行う手順は、本自習書シリーズの「Analysis Services 入

門」で説明しています。この自習書は、こちらからダウンロードすることができます。

http://www.microsoft.com/japan/sqlserver/2008/self-learning/default.mspx

商品分類ごとの商品売上トップ5

都道府県ごとの商品売上の割合 商品区分ごとの商品売上金額 商品ごとの売上金額(飲料区分)

区分ごとの商品売上の推移(四半期単位)

クロス集計、ABC 分析レポート

Page 121: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

121

4.7 SQL Server 2008 Integration Services の新機能

SQL Server 2008 Integration Services の新機能

SQL Server 2008 Integration Services は、以前のバージョンから大きな変更点はありませんが、

前述したように内部的な処理エンジンの改良によるパフォーマンスの向上や、C# でスクリプトを

記述できるようになった点など、細かいところで機能が向上しています。

SQL Server 2008 での主な新機能は、次のとおりです。

内部処理エンジンの改良により、データ フロー タスクのパフォーマンスが向上した

Lookup(参照)コンポーネントのパフォーマンス(キャッシュ機能)が向上した

「データ プロフゔル タスク」と「Data Profiler Viewer」ツールが追加され、データ

の分布情報を容易に確認できるようになった

スクリプト環境が Microsoft Visual Studio for Applications (VSA) から Microsoft

Visual Studio 2005 Tools for Applications (VSTA) に変わり、C# によるスクリプトの

記述や Web 参照の記述ができるようになった

データ フロー タスクの変換元で[DataReader ソース]に代わって[ADO NET Source]

が追加され、データ フロー タスクの変換先でも[ADO NET Destination]が追加された

なお、「データ プロフゔル タスク」と「Data Profiler Viewer」ツールについては、本自習書シ

リーズの「SQL Server 2008 の注目の新機能をチ早く試してみよう!」で扱っていますので、

そちらを参考にしてください。

SQL Server 2008 自習書シリーズ「注目の新機能をチ早く試してみよう!」のダウンロードは

こちら

http://www.microsoft.com/japan/sqlserver/2008/self-learning/default.mspx

Page 122: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

122

4.8 おわりに

おわりに

最後まで試された皆さん、いかがでしたでしょうか。SQL Server 2008 Integration Services は、

業務で大変役立つツールですので、ぜひ活用してみていただければと思います。今回は、「入門編」

ということで、基本操作のみをご紹介しましたが、Integration Services では、条件分割や文字

マップ、ログ記録、ベント ハンドラ、チェックポント、ADO.NET Source(と ADO.NET

Destination)、スクリプト コンポーネントによる複雑な変換処理とグローバル変数の利用、

Integration Services サービスへの接続など、まだまだたくさんの機能が提供されています。こ

れらの応用的な利用方法については、本自習書シリーズの「Integration Services 応用」で説明

しています。

Integration Services の「徹底パフォーマンス検証」ホワトペーパーのご紹介

SQL Server 2005 での情報になりますが、マクロソフトでは、Integration Services のパフォ

ーマンスを検証した結果をまとめたものをホワトペーパー(技術文書)として公開しています。

この文書では、異なるハードウェゕ環境 (32-bit、64-bit 環境) でのパフォーマンス比較や、並列

度の変更したことによる効果、挿入コミットサズを変更した場合の変化、複雑な変換処理を伴う

場合の 64-bit 化による効果などが記載されています。SQL Server 2008 の Integration Services

を利用する場合にも、有益な情報がたくさん記載されていますので、ぜひご覧になってみてくださ

い。

SQL Server 2005 徹底検証シリーズのダウンロードはこちら

http://www.microsoft.com/japan/sql/bible/cqi.mspx

SQL Server 2008 共同検証プロジェクト(徹底検証ホワト ペーパー)

徹底検証ホワト ペーパーは、SQL Server 2008 早期実証プロジェクト「CQI」(Center of

Quality Innovation)の成果物です。CQI は、マクロソフトと日本電気株式会社、日本ヒュー

レット・パッカード株式会社、日本ユニシス株式会社の 3 社と共同で実施し、実際のユーザーに

対する SI(System Integration)プロジェクトを想定した「RFP」(Request for Proposal:提

案依頼書)に基づいた「機能動作検証」や「パフォーマンス検証」を行ったプロジェクトです。

このプロジェクトでは、次の 4 つのシナリオを実施しています。

1. コンプラゕンス シナリオ

マクロソフトによる検証プロジェクト。内部統制や日本版 SOX 法、情報漏えい対策

で求められるコンプラゕンスに対応するためのガドラン提示を目的とし、日本版

SOX 法への対応に必要となる機能の実装方法の確立やシステムに与える影響の計測など

を実施

Page 123: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

123

2. 移行 / ゕップグレード シナリオ

日本ユニシス株式会社様との共同検証プロジェクト。SQL Server 2000 および 2005 か

ら、SQL Server 2008 への移行や互換性に関する検証を実施

3. サーバー統合シナリオ

日本ヒューレット・パッカード株式会社様との共同検証プロジェクト。複数のSQL Server

を 1 台の 64 ビット サーバーに集約するメリット・運用管理方法などに関する検証を実

4. DWH(データ ウェゕハウス)シナリオ

日本電気株式会社様との共同検証プロジェクト。SQL Server 2008 のデータ ウェゕハ

ウス環境における実装方法の検証を実施

これらの検証結果(ホワト ペーパー)は、次の URL からダウンロードすることができます。

SQL Server 徹底検証シリーズ

http://www.microsoft.com/japan/sqlserver/2008/bible/cqi.mspx

この自習書シリーズの次のステップのハ レベルな情報として、ぜひご覧いただければと思いま

す。

Page 124: SQL Server 2008 自習書シリーズ Nodownload.microsoft.com/.../SQL08_SelfLearning07_SSIS.pdfSQL Server 2008 自習書 No.7 Integration Services入門 7 1.2 ンポート/エクスポート

SQL Server 2008 自習書 No.7 Integration Services 入門

124

執筆者プロフゖール

有限会社エスキューエル・クオリテゖ(http://www.sqlquality.com/)

SQL Server と .NET を中心とした「コンサルテゖング サービス」と「メンタリング サービス」を提供。

主なコンサルテゖング実績

9 TB データベースの物理・論理設計支援 (パーテゖショニング対応など)

1 秒あたり 1,000 Batch Request の ASP(ゕプリケーション サービス プロバダ)サトの

チューニング(ピーク時の CPU 利用率 100% を 10% まで軽減)

高負荷テスト(ラッシュテスト)実施のためのテスト ゕプリの作成支援

大手流通系システムの夜間バッチ実行時間を 4 時間から 1 時間半へ短縮

大手ンターネット通販システムの夜間バッチ実行時間を 5 時間から 1 時間半へ短縮

宅配便トラッキング情報の日中バッチ実行時間を 2 時間から 5 分へ短縮

検索系 Web サトのチューニング(10 倍以上のパフォーマンス UP を実現)

10 Server によるレプリケーション環境のチューニング

3 TB のセキュリテゖ監査ゕプリケーションのチューニング

大手家電メーカーの制御系ゕプリケーション(100GB)のチューニングと運用管理設計

約 3,000 本のストゕド プロシージャとユーザー定義関数のチューニング

ASP.NET / ASP(Active Server Pages)ゕプリケーションのチューニング

大手ゕミューズメント企業の BI システム設計支援

外資系医療メーカーの Analysis Services による「販売分析」システムの設計支援

大手企業の Analysis Services による「財務諸表分析」システムの設計支援

Analysis Services OLAP キューブのパフォーマンス チューニング etc

松本美穂(まつもと・みほ)

有限会社エスキューエル・クオリテゖ 代表取締役

Microsoft MVP for SQL Server / PASSJ 理事

MCDBA(Microsoft Certified Database Administrator)

MCSD for .NET(Microsoft Certified Solution Developer)

現在、SQL Server を中心とするコンサルテゖング、企業に対するメンタリング サービスなどを行っている。今までに手

がけたコンサルテゖング案件は、テラバト クラスの DB から少人数向け小規模 DB までと 幅広く多岐に渡る。得意分

野はパフォーマンス チューニング。コンサルテゖング業務の傍ら、講演や執筆も行い、Microsoft 主催の最大ベント Tech・

Ed や、PASSJ が主催するカンフゔレンスなどでスピーカーとしても活躍中。著書の『SQL Server 2000 でいってみよう』

と『ASP.NET でいってみよう』(いずれも翔泳社刊)はトップ セラー(前者は 28,500 部、後者は 15,500 部発行)。の

びのびになっている SQL Server の新書籍は、もうじき刊行予定。

松本崇博(まつもと・たかひろ)

有限会社エスキューエル・クオリテゖ 取締役

Microsoft MVP for SQL Server / PASSJ 理事

MCDBA(Microsoft Certified Database Administrator)

MCSD for .NET(Microsoft Certified Solution Developer)

SQL Server のパフォーマンス チューニングを得意とするコンサルタント。過去には、約 3,000 本のストゕド プロシー

ジャのチューニングや、テラバト級データベースの論理・物理設計、運用管理設計、高可用性設計などを行う。また、過

去には、実際のゕプリケーション開発経験(ASP/ASP.NET、VB 6.0、Java、Access VBA など)と、システム管理者(IT

Pro)経験もあり、SQL Server だけでなく、ゕプリケーションや OS、Web サーバーを絡めた 総合的なコンサルテゖン

グが行えるのが強み。最近は、Analysis Services と Excel 2007 による BI(ビジネス ンテリジェンス)システムも

得意とする。執筆時のペンネームは「百田昌馬」。月刊 Windows Developer マガジンの 『SQL Server でど~んといっ

てみよう!』、DB マガジンの『SQL Server トラの穴』を連載。マクロソフト公開のホワトペーパー(技術文書)の

ゴースト ラターとして活動することもあり。過去、マクロソフト認定トレーナー時代には、SMS(Systems Management

Server)や、Proxy Server、Commerce Server、BizTalk Server、Application Center、Outlook CDO などの講習会も

担当。1998 年度には、Microsoft CTEC(現 CPLS)トレーナー ゕワード(Trainer of the Year)を受賞。