Integration Services (SSIS) パッケージIntegration Services (SSIS) Packages

パッケージは、接続、制御フロー要素、データ フロー要素、イベント ハンドラー、変数、パラメーター、および構成の組み合わせとして構成されています。パッケージは、SQL ServerSQL Server Integration ServicesIntegration Services に用意されているグラフィカル デザイン ツールを使用して作成するか、プログラムによって構築します。A package is an organized collection of connections, control flow elements, data flow elements, event handlers, variables, parameters, and configurations, that you assemble using either the graphical design tools that SQL ServerSQL Server Integration ServicesIntegration Services provides, or build programmatically. 完成したパッケージは、 SQL ServerSQL ServerSSISSSIS パッケージ ストア、またはファイル システムに保存します。または、ssISnoversion プロジェクトを SSISSSIS サーバーに配置することができます。You then save the completed package to SQL ServerSQL Server, the SSISSSIS Package Store, or the file system, or you can deploy the ssISnoversion project to the SSISSSIS server. パッケージとは、取得、実行、および保存の対象となる作業単位のことです。The package is the unit of work that is retrieved, executed, and saved.

最初にパッケージを作成した時点では、パッケージは何も実行しない空のオブジェクトです。When you first create a package, it is an empty object that does nothing. パッケージに機能を追加するには、制御フロー、および任意で 1 つ以上のデータ フローを追加します。To add functionality to a package, you add a control flow and, optionally, one or more data flows to the package.

次の図は、1 つの制御フローを含む簡単なパッケージを示しています。この制御フローには 1 つのデータ フロー タスクが含まれ、そのタスクの中に 1 つのデータ フローが含まれます。The following diagram shows a simple package that contains a control flow with a Data Flow task, which in turn contains a data flow.

制御フローとデータ フローを含むパッケージA package with a control flow and a data flow

基本パッケージを作成したら、ログ記録や変数などの拡張機能を追加して、パッケージの機能を拡張できます。After you have created the basic package, you can add advanced features such as logging and variables to extend package functionality. 詳細については、パッケージ機能を拡張するオブジェクトに関するセクションを参照してください。For more information, see the section about Objects that Extend Package Functionality.

完成したパッケージは、セキュリティの実装、チェックポイントからのパッケージ再開の有効化、パッケージ ワークフローのトランザクションの組み込みなど、パッケージ レベルのプロパティを設定することにより構成できます。The completed package can then be configured by setting package-level properties that implement security, enable restarting of packages from checkpoints, or incorporate transactions in package workflow. 詳細については、拡張機能をサポートするプロパティに関するセクションを参照してください。For more information, see the section about Properties that Support Extended Features.

パッケージの内容Package Content

制御フローは、パッケージの実行時に実行される 1 つ以上のタスクとコンテナーで構成されます。A control flow consists of one or more tasks and containers that execute when the package runs. パッケージ制御フロー内で次に実行するタスクまたはコンテナーの順序を制御したり、実行条件を定義するには、優先順位制約を使用してパッケージ内のタスクやコンテナーを連結します。To control order or define the conditions for running the next task or container in the package control flow, you use precedence constraints to connect the tasks and containers in a package. タスクとコンテナーのサブセットをグループ化して、パッケージ制御フロー内の 1 つの単位として繰り返し実行することもできます。A subset of tasks and containers can also be grouped and run repeatedly as a unit within the package control flow. 詳細については、「 Control Flow」を参照してください。For more information, see Control Flow.

データ フローは、データの抽出や読み込みの実行元と実行先、データの変更や拡張を行う変換、および実行元、変換、実行先にリンクするパスで構成されます。A data flow consists of the sources and destinations that extract and load data, the transformations that modify and extend data, and the paths that link sources, transformations, and destinations. データ フローをパッケージに追加するには、データ フロー タスクを事前にパッケージ制御フローに含める必要があります。Before you can add a data flow to a package, the package control flow must include a Data Flow task. データ フロー タスクは SSISSSIS パッケージ内の実行可能ファイルで、データ フローの作成、順序付け、および実行を行います。The Data Flow task is the executable within the SSISSSIS package that creates, orders, and runs the data flow. パッケージ内の各データ フロー タスクに対し、データ フロー エンジンのインスタンスが個別に開きます。A separate instance of the data flow engine is opened for each Data Flow task in a package. 詳細については、「 データ フロー タスク 」と「 データ フロー」を参照してください。For more information, see Data Flow Task and Data Flow.

