

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

# 使用 Teradata BTEQ 脚本转换为 Amazon Redshift RSQL AWS SCT
<a name="CHAP-converting-bteq-rsql"></a>

你可以使用 AWS Schema Conversion Tool (AWS SCT) 将 Teradata Basic Teradata 查询 (BTEQ) 脚本转换为 Amazon Redshift RSQL。

以下架构图显示了数据库迁移项目，其中包括将提取、转换和加载（ETL）脚本转换为 Amazon Redshift RSQL。

![\[显示将 ETL 脚本转换为 RSQL 的示意图。\]](http://docs.aws.amazon.com/zh_cn/SchemaConversionTool/latest/userguide/images/redshift-rsql-conversion.png)


**Topics**
+ [将 BTEQ 脚本添加到您的项目中 AWS SCT](#CHAP-converting-bteq-rsql-create)
+ [在 BTEQ 脚本中使用配置替代变量 AWS SCT](#CHAP-converting-bteq-rsql-variables)
+ [使用 Teradata BTEQ 脚本转换为 Amazon Redshift RSQL AWS SCT](#CHAP-converting-bteq-rsql-convert)
+ [使用管理 BTEQ 脚本 AWS SCT](#CHAP-converting-bteq-rsql-manage)
+ [使用创建 BTEQ 脚本转化评估报告 AWS SCT](#CHAP-converting-bteq-rsql-assessment)
+ [使用编辑和保存转换后的 BTEQ 脚本 AWS SCT](#CHAP-converting-bteq-rsql-save)

## 将 BTEQ 脚本添加到您的项目中 AWS SCT
<a name="CHAP-converting-bteq-rsql-create"></a>

您可以向单个 AWS SCT 项目添加多个脚本。

**向项目添加 BTEQ 脚本 AWS SCT**

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

1. 从菜单中选择**添加源**，然后选择 **Teradata** 将源数据库添加到项目中。有关更多信息，请参阅 [Teradata 数据库](CHAP_Source.Teradata.md)。

1. 从菜单中选择 “**添加目标**”，将目标 Amazon Redshift 数据库添加到您的 AWS SCT 项目中。

   您可以使用虚拟的 Amazon Redshift 目标数据库平台。有关更多信息，请参阅 [在 AWS Schema Conversion Tool 中映射到虚拟目标](CHAP_Mapping.VirtualTargets.md)。

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

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

1. 在左侧面板中，展开**脚本**节点。

1.  选择 **BTEQ 脚本**，打开上下文（右键单击）菜单，然后选择**加载脚本**。

1.  输入 Teradata BTEQ 脚本的源代码位置，然后选择**选择文件夹**。

   AWS SCT 显示**加载脚本**窗口。

1. 请执行以下操作之一：

   1. 如果您的 Teradata BTEQ 脚本不包含替代变量，请选择**无替代变量**，然后选择**确定**将脚本添加到 AWS SCT 项目中。

   1. 如果 Teradata BTEQ 脚本包含替代变量，请配置替代变量。有关更多信息，请参阅 [在 BTEQ 脚本中配置替代变量](#CHAP-converting-bteq-rsql-variables)。

## 在 BTEQ 脚本中使用配置替代变量 AWS SCT
<a name="CHAP-converting-bteq-rsql-variables"></a>

Teradata BTEQ 脚本可以包含替代变量。例如，您可以使用一个带有替代变量的 BTEQ 脚本在多个数据库环境中运行同一组命令。您可以使用 AWS SCT 在 BTEQ 脚本中配置替代变量。

在运行带有替代变量的 BTEQ 脚本之前，请确保为所有变量分配值。为此，您可以使用其他工具或应用程序，例如 Bash 脚本、 UC4 (Automic) 等。 AWS SCT 只有在为替代变量赋值后才能解析和转换替代变量。

**在 BTEQ 脚本中配置替代变量**

1. 将 BTEQ 脚本添加到您的项目中 AWS SCT 。有关更多信息，请参阅 [将 BTEQ 脚本添加到您的项目中 AWS SCT ](#CHAP-converting-bteq-rsql-create)。

   添加脚本时，选择**使用替代变量**。

1. 在**定义变量格式**中，输入与脚本中所有替代变量相匹配的正则表达式。

   例如，如果替代变量的名称以 `${` 开头且以 `}` 结尾，则使用 `\$\{\w+\}` 正则表达式。要匹配以美元符号或百分号开头的替代变量，请使用 `\$\w+|\%\w+` 正则表达式。

   中的正则表达式 AWS SCT 符合 Java 正则表达式语法。有关更多信息，请参阅 Java 文档中的 [java.util.regex 类模式](https://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)。

1. 选择 “**确定”** 将脚本加载到 AWS SCT 项目中，然后选择 “**确定”** 关闭 “**加载脚本**” 窗口。

1. 选择**变量**可查看所有发现的替代变量及其值。

1. 在**值**中，输入替代变量的值。

## 使用 Teradata BTEQ 脚本转换为 Amazon Redshift RSQL AWS SCT
<a name="CHAP-converting-bteq-rsql-convert"></a>

接下来，了解如何使用将 BTEQ ETL 脚本转换为 Amazon Redshift RSQL。 AWS SCT

**将 Teradata BTEQ 脚本转换为 Amazon Redshift RSQL**

1. 将 BTEQ 脚本添加到您的项目中 AWS SCT 。有关更多信息，请参阅 [将 BTEQ 脚本添加到您的项目中 AWS SCT ](#CHAP-converting-bteq-rsql-create)。

1. 配置替代变量。有关更多信息，请参阅 [在 BTEQ 脚本中配置替代变量](#CHAP-converting-bteq-rsql-variables)。

1. 在左侧面板中，展开**脚本**节点。

1. 请执行以下操作之一：
   + 要转换单个 BTEQ 脚本，请展开 **BTEQ 脚本**节点，选择要转换的脚本，然后从上下文（右键单击）菜单中选择**转换为 RSQL**。
   + 要转换多个脚本，请确保选择所有要转换的脚本。然后选择 **BTEQ 脚本**，打开上下文（右键单击）菜单，然后在**转换脚本**下选择**转换为 RSQL**。

   AWS SCT 将你选定的所有 Teradata BTEQ 脚本转换为与 Amazon Redshift RSQL 兼容的格式。在目标数据库面板的**脚本**节点中找到转换后的脚本。

1. 编辑转换后的 Amazon Redshift RSQL 脚本或将其保存。有关更多信息，请参阅 [编辑和保存转换后的 BTEQ 脚本](#CHAP-converting-bteq-rsql-save)。

## 使用管理 BTEQ 脚本 AWS SCT
<a name="CHAP-converting-bteq-rsql-manage"></a>

您可以添加多个 BTEQ 脚本或从项目中移除一个 BTEQ 脚本。 AWS SCT 

**向项目添加其他 BTEQ 脚本 AWS SCT**

1. 在左侧面板中，展开**脚本**节点。

1. 选择 **BTEQ 脚本**节点，然后打开上下文（右键单击）菜单。

1. 选择**加载脚本**。

1. 输入添加新 BTEQ 脚本和配置替代变量所需的信息。有关更多信息，请参阅[将 BTEQ 脚本添加到您的项目中 AWS SCT ](#CHAP-converting-bteq-rsql-create)和[在 BTEQ 脚本中配置替代变量](#CHAP-converting-bteq-rsql-variables)。

**从项目中删除 BTEQ 脚本 AWS SCT**

1. 展开左侧面板中**脚本**下的 **BTEQ 脚本**节点。

1. 选择要删除的脚本，然后打开上下文 (右键单击) 菜单。

1. 选择**删除脚本**。

## 使用创建 BTEQ 脚本转化评估报告 AWS SCT
<a name="CHAP-converting-bteq-rsql-assessment"></a>

*BTEQ 脚本转换评估报告*提供了有关将 BTEQ 脚本中的 BTEQ 命令和 SQL 语句转换为与 Amazon Redshift RSQL 兼容的格式的信息。评估报告包括 BTEQ 命令和 AWS SCT 无法转换的 SQL 语句的操作项目。

**创建 BTEQ 脚本转换评估报告**

1. 展开左侧面板中**脚本**下的 **BTEQ 脚本**节点。

1. 选择要转换的脚本，然后打开上下文 (右键单击) 菜单。

1. 在**创建报告**下选择**转换为 RSQL**。

1. 查看**摘要**选项卡。**摘要**选项卡显示了来自 BTEQ 脚本评估报告的执行摘要信息。它包括 BTEQ 脚本中的所有 BTEQ 命令以及 SQL 语句的转换结果。

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

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

     CSV 文件包含操作项、推荐的操作以及转换脚本所需的估计人工操作的复杂度。

1. 选择**操作项**选项卡。此选项卡包含需要手动转换为 Amazon Redshift RSQL 的项目列表。从列表中选择措施项时，会 AWS SCT 突出显示该措施项所适用的源 BTEQ 脚本中的项目。

## 使用编辑和保存转换后的 BTEQ 脚本 AWS SCT
<a name="CHAP-converting-bteq-rsql-save"></a>

您可以在 AWS SCT 项目的下部面板中编辑转换后的脚本。 AWS SCT 将编辑后的脚本存储为项目的一部分。

**保存转换后的脚本**

1. 展开目标数据库面板中**脚本**下的 **RSQL 脚本**节点。

1. 选择转换后的脚本，打开上下文（右键单击）菜单，然后选择**保存脚本**。

1. 输入用于保存转换后的脚本的文件夹路径，然后选择**保存**。

   AWS SCT 将转换后的脚本保存到文件中并打开此文件。