

# 支持 Amazon RDS for SQL Server 中的 SQL Server Integration Services
<a name="Appendix.SQLServer.Options.SSIS"></a>

Microsoft SQL Server Integration Services (SSIS) 是一个组件，可用于执行一系列广泛的数据迁移任务。SSIS 是一个用于数据集成和工作流应用程序的平台。它具有用于数据提取、转换和加载 (ETL) 的数据仓库工具。您还可以使用此工具自动维护 SQL Server 数据库以及对多维数据集数据的更新。

SSIS 项目将整理到另存为基于 XML 的 .dtsx 文件的包中。包可以包含控制流和数据流。您可以使用数据流来表示 ETL 操作。部署后，包存储在 SQL Server 中的 SSISDB 数据库中。SSISDB 是处于完全恢复模式的联机事务处理 (OLTP) 数据库。

Amazon RDS for SQL Server 支持直接在 RDS 数据库实例上运行 SSIS。您可以在现有的或新的数据库实例上启用 SSIS。SSIS 安装在与您的数据库引擎相同的数据库实例上。

RDS 在以下版本上对于 SQL Server 标准版和企业版支持 SSIS：
+ SQL Server 2022，所有版本
+ SQL Server 2019，版本 15.00.4043.16.v1 和更高版本
+ SQL Server 2017，版本 14.00.3223.3.v1 和更高版本
+ SQL Server 2016，版本 13.00.5426.0.v1 和更高版本

