使用 AWS Schema Conversion Tool 将 SSIS 包转换为 AWS Glue Studio
您可以使用 AWS SCT 将 Microsoft SQL Server Integration Services (SSIS) 包转换为 AWS Glue Studio。
SSIS 包涵盖运行特定提取、转换和加载 (ETL) 任务所需的必要组件,例如连接管理器、任务、控制流、数据流、参数、事件处理程序和变量。AWS SCT 将 SSIS 包转换为与 AWS Glue Studio 兼容的格式。将源数据库迁移到 AWS 云 之后,您可以运行这些转换后的 AWS Glue Studio 作业执行 ETL 任务。
要将 Microsoft SSIS 包转换为 AWS Glue Studio,请确保使用 AWS SCT 版本 1.0.661 或更高版本。
主题
先决条件
在本节中,了解将 SSIS 包转换为 AWS Glue的先决条件任务。这些任务包括在账户中创建所需的 AWS 资源。
您可使用 AWS Identity and Access Management(IAM)定义访问 AWS Glue Studio 使用的资源所需的策略和角色。有关更多信息,请参阅AWS Glue Studio 用户 IAM 权限。
AWS SCT 将源脚本转换为 AWS Glue Studio 后,将转换后的脚本上传到 Amazon S3 存储桶。请务必创建此 Amazon S3 存储桶,并在 AWS 服务配置文件设置中选择它。有关创建 Amazon S3 存储桶的更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的创建第一个 S3 存储桶。
要确保 AWS Glue Studio 可以连接到数据存储,请创建一个自定义连接器和一个连接。此外,还要将数据确保使用值替换库凭证存储在 AWS Secrets Manager 中。
创建自定义连接器
-
下载数据存储的 JDBC 驱动程序。有关 AWS SCT 使用的 JDBC 驱动程序的更多信息,请参阅 为 AWS Schema Conversion Tool 安装 JDBC 驱动程序。
-
将驱动程序文件上传到 Amazon S3 存储桶。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的将对象上传到存储桶。
-
登录 AWS 管理控制台,然后通过以下网址打开 AWS Glue Studio 控制台:https://console.aws.amazon.com/gluestudio/
。 -
选择连接器,然后选择创建自定义连接器。
-
对于连接器 S3 URL,选择浏览 S3,然后选择您上传到 Amazon S3 存储桶的 JDBC 驱动程序文件。
-
为您的连接器输入描述性名称。例如,输入
SQLServer。 -
对于连接器类型,请选择 JDBC。
-
在类名称中,输入 JDBC 驱动程序的主类名称。对于 SQL Server,请输入
com.microsoft.sqlserver.jdbc.SQLServerDriver。 -
对于 JDBC URL 库,请输入 JDBC 基本 URL。JDBC 基本 URL 的语法取决于源数据库引擎。对于 SQL Server,请使用以下格式:
jdbc:sqlserver://$。<host>:$<port>;databaseName=$<dbname>;user=$<username>;password=$<password>确保使用值替换
<host>、<port>、<dbname>、<username>和<password>。 -
在 URL 参数分隔符中,输入分号(
;)。 -
选择 Create connector (创建连接器)。
在 AWS Secrets Manager 中存储数据库凭证
登录 AWS 管理控制台 ,然后通过以下网址打开 AWS Secrets Manager 控制台:https://console.aws.amazon.com/secretsmanager/
。 -
选择存储新密钥。
-
在 Choose secret type(选择密钥类型)页面上,执行以下操作:
-
对于密钥类型,请选择其他密钥类型。
-
对于键/值对,输入以下密钥:
host、port、dbname、username和password。接下来,输入这些密钥的值。
-
-
在配置密钥页面上,输入描述性密钥名称。例如,输入
SQL_Server_secret。 -
选择下一步。然后,在配置旋转页面再次选择下一步。
-
在审核页面上,审核密钥详细信息,然后选择存储。
创建连接器连接
登录 AWS 管理控制台,然后通过以下网址打开 AWS Glue Studio 控制台:https://console.aws.amazon.com/gluestudio/
。 -
选择要创建连接的连接器,然后选择创建连接。
-
在创建连接页面上,输入连接的描述性名称。例如,输入
SQL-Server-connection。 -
在 AWS 秘钥中,选择您在 AWS Secrets Manager 中创建的密钥。
-
配置网络选项,然后选择创建连接。
现在,您可以使用自定义连接器创建 AWS Glue Studio 作业。有关更多信息,请参阅 创建 AWS Glue Studio 作业。
将 SSIS 包添加到 AWS SCT 项目中
您可以将多个 SSIS 包添加到单个 AWS SCT 项目中。
将 SSIS 包添加到 AWS SCT 项目中
-
使用 AWS SCT 创建新项目,或打开现有项目。有关更多信息,请参阅 在 AWS SCT 中启动和管理项目。
-
从菜单中选择添加源,然后选择 SQL Server Integration Services。
-
在连接名称中,输入 SSIS 包的名称。AWS SCT 会在左侧面板的树中显示此名称。
-
在 SSIS 包文件夹中,输入包含源 SSIS 包的文件夹的路径。
-
从菜单中选择添加目标,然后选择 AWS Glue Studio。
AWS SCT 使用 AWS 配置文件连接 AWS Glue Studio。有关更多信息,请参阅 在 AWS Schema Conversion Tool 中管理配置文件。
-
创建映射规则,其中包括源 SSIS 包和 AWS Glue Studio 目标。有关更多信息,请参阅 在 AWS Schema Conversion Tool 中映射数据类型。
-
在 AWS Glue Studio 控制台中创建 AWS Glue Studio 连接。有关更多信息,请参创建连接器连接。
-
选择左侧树中的连接管理器,打开上下文(右键单击)菜单,然后选择配置连接。
AWS SCT 显示配置连接窗口。
-
对于每个源 SSIS 连接,请选择一个 AWS Glue Studio 连接。
用 AWS SCT 将 SSIS 包转换为 AWS Glue Studio
接下来,了解如何使用 AWS SCT 将 SSIS 包转换为 AWS Glue Studio。
将 SSIS 包转换为 AWS Glue Studio
-
将 SSIS 包添加到 AWS SCT 项目中。有关更多信息,请参阅 将 SSIS 包添加到 AWS SCT 项目中。
-
在左侧面板中,展开 ETL 和 SSIS 节点。
-
选择包,打开上下文(右键单击)菜单,然后选择转换包。
AWS SCT 将您选择的 SSIS 包转换为 JSON 文件。这些 JSON 对象表示有向无环图(DAG)中的节点。在右侧树的包 DAG 节点中找到转换后的文件。
-
选择包 DAG,打开上下文(右键单击)菜单,然后选择保存到 Amazon S3。
现在,您可以使用这些脚本在 AWS Glue Studio 中创建作业。
使用转换后的代码创建 AWS Glue Studio 作业
转换源 SSIS 包后,您可以使用转换后的 JSON 文件创建 AWS Glue Studio 作业。
创建 AWS Glue Studio 作业
-
在右侧树中选择包 DAG,打开上下文(右键单击)菜单,然后选择配置 AWS Glue Studio 作业。
-
(可选)应用在 AWS Glue Studio 中模拟 SSIS 函数的扩展包。
-
将打开配置 AWS Glue Studio 作业窗口。
完成基本作业属性部分:
名称:输入 AWS Glue Studio 作业名称。
脚本文件名:输入作业脚本的名称。
作业参数:添加参数并输入参数值。
选择下一步。
-
完成高级作业属性部分:
-
IAM 角色:选择用于 AWS Glue Studio 身份验证和访问数据存储的 IAM 角色。
-
脚本文件 S3 路径:输入转换后的脚本的 Amazon S3 路径。
-
临时目录:输入临时目录的 Amazon S3 路径以获得中间结果。AWS Glue Studio 使用此目录读取或写入 Amazon 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 作业。
-
-
在右侧树中的 ETL 作业下找到您配置的作业。选择您配置的作业,打开上下文(右键单击)菜单,然后选择创建 AWS Glue Studio 作业。
-
选择应用状态,并确保作业的状态值为成功。
-
打开 AWS Glue Studio 控制台,选择刷新,然后选择作业。然后,选择运行。
使用 AWS SCT 创建 SSIS 包评估报告
ETL 迁移评估报告提供了有关将 SSIS 包转换为与 AWS Glue Studio 兼容的格式的信息。评估报告包括 SSIS 包各组件的操作项。这些操作项显示哪些组件 AWS SCT 无法自动转换。
创建 ETL 迁移评估报告
-
展开左侧面板中 ETL 下的 SSIS 节点。
-
选择包,打开上下文(右键单击)菜单,然后选择创建报告。
-
查看摘要选项卡。此处 AWS SCT 显示 ETL 迁移评估报告中的执行摘要信息。它包括 SSIS 包所有组件的转换结果。
-
(可选)将 ETL 迁移评估报告的本地副本另存为 PDF 文件或逗号分隔值(CSV)文件:
-
要将 ETL 迁移评估报告另存为 PDF 文件,请选择右上角的保存为 PDF。
PDF 文件包含脚本转换执行摘要、操作项和建议。
-
要将 ETL 迁移评估报告另存为 CSV 文件,请选择右上角的保存为 CSV。
AWS SCT 创建三个 CSV 文件。这些文件包含操作项、推荐的操作以及转换脚本所需的估计人工操作的复杂性。
-
-
选择操作项选项卡。此选项卡包含需要手动转换为 AWS Glue Studio 的项目列表。如果从列表中选择一个操作项,AWS SCT 会突出显示您源 SSIS 包中该操作项适用的项。
AWS SCT 可以转换为 AWS Glue Studio 的 SSIS 组件
您可以使用 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 可以转换为 AWS Glue 的 SSIS 组件。