パッケージには通常、1 つ以上の接続マネージャーが含まれます。A package typically includes at least one connection manager. 接続マネージャーは、パッケージとデータ ソース間のリンクであり、パッケージ内のタスク、変換、およびイベント ハンドラーによって使用されるデータにアクセスするための接続文字列が定義されています。A connection manager is a link between a package and a data source that defines the connection string for accessing the data that the tasks, transformations, and event handlers in the package use. Integration ServicesIntegration Services には、テキストや XML ファイル、リレーショナル データベース、 Analysis ServicesAnalysis Services のデータベースやプロジェクトなどのデータ ソースに対する接続の種類が用意されています。includes connection types for data sources such as text and XML files, relational databases, and Analysis ServicesAnalysis Services databases and projects. 詳細については、「Integration Services (SSIS) の接続」を参照してください。For more information, see Integration Services (SSIS) Connections.

パッケージ テンプレートPackage Templates

パッケージは、基本的な共通した機能を持つパッケージを構築する際の基になるテンプレートとして使用されることがよくあります。Packages are frequently used as templates from which to build packages that share basic functionality. 基本パッケージを構築してそれをコピーすることも、パッケージをテンプレートとして指定することもできます。You build the basic package and then copy it, or you can designate the package is a template. たとえば、ファイルをダウンロードおよびコピーしてからデータを抽出するパッケージでは、フォルダー内のファイルを列挙する ForEach ループに FTP タスクおよびファイル システム タスクを含めることができます。For example, a package that downloads and copies files and then extracts the data may include the FTP and File System tasks in a Foreach Loop that enumerates files in a folder. また、データにアクセスするためのフラット ファイル接続マネージャーや、データを抽出するためのフラット ファイル ソースを含めることもできます。It may also include Flat File connection managers to access the data, and Flat File sources to exact the data. データの抽出先はそれぞれ異なるので、基本パッケージからコピーした後、それぞれの新しいパッケージに抽出先を追加します。The destination of the data varies, and the destination is added to each new package after it is copied from the basic package. パッケージを作成してから、 Integration ServicesIntegration Services プロジェクトに追加する新しいパッケージのテンプレートとしてそれらのパッケージを使用することもできます。You can also create packages and then use them as templates for the new packages that you add to an Integration ServicesIntegration Services project. 詳細については、「 SQL Server データ ツールでのパッケージの作成」を参照してください。For more information, see Create Packages in SQL Server Data Tools.

プログラムまたは SSIS デザイナーを使用したパッケージの初回作成時には、パッケージの ID プロパティに GUID が追加され、Name プロパティに名前が追加されます。When a package is first created, either programmatically or by using SSIS Designer, a GUID is added to its ID property and a name to its Name property. 既存のパッケージをコピーするかテンプレート パッケージを使用して新しいパッケージを作成した場合は、そのパッケージの名前および GUID もコピーされます。If you create a new package by copying an existing package or by using a template package, the name and the GUID are copied as well. この動作は、ログ記録を使用する場合に問題となることがあります。これは、ログに記録された情報が属するパッケージを識別するために、そのパッケージの GUID および名前がログに記録されるためです。This can be a problem if you use logging, because the GUID and the name of the package are written to the logs to identify the package to which the logged information belongs. したがって、新しいパッケージをコピー元のパッケージと区別したり、ログ データ内でパッケージを正しく区別できるようにするには、新しいパッケージの名前と GUID を更新する必要があります。Therefore, you should update the name and the GUID of the new packages to help differentiate them from the package from which they were copied and from each other in the log data.

