

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

# 将 SSIS 软件包转换为 AWS Glue Studio AWS Schema Conversion Tool
<a name="CHAP-converting-ssis-glue-studio"></a>

你可以使用 AWS SCT 将微软 SQL Server 集成服务 (SSIS) 包转换为。 AWS Glue Studio

*SSIS 包*涵盖运行特定提取、转换和加载 (ETL) 任务所需的必要组件，例如连接管理器、任务、控制流、数据流、参数、事件处理程序和变量。 AWS SCT 将 SSIS 包转换为与 AWS Glue Studio兼容的格式。将源数据库迁移到后 AWS 云，您可以运行这些转换后的 AWS Glue Studio 作业来执行 ETL 任务。

要将微软 SSIS 包转换为 AWS Glue Studio，请确保使用 AWS SCT 版本 1.0.661 或更高版本。

**Topics**
+ [

## 先决条件
](#CHAP-converting-ssis-glue-studio-prerequisites)
+ [

## 将 SSIS 包添加到您的项目中 AWS SCT
](#CHAP-converting-ssis-glue-studio-create)
+ [

## 将 SSIS 软件包转换为 AWS Glue Studio AWS SCT
](#CHAP-converting-ssis-glue-studio-convert)
+ [

## 使用转换后的代码创建 AWS Glue Studio 作业
](#CHAP-converting-ssis-glue-studio-jobs)
+ [

## 使用 SSIS 软件包创建评估报告 AWS SCT
](#CHAP-converting-ssis-glue-studio-assessment)
+ [

## AWS SCT 可以转换为 SSIS 组件 AWS Glue Studio
](#CHAP-converting-ssis-glue-studio-supported-components)

## 先决条件
<a name="CHAP-converting-ssis-glue-studio-prerequisites"></a>

在本节中，了解将 SSIS 包转换为 AWS Glue的先决条件任务。这些任务包括在您的账户中创建所需的 AWS 资源。

您可以使用 AWS Identity and Access Management (IAM) 来定义访问所 AWS Glue Studio 使用的资源所需的策略和角色。有关更多信息，请参阅[AWS Glue Studio 用户的 IAM 权限](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html#getting-started-min-privs)。

将源脚本 AWS SCT 转换为后 AWS Glue Studio，将转换后的脚本上传到 Amazon S3 存储桶。请务必创建此 Amazon S3 存储桶，并在 AWS 服务配置文件设置中选择它。有关创建 Amazon S3 存储桶的更多信息，请参阅《Amazon Simple Storage Service 用户指南》**中的[创建第一个 S3 存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html)。

要确保它 AWS Glue Studio 可以连接到您的数据存储，请创建一个自定义连接器和一个连接。此外，还要将数据库凭据存储在中 AWS Secrets Manager。

**创建自定义连接器**

1. 下载数据存储的 JDBC 驱动程序。有关 AWS SCT 使用的 JDBC 驱动程序的更多信息，请参阅。[正在安装 JDBC 驱动程序 AWS Schema Conversion Tool](CHAP_Installing.JDBCDrivers.md)

1. 将驱动程序文件上传到 Amazon S3 存储桶。有关更多信息，请参阅《Amazon Simple Storage Service 用户指南》**中的[将对象上传到存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/uploading-an-object-bucket.html)。

1. 登录 AWS 管理控制台 并打开 AWS Glue Studio 控制台，网址为[https://console.aws.amazon.com/gluestudio/](https://console.aws.amazon.com/gluestudio/)。

1. 选择**连接器**，然后选择**创建自定义连接器**。

1. 对于**连接器 S3 URL**，选择**浏览 S3**，然后选择您上传到 Amazon S3 存储桶的 JDBC 驱动程序文件。

1. 为您的连接器输入描述性**名称**。例如，输入 **SQLServer**。

1. 对于**连接器类型**，请选择 **JDBC**。

1. 在**类名称**中，输入 JDBC 驱动程序的主类名称。对于 SQL Server，请输入 **com.microsoft.sqlserver.jdbc.SQLServerDriver**。

1. 对于 **JDBC URL 库**，请输入 JDBC 基本 URL。JDBC 基本 URL 的语法取决于源数据库引擎。对于 SQL Server，请使用以下格式：**jdbc:sqlserver://\$1*<host>*:\$1*<port>*;databaseName=\$1*<dbname>*;user=\$1*<username>*;password=\$1*<password>***。

   确保使用您的值替换*<host>**<port>**<dbname>**<username>*、、、和*<password>*。

1. 在 **URL 参数分隔符**中，输入分号（`;`）。

1. 选择 **Create connector (创建连接器)**。

**将数据库凭据存储在 AWS Secrets Manager**

1. 登录 AWS 管理控制台 并打开 AWS Secrets Manager 控制台，网址为[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)。

1. 选择**存储新密钥**。

1. 在 **Choose secret type**（选择密钥类型）页面上，执行以下操作：

   1. 对于**密钥类型**，请选择**其他密钥类型**。

   1. 对于**键/值对**，输入以下密钥：**host**、**port**、**dbname**、**username** 和 **password**。

      接下来，输入这些密钥的值。

1. 在**配置密钥**页面上，输入描述性**密钥名称**。例如，输入 **SQL\$1Server\$1secret**。

1. 选择**下一步**。然后，在**配置旋转**页面再次选择**下一步**。

1. 在**审核**页面上，审核密钥详细信息，然后选择**存储**。

**创建连接器连接**

1. 登录 AWS 管理控制台 并打开 AWS Glue Studio 控制台，网址为[https://console.aws.amazon.com/gluestudio/](https://console.aws.amazon.com/gluestudio/)。

1. 选择要创建连接的连接器，然后选择**创建连接**。

1. 在**创建连接**页面上，输入连接的描述性**名称**。例如，输入 **SQL-Server-connection**。

1. 在 S **AWS ecret** 中，选择您在中创建的密钥 AWS Secrets Manager。

1. 配置**网络选项**，然后选择**创建连接**。

现在，您可以使用自定义连接器创建 AWS Glue Studio 作业。有关更多信息，请参阅 [创造 AWS Glue Studio 就业机会](#CHAP-converting-ssis-glue-studio-jobs)。

## 将 SSIS 包添加到您的项目中 AWS SCT
<a name="CHAP-converting-ssis-glue-studio-create"></a>

您可以将多个 SSIS 包添加到单个 AWS SCT 项目中。

**向项目中添加 SSIS 软件包 AWS SCT**

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

1. 从菜单中选择**添加源**，然后选择 **SQL Server Integration Services**。

1. 在**连接名称**中，输入 SSIS 包的名称。 AWS SCT 会在左侧面板的树中显示此名称。

1. 在 **SSIS 包文件夹**中，输入包含源 SSIS 包的文件夹的路径。

1. 从菜单中选择**添加目标**，然后选择 **AWS Glue Studio**。

   要连接 AWS Glue Studio，请 AWS SCT 使用您的 AWS 个人资料。有关更多信息，请参阅 [在中管理个人资料 AWS Schema Conversion Tool](CHAP_UserInterface.Profiles.md)。

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

1. 在 AWS Glue Studio 控制台中创建 AWS Glue Studio 连接。有关更多信息，请参[创建连接器连接](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#creating-connections)。

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

   AWS SCT 显示**配置连接**窗口。

1. 对于每个源 SSIS 连接，请选择一个 AWS Glue Studio 连接。

## 将 SSIS 软件包转换为 AWS Glue Studio AWS SCT
<a name="CHAP-converting-ssis-glue-studio-convert"></a>

接下来，了解如何将 SSIS 软件包转换为 AWS Glue Studio 使用 AWS SCT。

**将 SSIS 软件包转换为 AWS Glue Studio**

1. 将您的 SSIS 软件包添加到您的 AWS SCT 项目中。有关更多信息，请参阅 [将 SSIS 包添加到您的项目中 AWS SCT ](#CHAP-converting-ssis-glue-studio-create)。

1. 在左侧面板中，展开 **ETL** 和 **SSIS 节点**。

1. 选择**包**，打开上下文（右键单击）菜单，然后选择**转换包**。

   AWS SCT 将您选择的 SSIS 包转换为 JSON 文件。这些 JSON 对象表示有向无环图（DAG）中的节点。在右侧树的 Pack **ag DAGs** e 节点中找到转换后的文件。

1. 选择 P **ac** kage DAGs，打开上下文（右键单击）菜单，然后选择 “**保存到 Amazon S3**”。

   现在，您可以使用这些脚本在 AWS Glue Studio中创建作业。

## 使用转换后的代码创建 AWS Glue Studio 作业
<a name="CHAP-converting-ssis-glue-studio-jobs"></a>

转换源 SSIS 包后，您可以使用转换后的 JSON 文件来创建 AWS Glue Studio 作业。

**创建 AWS Glue Studio 工作**

1. **在右侧树 DAGs中选择 Package，打开上下文（右键单击）菜单，然后选择 “**配置 AWS Glue Studio 作业**”。**

1. （可选）应用在 AWS Glue Studio中模拟 SSIS 函数的扩展包。

1. 将打开 “**配置 AWS Glue Studio 作业**” 窗口。

   完成**基本作业属性**部分：
   + **名称**：输入 AWS Glue Studio 作业名称。
   + **脚本文件名**：输入作业脚本的名称。
   + **作业参数**：添加参数并输入参数值。

   选择**下一步**。

1. 完成**高级作业属性**部分：
   + **IAM 角色**-选择用于授权 AWS Glue Studio 和访问数据存储的 IAM 角色。
   + **脚本文件 S3 路径**：输入转换后的脚本的 Amazon S3 路径。
   + **临时目录** — 输入临时目录的 Amazon S3 路径以获得中间结果。 AWS Glue Studio 使用此目录读取或写入亚马逊 Redshift。
   + AWS SCT 会自动生成 Python 库的路径。您可以在**生成的 python 库路径**中查看此路径。您不能编辑这个自动生成的路径。要使用其他 Python 库，请在**用户 python 库路径**中输入路径。
   + **用户 python 库路径**：输入其他用户 Python 库的路径。使用逗号分隔 Amazon S3 路径。
   + **从属 JAR 路径**：输入从属 `*.jar` 文件的路径。使用逗号分隔 Amazon S3 路径。
   + **引用文件路径**：输入脚本所需的其他文件（例如配置文件）的路径。使用逗号分隔 Amazon S3 路径。
   + **工作线程类型**：选择 `G.1X` 或 `G.2X`。

     选择 `G.1X` 时，每个工作线程映射到 1 个 DPU（4 个 vCPU，16 GB 内存和 64 GB 磁盘）。

     选择 `G.2X` 时，每个工作线程映射到 2 个 DPU（8 个 vCPU，32 GB 内存和 128 GB 磁盘）。
   + **请求的每个工作线程数**：输入作业运行时分配的工作线程数。
   + **最大并发**：输入此作业允许的并发运行的最大数量。默认值为 1。 AWS Glue 达到此阈值时返回错误。
   + **作业超时（分钟）**：输入 ETL 作业的超时值，以防作业失控。批处理作业的默认值为 2880 分钟（48 小时）。当作业执行时间超过此限制时，作业运行状态更改为 `TIMEOUT`。
   + **延迟通知阈值（分钟）**-输入 AWS SCT 发送延迟通知之前的阈值（以分钟为单位）。
   + **重试次数**-输入作业失败时 AWS Glue 应自动重启的次数 (0—10)。达到超时限制的作业不会重新启动。默认值是 0。

   选择**结束**。

   AWS SCT 配置您选择的 AWS Glue Studio 作业。

1. 在右侧树中的 **ETL 作业**下找到您配置的作业。选择您配置的作业，打开上下文（右键单击）菜单，然后选择**创建 AWS Glue Studio 作业**。

1. 选择**应用状态**，并确保作业的**状态**值为**成功**。

1. 打开 AWS Glue Studio 控制台，选择 “**刷新**”，然后选择您的作业。然后，选择**运行**。

## 使用 SSIS 软件包创建评估报告 AWS SCT
<a name="CHAP-converting-ssis-glue-studio-assessment"></a>

*ETL 迁移评估报告*提供了有关将 SSIS 软件包转换为与兼容的格式的信息。 AWS Glue Studio评估报告包括 SSIS 包各组件的操作项。这些操作项显示哪些组件 AWS SCT 无法自动转换。

**创建 ETL 迁移评估报告**

1. 展开左侧面板中 **ETL** 下的 **SSIS** 节点。

1. 选择**包**，打开上下文（右键单击）菜单，然后选择**创建报告**。

1. 查看**摘要**选项卡。此处 AWS SCT 显示 ETL 迁移评估报告中的执行摘要信息。它包括 SSIS 包所有组件的转换结果。

1. （可选）将 ETL 迁移评估报告的本地副本另存为 PDF 文件或逗号分隔值（CSV）文件：
   + 要将 ETL 迁移评估报告另存为 PDF 文件，请选择右上角的**保存为 PDF**。

      PDF 文件包含脚本转换执行摘要、操作项和建议。
   + 要将 ETL 迁移评估报告另存为 CSV 文件，请选择右上角的**保存为 CSV**。

     AWS SCT 创建三个 CSV 文件。这些文件包含操作项、推荐的操作以及转换脚本所需的估计人工操作的复杂性。

1. 选择**操作项**选项卡。此选项卡包含需要手动转换为的项目列表 AWS Glue Studio。从列表中选择措施项时，会 AWS SCT 突出显示该措施项所适用的源 SSIS 文件包中的项目。

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

您可以使用 AWS SCT 将 SSIS 数据流组件和参数转换为。 AWS Glue Studio

支持的数据流组件包括：
+ ADO NET 目的地
+ ADO NET 源
+ 聚合
+ 字符映射
+ 条件拆分
+ 复制列
+ 数据转换
+ 派生列
+ 查找
+ 合并 
+ 合并联接
+ 多播
+ ODBCDestination
+ ODBCSource
+ OLEDBDestination
+ OLEDBSource
+ 行数
+ 排序
+ SQL Server 目的地
+ UNION ALL

AWS SCT 可以将更多 SSIS 组件转换为。 AWS Glue有关更多信息，请参阅 [AWS SCT 可以转换为 SSIS 组件 AWS Glue](CHAP-converting-aws-glue-ssis.md#CHAP-converting-aws-glue-ssis-supported-components)。