**Contents**
+ [限制和建议](#SSIS.Limitations)
+ [启用 SSIS](#SSIS.Enabling)
  + [为 SSIS 创建选项组](#SSIS.OptionGroup)
  + [将 SSIS 选项添加到选项组](#SSIS.Add)
  + [为 SSIS 创建参数组](#SSIS.CreateParamGroup)
  + [修改 SSIS 的参数](#SSIS.ModifyParam)
  + [将选项组和参数组与数据库实例关联](#SSIS.Apply)
  + [启用 S3 集成](#SSIS.EnableS3)
+ [SSISDB 上的管理权限](SSIS.Permissions.md)
  + [为 SSIS 设置经 Windows 身份验证的用户](SSIS.Permissions.md#SSIS.Use.Auth)
+ [部署 SSIS 项目](SSIS.Deploy.md)
+ [监控部署任务的状态](SSIS.Monitor.md)
+ [使用 SSIS](SSIS.Use.md)
  + [为 SSIS 项目设置数据库连接管理器](SSIS.Use.md#SSIS.Use.ConnMgrs)
  + [创建 SSIS 代理](SSIS.Use.md#SSIS.Use.Proxy)
  + [使用 SQL Server Agent 安排 SSIS 程序包](SSIS.Use.md#SSIS.Use.Schedule)
  + [从代理撤消 SSIS 访问权限](SSIS.Use.md#SSIS.Use.Revoke)
+ [禁用并删除 SSIS 数据库](SSIS.DisableDrop.md)
  + [禁用 SSIS](SSIS.DisableDrop.md#SSIS.Disable)
  + [删除 SSISDB 数据库](SSIS.DisableDrop.md#SSIS.Drop)

## 限制和建议
<a name="SSIS.Limitations"></a>

以下限制和建议适用于在 RDS for SQL Server 上运行 SSIS：
+ 数据库实例必须具有 `clr enabled` 参数设置为 1 的关联参数组。有关更多信息，请参阅 [修改 SSIS 的参数](#SSIS.ModifyParam)。
**注意**  
如果在 SQL Server 2017 或 2019 上启用 `clr enabled` 参数，则无法在数据库实例上使用公共语言运行时 (CLR)。有关更多信息，请参阅 [不支持的功能以及有限支持的功能](SQLServer.Concepts.General.FeatureNonSupport.md)。
+ 支持以下控制流任务：
  + 分析服务执行 DDL 任务
  + 分析服务处理任务
  + 批量插入任务
  + 检查数据库完整性任务
  + 数据流任务
  + 数据挖掘查询任务
  + 数据分析任务
  + 执行包任务
  + 执行 SQL Server Agent 作业任务
  + 执行 SQL 任务
  + 执行 T-SQL 语句任务
  + 通知操作员任务
  + 重建索引任务
  + 重新组织索引任务
  + 收缩数据库任务
  + 传输数据库任务
  + 传输作业任务
  + 传输登录名任务
  + 传输 SQL Server 对象任务
  + 更新统计数据任务
+ 仅支持项目部署。
+ 支持使用 SQL Server Agent 运行 SSIS 程序包。
+ SSIS 日志记录只能插入用户创建的数据库中。
+ 仅使用 `D:\S3` 文件夹来处理文件。放置在任何其他目录中的文件将被删除。请注意其他几个文件位置的详细信息：
  + 将 SSIS 项目输入和输出文件置于 `D:\S3` 文件夹中。
  + 对于数据流任务，将 `BLOBTempStoragePath` 和 `BufferTempStoragePath` 的位置更改为 `D:\S3` 文件夹中的文件。文件路径必须以 `D:\S3\` 开头。
  + 确保用于文件连接的所有参数、变量和表达式都指向 `D:\S3` 文件夹。
  + 在多可用区实例上，SSIS 在 `D:\S3` 文件夹中创建的文件将在故障转移后被删除。有关更多信息，请参阅“[S3 集成的多可用区限制](User.SQLServer.Options.S3-integration.md#S3-MAZ)”。
  + 将 SSIS 在 `D:\S3` 文件夹中创建的文件上传到您的 Amazon S3 存储桶以使其持久存在。
+ 不支持导入列和导出列转换以及数据流任务上的脚本组件。
+ 无法对正在运行的 SSIS 程序包启用转储，也无法在 SSIS 程序包上添加数据分接头。
+ 不支持 SSIS 扩展功能。
+ 您不能直接部署项目。我们提供 RDS 存储过程来执行此操作。有关更多信息，请参阅“[部署 SSIS 项目](SSIS.Deploy.md)”。
+ 使用 `DoNotSavePasswords` 保护模式构建 SSIS 项目 (.ispac) 文件以便在 RDS 上进行部署。
+ 具有只读副本的“始终打开”实例不支持 SSIS。
+ 您无法备份与 `SSIS` 选项关联的 SSISDB 数据库。
+ 不支持从 SSIS 的其他实例导入和还原 SSISDB 数据库。
+ 您可以连接到其他 SQL Server 数据库实例或 Oracle 数据来源。RDS for SQL Server 上的 SSIS 不支持连接到其他数据库引擎（例如 MySQL 或 PostgreSQL）。有关连接到 Oracle 数据来源的更多信息，请参阅 [带有 Oracle OLEDB 的链接服务器](Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB.md)。
+ SSIS 不支持与本地域建立传出信任的已加入域的实例。在使用传出信任时，请从本地 Amazon 域中的账户运行 SSIS 作业。
+ 不支持执行基于文件系统的软件包。

## 启用 SSIS
<a name="SSIS.Enabling"></a>

您可以通过向数据库实例添加 SSIS 选项来启用 SSIS。使用以下过程：

1. 创建新的选项组或选择现有的选项组。

1. 将 `SSIS` 选项添加到该选项组。

1. 创建新的参数组，或选择现有参数组。

1. 修改参数组以将 `clr enabled` 参数设置为 1。

1. 将选项组和参数组与数据库实例关联。

1. 启用 Amazon S3 集成。

**注意**  
如果数据库实例上已存在带有名称 SSISDB 或预留的 SSIS 登录名的数据库，则无法在实例上启用 SSIS。

### 为 SSIS 创建选项组
<a name="SSIS.OptionGroup"></a>

要使用 SSIS，请创建或修改与您计划使用的 SQL Server 版本和数据库实例版本对应的选项组。为此，请使用 Amazon Web Services 管理控制台或 Amazon CLI。

#### 控制台
<a name="SSIS.OptionGroup.Console"></a>

以下控制台过程创建适用于 SQL Server 标准版 2016 的选项组。

**创建选项组**

1. 登录 Amazon Web Services 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.amazonaws.cn/rds/)。

1. 在导航窗格中，选择**选项组**。

1. 选择**创建组**。

1. 在**创建选项组**窗口中，执行以下操作：

   1. 对于**名称**，输入选项组的名称，该名称在 Amazon 账户内具有唯一性，例如 **ssis-se-2016**。此名称只能包含字母、数字和连字符。

   1. 对于**描述**，输入选项组的简要描述，例如 **SSIS option group for SQL Server SE 2016**。此说明用于显示说明。

   1. 对于**引擎**，选择 **sqlserver-se**。

   1. 对于**主要引擎版本**，选择 **13.00**。

1. 选择**创建**。

#### CLI
<a name="SSIS.OptionGroup.CLI"></a>

以下控制台过程创建适用于 SQL Server 标准版 2016 的选项组。

**创建选项组**
+ 运行以下命令之一。  
**Example**  

  对于 Linux、macOS 或 Unix：

  ```
  aws rds create-option-group \
      --option-group-name ssis-se-2016 \
      --engine-name sqlserver-se \
      --major-engine-version 13.00 \
      --option-group-description "SSIS option group for SQL Server SE 2016"
  ```

  对于：Windows

  ```
  aws rds create-option-group ^
      --option-group-name ssis-se-2016 ^
      --engine-name sqlserver-se ^
      --major-engine-version 13.00 ^
      --option-group-description "SSIS option group for SQL Server SE 2016"
  ```

### 将 SSIS 选项添加到选项组
<a name="SSIS.Add"></a>

接下来，使用 Amazon Web Services 管理控制台或 Amazon CLI 将 `SSIS` 选项添加到您的选项组。

#### 控制台
<a name="SSIS.Add.Console"></a>

**添加 SSIS 选项**

1. 登录Amazon Web Services 管理控制台并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.amazonaws.cn/rds/)。

1. 在导航窗格中，选择**选项组**。

1. 选择您刚刚创建的选项组（在此示例中为 **ssis-se-2016**）。

1. 选择**添加选项**。

1. 在**选项详细信息**下，为**选项名称**选择 **SSIS**。

1. 在 **计划 (Scheduling)** 下，选择是立即添加选项还是在下一个维护时段添加选项。

1. 选择**添加选项**。

#### CLI
<a name="SSIS.Add.CLI"></a>

**添加 SSIS 选项**
+ 将 `SSIS` 选项添加到该选项组。  
**Example**  

  对于 Linux、macOS 或 Unix：

  ```
  aws rds add-option-to-option-group \
      --option-group-name ssis-se-2016 \
      --options OptionName=SSIS \
      --apply-immediately
  ```

  对于：Windows

  ```
  aws rds add-option-to-option-group ^
      --option-group-name ssis-se-2016 ^
      --options OptionName=SSIS ^
      --apply-immediately
  ```

### 为 SSIS 创建参数组
<a name="SSIS.CreateParamGroup"></a>

为与您计划用于 SSIS 的 SQL Server 版本和数据库实例版本对应的 `clr enabled` 参数创建或修改参数组。

#### 控制台
<a name="SSIS.CreateParamGroup.Console"></a>

以下过程为 SQL Server 标准版 2016 创建一个参数组。

**创建参数组**

1. 登录 Amazon Web Services 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.amazonaws.cn/rds/)。

1. 在导航窗格中，选择**参数组**。

1. 选择**创建参数组**。

1. 在**创建参数组**窗格中，执行以下操作：

   1. 对于**参数组系列**，选择 **sqlserver-se-13.0**。

   1. 对于**组名称**，输入参数组的标识符，如 **ssis-sqlserver-se-13**。

   1. 对于**描述**，输入 **clr enabled parameter group**。

1. 选择**创建**。

#### CLI
<a name="SSIS.CreateParamGroup.CLI"></a>

以下过程为 SQL Server 标准版 2016 创建一个参数组。

**创建参数组**
+ 运行以下命令之一。  
**Example**  

  对于 Linux、macOS 或 Unix：

  ```
  aws rds create-db-parameter-group \
      --db-parameter-group-name ssis-sqlserver-se-13 \
      --db-parameter-group-family "sqlserver-se-13.0" \
      --description "clr enabled parameter group"
  ```

  对于：Windows

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name ssis-sqlserver-se-13 ^
      --db-parameter-group-family "sqlserver-se-13.0" ^
      --description "clr enabled parameter group"
  ```

### 修改 SSIS 的参数
<a name="SSIS.ModifyParam"></a>

修改与 SQL Server 版本和数据库实例版本对应的参数组中的 `clr enabled` 参数。对于 SSIS，将 `clr enabled` 参数设置为 1。

#### 控制台
<a name="SSIS.ModifyParam.Console"></a>

以下过程修改您为 SQL Server 标准版 2016 创建的参数组。

**修改参数组**

1. 登录 Amazon Web Services 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.amazonaws.cn/rds/)。

1. 在导航窗格中，选择**参数组**。

1. 选择参数组，例如 **ssis-sqlserver-se-13**。

1. 在**参数**下，从参数列表中筛选 **clr**。

1. 选择 **clr enabled (启用 clr)**。

1. 选择**编辑参数**。

1. 从**值**中选择 **1**。

1. 选择**保存更改**。

#### CLI
<a name="SSIS.ModifyParam.CLI"></a>

以下过程修改您为 SQL Server 标准版 2016 创建的参数组。

**修改参数组**
+ 运行以下命令之一。  
**Example**  

  对于 Linux、macOS 或 Unix：

  ```
  aws rds modify-db-parameter-group \
      --db-parameter-group-name ssis-sqlserver-se-13 \
      --parameters "ParameterName='clr enabled',ParameterValue=1,ApplyMethod=immediate"
  ```

  对于：Windows

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name ssis-sqlserver-se-13 ^
      --parameters "ParameterName='clr enabled',ParameterValue=1,ApplyMethod=immediate"
  ```

### 将选项组和参数组与数据库实例关联
<a name="SSIS.Apply"></a>

要将 SSIS 选项组和参数组与数据库实例关联，请使用 Amazon Web Services 管理控制台或 Amazon CLI 

**注意**  
如果您使用现有实例，则该实例必须已关联 Active Directory 域和 Amazon Identity and Access Management (IAM) 角色。如果您创建新实例，请指定现有的 Active Directory 域和 IAM 角色。有关更多信息，请参阅 [将 Active Directory 用于 RDS for SQL Server](User.SQLServer.ActiveDirectoryWindowsAuth.md)。

#### 控制台
<a name="SSIS.Apply.Console"></a>

要完成对 SSIS 的启用，请将 SSIS 选项组和参数组与新的或现有的数据库实例关联：
+ 对于新数据库实例，请在启动实例时将其关联。有关更多信息，请参阅“[创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)”。
+ 对于现有数据库实例，请通过修改实例将其关联。有关更多信息，请参阅 [修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)。

#### CLI
<a name="SSIS.Apply.CLI"></a>

您可以将 SSIS 选项组和参数组与新的或现有的数据库实例关联。

**使用 SSIS 选项组和参数组创建实例**
+ 指定创建选项组时使用的相同数据库引擎类型和主要版本。  
**Example**  

  对于 Linux、macOS 或 Unix：

  ```
  aws rds create-db-instance \
      --db-instance-identifier myssisinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 13.00.5426.0.v1 \
      --allocated-storage 100 \
      --manage-master-user-password \
      --master-username admin \
      --storage-type gp2 \
      --license-model li \
      --domain-iam-role-name my-directory-iam-role \
      --domain my-domain-id \
      --option-group-name ssis-se-2016 \
      --db-parameter-group-name ssis-sqlserver-se-13
  ```

  对于：Windows

  ```
  aws rds create-db-instance ^
      --db-instance-identifier myssisinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 13.00.5426.0.v1 ^
      --allocated-storage 100 ^
      --manage-master-user-password ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --domain-iam-role-name my-directory-iam-role ^
      --domain my-domain-id ^
      --option-group-name ssis-se-2016 ^
      --db-parameter-group-name ssis-sqlserver-se-13
  ```

**修改实例并关联 SSIS 选项组和参数组**
+ 运行以下命令之一。  
**Example**  

  对于 Linux、macOS 或 Unix：

  ```
  aws rds modify-db-instance \
      --db-instance-identifier myssisinstance \
      --option-group-name ssis-se-2016 \
      --db-parameter-group-name ssis-sqlserver-se-13 \
      --apply-immediately
  ```

  对于：Windows

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier myssisinstance ^
      --option-group-name ssis-se-2016 ^
      --db-parameter-group-name ssis-sqlserver-se-13 ^
      --apply-immediately
  ```

### 启用 S3 集成
<a name="SSIS.EnableS3"></a>

要将 SSIS 项目 (.ispac) 文件下载到主机以进行部署，请使用 S3 文件集成。有关更多信息，请参阅 [将 Amazon RDS for SQL Server 数据库实例与 Amazon S3 集成](User.SQLServer.Options.S3-integration.md)。