パッケージの GUID を変更するには、SQL Server Data Tools (SSDT )SQL Server Data Tools (SSDT) の [プロパティ] ウィンドウで、ID プロパティの GUID を再生成します。To change the package GUID, you regenerate a GUID in the ID property in the Properties window in SQL Server Data Tools (SSDT )SQL Server Data Tools (SSDT). パッケージ名を変更するには、[プロパティ] ウィンドウの Name プロパティの値を更新します。To change the package name, you can update the value of the Name property in the Properties window. また、 dtutil コマンド プロンプトを使用したり、プログラムを使用して GUID と名前を更新したりすることもできます。You can also use the dtutil command prompt, or update the GUID and name programmatically. 詳細については、「パッケージのプロパティを設定する」と「dtutil ユーティリティ」を参照してください。For more information, see Set Package Properties and dtutil Utility.

パッケージ機能を拡張するオブジェクトObjects that Extend Package Functionality

パッケージには、イベント ハンドラー、構成、ログ記録、変数など、拡張機能を提供したり既存の機能を拡張するためのオブジェクトを追加できます。Packages can include additional objects that provide advanced features or extend existing functionality, such as event handlers, configurations, logging, and variables.

イベント ハンドラーEvent Handlers

イベント ハンドラーは、パッケージ、タスク、またはコンテナーによって発生したイベントに応答して実行されるワークフローです。An event handler is a workflow that runs in response to the events raised by a package, task, or container. たとえば、イベント ハンドラーを使用すると、実行前のイベントが発生した場合にディスク領域を確認して空き領域を報告したり、エラーが発生した場合にエラー情報を報告したりする電子メール メッセージを管理者に送信できます。For example, you could use an event handler to check disk space when a pre-execution event occurs or if an error occurs, and send an e-mail message that reports the available space or error information to an administrator. イベント ハンドラーは、パッケージと同様、1 つの制御フローとオプションのデータ フローで構成されます。An event handler is constructed like a package, with a control flow and optional data flows. イベント ハンドラーは、パッケージ内の個々のタスクまたはコンテナーに追加できます。Event handlers can be added to individual tasks or containers in the package. 詳細については、「Integration Services (SSIS) のイベント ハンドラー」を参照してください。For more information, see Integration Services (SSIS) Event Handlers.

構成Configurations

構成とは、パッケージが実行されるときの、パッケージおよびそのタスク、コンテナー、変数、およびイベント ハンドラーのプロパティを定義する、プロパティと値の組み合わせのことです。A configuration is a set of property-value pairs that defines the properties of the package and its tasks, containers, variables, connections, and event handlers when the package runs. 構成を使用すると、パッケージを変更しなくてもプロパティを更新できます。Using configurations makes it possible to update properties without modifying the package. パッケージが実行されると、構成情報が読み込まれ、プロパティの値が更新されます。When the package is run, the configuration information is loaded, updating the values of properties. たとえば、構成を使用して接続の接続文字列を更新できます。For example, a configuration can update the connection string of connection.

パッケージを別のコンピューターにインストールすると、パッケージと共に構成が保存され、配置されます。The configuration is saved and then deployed with the package when the package is installed on a different computer. パッケージのインストールの際、別の環境でパッケージがサポートされるように、構成の値を更新できます。The values in the configuration can be updated when the package is installed to support the package in a different environment. 詳細については、「 パッケージ構成を作成する」を参照してください。For more information, see Create Package Configurations.

ログ記録とログ プロバイダーLogging and Log Providers

