

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 SSIS 转换为 AWS Glue AWS SCT
<a name="CHAP-converting-aws-glue-ssis"></a>

接下来，你可以找到如何将微软 SQL Server 集成服务 (SSIS) 包转换为 AWS Glue 使用 AWS SCT。

要将微软 SSIS 包转换为 AWS Glue，请确保使用 AWS SCT 版本 1.0.642 或更高版本。您还需要有一个 SSIS 项目，其中包含 ETL 包 — 本地文件夹中的 `.dtsx`、`.conmgr` 和 `.params` 文件。

您不需要安装 SSIS 服务器。通过本地 SSIS 文件进行转换过程。

**要将 SSIS 软件包转换为使用 AWS Glue AWS SCT**

1. 在中创建新项目 AWS SCT 或打开现有项目。有关更多信息，请参阅 [在中启动和管理项目 AWS SCT](CHAP_UserInterface.Project.md)。

1. 在菜单上选择**添加源**，将新的源 SSIS 包添加到您的项目中。

1.  选择 **SQL Server Integration Services** 并完成以下操作：
   + **连接名称**：输入连接的名称。 AWS SCT 在元数据树中显示此名称。
   + **SSIS 包文件夹**：选择包含包的 SSIS 项目文件夹的路径。

   AWS SCT 从本地文件夹读取项目文件（扩展名`.dtsx`为`.conmgr`或的文件`.params`）并对其进行解析。然后，它会将它们组织成一 AWS SCT 棵类别树。

1. 从菜单中选择**添加目标**以添加新的目标平台，从而转换源 SSIS 包。

1.  选择 **AWS Glue** 并完成以下操作：
   + **连接名称**：输入连接的名称。 AWS SCT 在元数据树中显示此名称。
   + **从 AWS 配置文件复制**-选择要使用的配置文件。
   + **AWS 访问密钥**-输入您的 AWS 访问密钥。
   + **AWS 密钥**-输入您的 AWS 密钥。
   + **区域**-从列表中选择要使用的。 AWS 区域 
   + **Amazon S3 存储桶文件夹**：输入您计划使用的 Amazon S3 存储桶的文件夹路径。

    您可以使用虚拟 AWS Glue 目标。在这种情况下，不需要指定连接凭证。有关更多信息，请参阅 [在 AWS Schema Conversion Tool 中映射到虚拟目标](CHAP_Mapping.VirtualTargets.md)。

1. 创建新的映射规则，其中包含您的源 SSIS 包和 AWS Glue 目标。有关更多信息，请参阅 [在 AWS Schema Conversion Tool 中映射新的数据类型](CHAP_Mapping.New.md)。

1. 在**视图**菜单上，选择**主视图**。

1. 在 SSIS 树视图中，打开**连接管理器**的上下文（右键单击）菜单，然后选择**配置连接**。

1. 配置项目连接管理器。

   要为 SSIS 连接管理器配置连接映射，请为相应的 SSIS AWS Glue 连接管理器指定连接。确保您的 AWS Glue 连接已创建。

   1. 在**连接**下，选择**项目连接**。

   1. 对于 **Glue 目录连接**，请选择相应的 AWS Glue 连接。

1. 配置包连接管理器：

   1. 在**连接**下，选择包。

   1. 对于 **Glue 目录连接**，请选择相应的 AWS Glue 连接。

   1. 对包可用的所有连接重复这些操作。

1. 选择**应用**。

1. 转换包。在源树视图中，找到**包**。打开包的上下文（右键单击）菜单，然后选择**转换包**。

1. 将转换后的脚本保存到 Amazon S3。在目标树视图中，找到**包脚本**。打开转换后的脚本的上下文（右键单击）菜单，然后选择**保存到 S3**。

1. 配置您的 AWS Glue 作业。在目标树视图中，找到**包脚本**。打开已转换脚本的上下文（右键单击）菜单，然后选择**配置 AWS Glue 作业**。

