实施阶段 - AWS 规范性指导

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

实施阶段

遵循大爆炸或分阶段方法的迁移需要新的开发和测试。 AWS Schema Conversion Tool (AWS SCT) 可以自动从 SSIS 包生成 AWS Glue 作业。这大大减少了迁移时间和工作量。或者,您可以使用 AWS Glue Studio 进行基于图形界面的开发,也可以构建 Spark 库以便在其中一个或 AWS Glue Amazon EMR 上运行。

以下各节提供了使用 AWS SCT、 AWS Glue和 Amazon EMR 的有用指导。

AWS SCT

以下屏幕插图显示了由转换的 AWS Glue 作业脚本 AWS SCT。

AWS Glue 作业脚本转换者 AWS SCT

AWS SCT 可以将 SSIS 包批量转换为 AWS Glue 作业。您可以根据您的新设计编辑脚本以更新现有逻辑或添加新逻辑。我们建议您遵循 AWS SCT 转换后的脚本中的命名约定来自定义脚本。

有关更多信息,请参阅 AWS SCT 文档 AWS SCT中的将 SSIS 转换为 AWS Glue 使用

AWS Glue

AWS Glue Studio 提供了类似于 SSIS 的图形界面和开发体验,如以下屏幕所示。

AWS Glue 工作室用户界面

如果您不想使用图形界面,也可以从 AWS Glue 控制台运行带有所需的 Python 库的自定义脚本。有关更多信息,请参阅 AWS Glue 文档中的提供您自己的自定义脚本

AWS Glue 提供了一组用于处理数据的内置变换。它们类似于 SSIS 数据流转换。在迁移 SSIS ETL 作业时,请使用以下最佳实践: AWS Glue

  • 准备从 AWS Glue 变换到等效 SSIS 变换的映射。

  • 如果您的转换无法映射到 AWS Glue 变换,请使用 Python 或 Scala 自定义脚本进行构建。

  • 对于自定义日志(例如读取的行、写入的行或错误的记录),除了 Amazon 之外,还可以使用自定义脚本 CloudWatch。

  • 添加开发端点以在本地开发和调试自定义脚本。

Amazon EMR

你可以在 EMR 集群中运行自定义脚本(用 Python 或 Scala 编写)或编译的 Python 库,就像一样。 AWS Glue请遵循以下最佳实践:

  • 在使用 Spark 框架创建 EMR 集群时,从内存优化的实例类型开始。(SSIS 使用内存缓冲区。)

  • 构建等同于每个 SSIS 任务或转换的通用 Python 方法。例如,在下图中,一种将两个数据帧作为输入的方法会生成第三个数据框,该数据框将来自两个数据帧的匹配记录作为输出。这可以用作合并联接转换。

用于 SSIS 任务的 Python 合并函数示例

测试

需要一个测试框架来验证数据的完整性和正确性。该框架应涵盖所有现有场景以及您在将任务迁移到时所做的任何改进 AWS。

  • 完整性验证:

    • 所有作业都将迁移到其目标状态。

    • 所有功能都将在每个作业中迁移。

    • 所有类型的日志都可用,包括任务执行详情、错误消息、错误记录和行数。

  • 正确性验证:

    • 在现有环境和新环境中,数据质量是一致的。

    • 所有表中的所有列都匹配,或者表格已得到改进 AWS。

    • 所有审核和日志信息都匹配。

您还应验证迁移任务的性能是否与现有作业的性能相匹配。