ログとは、パッケージの実行時に収集される、パッケージに関する情報の集まりのことです。A log is a collection of information about the package that is collected when the package runs. たとえば、ログにはパッケージの実行開始時刻と終了時刻を記録できます。For example, a log can provide the start and finish time for a package run. ログ プロバイダーとは、パッケージとそのコンテナーおよびタスクが実行時の情報を記録するために使用する、記録先の種類と形式を定義するものです。A log provider defines the destination type and the format that the package and its containers and tasks can use to log run-time information. ログはパッケージに関連付けられますが、パッケージ内のタスクとコンテナーの情報は、任意のパッケージ ログに記録できます。The logs are associated with a package, but the tasks and containers in the package can log information to any package log. Integration ServicesIntegration Services には、ログ記録用の各種のログ プロバイダーが組み込まれています。includes a variety of built-in log providers for logging. たとえば Integration ServicesIntegration Services には、 SQL ServerSQL Server およびテキスト ファイル用のログ プロバイダーが含まれます。For example, Integration ServicesIntegration Services includes log providers for SQL ServerSQL Server and text files. また、カスタム ログ プロバイダーを作成してログ記録用に使用することもできます。You can also create custom log providers and use them for logging. 詳細については、「Integration Services (SSIS) のログ記録」をご覧ください。For more information, see Integration Services (SSIS) Logging.

変数:Variables

Integration ServicesIntegration Services では、システム変数とユーザー定義変数がサポートされます。supports system variables and user-defined variables. システム変数は、実行時のパッケージ オブジェクトに関する有益な情報を提供します。またユーザー定義変数を使用すると、パッケージのシナリオをユーザー独自でサポートできます。The system variables provide useful information about package objects at run time, and user-defined variables support custom scenarios in packages. どちらの種類の変数も、式、スクリプト、および構成の内部で使用できます。Both types of variables can be used in expressions, scripts, and configurations.

パッケージ レベルの変数には、1 つのパッケージで使用できる定義済みのシステム変数と、パッケージの範囲を定めたユーザー定義変数が含まれます。The package-level variables include the pre-defined system variables available to a package and the user-defined variables with package scope. 詳細については、「Integration Services (SSIS) の変数」を参照してください。For more information, see Integration Services (SSIS) Variables.

パラメーターParameters

Integration ServicesIntegration Services パラメーターを使用すると、パッケージの実行時にパッケージ内のプロパティに値を割り当てることができます。parameters allow you to assign values to properties within packages at the time of package execution. " プロジェクト パラメーター " はプロジェクト レベル、" パッケージ パラメーター " はパッケージ レベルで作成できます。You can create project parameters at the project level and package parameters at the package level. プロジェクト パラメーターは、プロジェクトが受け取る外部入力をプロジェクト内の 1 つまたは複数のパッケージに指定するために使用します。Project parameters are used to supply any external input the project receives to one or more packages in the project. パッケージ パラメーターを使用すると、パッケージを編集したり再配置したりせずにパッケージ実行を変更できます。Package parameters allow you to modify package execution without having to edit and redeploy the package. 詳細については、Integration Services (SSIS) のパラメーターに関する記事を参照してください。For more information, see Integration Services (SSIS) Parameters.

拡張機能をサポートするパッケージのプロパティPackage Properties that Support Extended Features

パッケージ オブジェクトを構成して、チェックポイントでのパッケージの再開、デジタル証明書を使用したパッケージの署名、パッケージの保護レベルの設定、およびトランザクションを使用したデータ整合性の検証などの機能をサポートできます。The package object can be configured to support features such as restarting the package at checkpoints, signing the package with a digital certificate, setting the package protection level, and ensuring data integrity by using transactions.

パッケージの再開Restarting Packages

パッケージには、チェックポイント プロパティが含まれます。これを使用すると、1 つ以上のタスクが失敗した場合にパッケージを再開できます。The package includes checkpoint properties that you can use to restart the package when one or more of its tasks fail. たとえば、異なる 2 つのテーブルを更新する 2 つのデータ フロー タスクがパッケージに含まれ、2 番目のタスクが失敗した場合、最初のデータ フロー タスクを繰り返さずにそのパッケージを再実行できます。For example, if a package has two Data Flow tasks that update two different tables and the second task fails, the package can be rerun without repeating the first Data Flow task. パッケージの再開を使用すると、実行時間が長いパッケージで時間を節約できます。Restarting a package can save time for long-running packages. 再開とは、パッケージ全体を再実行するのではなく、失敗したタスクからパッケージを開始できるということです。Restarting means you can start the package from the failed task instead of having to rerun the whole package. 詳細については、「 Restart Packages by Using Checkpoints」を参照してください。For more information, see Restart Packages by Using Checkpoints.