1. 完成三个配置部分。

   1. 完成**设计数据流**部分：
      + **执行策略**：选择作业将如何运行 ETL 脚本。选择 **SEQUENTIAL**，按向导中指定的顺序运行脚本。选择 **PARALLEL** 并行运行脚本，而不考虑向导中指定的顺序。
      + **脚本**：选择转换后的脚本的名称。
      + 选择**下一步**。

   1. 完成**作业属性**部分：
      + **姓名**-输入您的 AWS Glue 工作名称。
      + **IAM 角色**：选择用于运行作业和访问数据存储的资源进行授权的 IAM 角色。
      + **脚本文件名**：输入转换后的脚本的名称。
      + **脚本文件 S3 路径**：输入转换后的脚本的 Amazon S3 路径。
      + **使用 SSE-S3 加密脚本**：选择此选项以使用采用 Amazon S3 托管式加密密钥的服务器端加密（SSE-S3）保护数据。
      + **临时目录** — 输入临时目录的 Amazon S3 路径以获得中间结果。 AWS Glue 而 AWS Glue 内置转换则使用此目录读取或写入 Amazon Redshift。
      + AWS SCT 会自动生成 Python 库的路径。您可以在**生成的 python 库路径**中查看此路径。您不能编辑这个自动生成的路径。要使用其他 Python 库，请在**用户 python 库路径**中输入路径。
      + **用户 python 库路径**：输入其他用户 Python 库的路径。使用逗号分隔 Amazon S3 路径。
      + **从属 JAR 路径**：输入从属 JAR 文件的路径。使用逗号分隔 Amazon S3 路径。
      + **引用文件路径**：输入脚本所需的其他文件（例如配置文件）的路径。使用逗号分隔 Amazon S3 路径。
      + **最大容量**-输入此作业运行时可以分配的最大 AWS Glue 数据处理单元数 (DPUs)。可以输入 2 到 100 的任何整数。默认值为 2。
      + **最大并发**：输入此作业允许的并发运行的最大数量。默认值为 1。 AWS Glue 达到此阈值时返回错误。
      + **作业超时（分钟）**：输入 ETL 作业的超时值，以防作业失控。批处理作业的默认值为 2880 分钟（48 小时）。当作业执行时间超过此限制时，作业运行状态更改为 `TIMEOUT`。
      + **延迟通知阈值（分钟）**-输入 AWS SCT 发送延迟通知之前的阈值（以分钟为单位）。
      + **重试次数**-输入作业失败时 AWS Glue 应自动重启的次数 (0—10)。达到超时限制的作业不会重新启动。默认值是 0。
      + 选择**下一步**。

   1. 配置所需的连接：

      1. 从 “**所有连接**” 中，选择所需的 AWS Glue 连接并将其添加到 “**选定连接”** 列表中。

      1. 选择**结束**。

1. 创建已配置的 AWS Glue 作业。在目标树视图中，查找并展开 **ETL 作业**。打开您配置的 ETL 作业的上下文（右键单击）菜单，然后选择 C **reate AWS Glue J** ob。

1. 运行作 AWS Glue 业：

   1. 打开 AWS Glue 控制台，网址为[https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)。

   1. 在导航窗格中，选择**作业**。

   1. 选择**添加作业**，然后选择要运行的作业。

   1. 在**操作**选项卡上，选择**运行作业**。

## AWS SCT 可以转换为 SSIS 组件 AWS Glue
<a name="CHAP-converting-aws-glue-ssis-supported-components"></a>

您可以使用 AWS SCT 转换数据流和控制流组件，以及容器、参数和变量。

支持的数据流组件包括：
+ ADO NET 目的地
+ ADO NET 源
+ 聚合
+ 缓存转换
+ 字符映射转换
+ 条件拆分转换
+ 复制列转换
+ 数据转换的转换
+ 派生列转换
+ Excel 目的地
+ Excel 源
+ 导出列转换
+ 平面文件目的地
+ 平面文件源
+ 模糊查找转换
+ 导入列转换
+ 查找转换
+ 合并联接转换
+ 合并转换
+ 组播转换
+ ODBC 目的地
+ ODBC 源
+ OLE 数据库命令转换
+ OLE 数据库目标
+ OLE DB 源
+ 百分比抽样转换
+ 转置转换
+ 原始文件目的地
+ 原始文件源
+ RecordSet 目的地
+ 行数转换
+ 行采样转换
+ 排序转换
+ SQL Server 目的地
+ Union All 转换
+ 反转置转换
+ XML 源

支持的控制流组件包括：
+ 批量插入任务
+ 执行包任务
+ 执行 SQL 任务
+ 执行 T-SQL 语句任务
+ 表达式任务
+ 文件系统任务
+ 通知操作员任务
+ 发送邮件任务

支持的 SSIS 容器包括：
+ For 循环容器
+ Foreach 循环容器
+ 顺序容器