パッケージの保護Securing Packages

デジタル署名を使用してパッケージに署名したり、パスワードまたはユーザー キーを使用してパッケージを暗号化できます。A package can be signed with a digital signature and encrypted by using a password or a user key. デジタル署名により、パッケージのソースが認証されます。A digital signature authenticates the source of the package. ただし、パッケージの読み込み時にデジタル署名を確認するように Integration ServicesIntegration Services を構成する必要もあります。However, you must also configure Integration ServicesIntegration Services to check the digital signature when the package loads. 詳細については、「デジタル署名を使用してパッケージのソースを特定する」および「パッケージ内の機微なデータへのアクセス制御」を参照してください。For more information, see Identify the Source of Packages with Digital Signatures and Access Control for Sensitive Data in Packages.

トランザクションのサポートSupporting Transactions

パッケージ上のトランザクションの属性を設定すると、パッケージ内のタスク、コンテナー、および接続をトランザクションに結合できます。Setting a transaction attribute on the package enables tasks, containers, and connections in the package to join the transaction. トランザクションの属性により、パッケージとその要素が全体として成功または失敗するようにできます。Transaction attributes ensure that the package and its elements succeed or fail as a unit. また、パッケージで他のパッケージを実行したり、トランザクション内に他のパッケージを含めることができるため、複数のパッケージを作業の 1 単位として実行できます。Packages can also run other packages and enroll other packages in transactions, so that you can run multiple packages as a single unit of work. 詳細については、「Integration Services のトランザクション」を参照してください。For more information, see Integration Services Transactions.

パッケージで使用できるカスタム ログ エントリCustom Log Entries Available on the Package

次の表は、パッケージのカスタム ログ エントリの一覧です。The following table lists the custom log entries for packages. 詳しくは、「Integration Services (SSIS) のログ記録」と「ログ記録用のカスタム メッセージ」をご覧ください。For more information, see Integration Services (SSIS) Logging and Custom Messages for Logging.

ログ エントリLog entry 説明Description
PackageStart パッケージの実行が開始されたことを示します。Indicates that the package began to run.

注:このログ エントリは自動的にログに書き込まれます。Note: This log entry is automatically written to the log. 除外することはできません。You cannot exclude it.
PackageEnd パッケージが完了したことを示します。Indicates that the package completed.

注:このログ エントリは自動的にログに書き込まれます。Note: This log entry is automatically written to the log. 除外することはできません。You cannot exclude it.
Diagnostic 同時実行できる実行可能ファイル数など、パッケージの実行に影響するシステム構成に関する情報を提供します。Provides information about the system configuration that affects package execution such as the number executables that can be run concurrently.

パッケージの構成Configuration of Packages

プロパティを設定するには、SQL Server Data Tools (SSDT )SQL Server Data Tools (SSDT)[プロパティ] ウィンドウで行うか、またはプログラムによって設定します。You can set properties in the Properties window of SQL Server Data Tools (SSDT )SQL Server Data Tools (SSDT) or programmatically.

SQL Server Data Tools (SSDT )SQL Server Data Tools (SSDT)を使用してこれらのプロパティを設定する方法については、「 パッケージのプロパティを設定する」を参照してください。For information about how to set these properties using SQL Server Data Tools (SSDT )SQL Server Data Tools (SSDT), see Set Package Properties.

これらのプロパティのプログラムでの設定については、「 Package」を参照してください。For information about programmatically setting these properties, see Package.

Integration ServicesIntegration Services には、パッケージを作成するための SSISSSIS オブジェクト モデルのほかに、 SQL ServerSQL Server デザイナーと SSISSSIS インポートおよびエクスポート ウィザードの、2 つのグラフィック ツールが含まれています。includes two graphical tools, SSISSSIS Designer and SQL ServerSQL Server Import and Export Wizard, in addition to the SSISSSIS object model for creating packages. 詳細については、以下のトピックを参照してください。See the following topics for details.