

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

# 使用 ETL 流程转换数据 AWS Schema Conversion Tool
<a name="CHAP-converting-etl"></a>

您可以使用 AWS Schema Conversion Tool (AWS SCT) 迁移提取、转换和加载 (ETL) 进程。这种类型的迁移包括与 ETL 相关的业务逻辑的转换。此逻辑可以位于源数据仓库中，也可以位于您单独运行的外部脚本中。

目前， AWS SCT 支持将 ETL 脚本转换为对象 AWS Glue 和 Amazon Redshift RSQL，如下表所示。


****  

| 来源 | Target | 
| --- | --- | 
| Informatica ETL 脚本 | Informatica | 
| Microsoft SQL Server Integration Services (SSIS) ETL 包 | AWS Glue 或者 AWS Glue Studio | 
| 带有来自 Teradata Basic Teradata Query (BTEQ) 的嵌入式命令的 Shell 脚本  | Amazon Redshift RSQL | 
| Teradata BTEQ ETL 脚本 | AWS Glue 或者亚马逊 Redshift RSQL | 
| Teradata 作业脚本 FastExport  | Amazon Redshift RSQL | 
| Teradata 作业脚本 FastLoad  | Amazon Redshift RSQL | 
| Teradata 作业脚本 MultiLoad  | Amazon Redshift RSQL | 

**Topics**
+ [将 ETL 流程转换为 in AWS Glue AWS Schema Conversion Tool](CHAP-converting-aws-glue-ui-process.md)
+ [将 ETL 流程转换为 in AWS Glue AWS Schema Conversion Tool](CHAP-converting-aws-glue-api-process.md)
+ [使用以下命令转换 Informatica ETL 脚本 AWS Schema Conversion Tool](CHAP-converting-informatica.md)
+ [将 SSIS 转换为 AWS Glue AWS SCT](CHAP-converting-aws-glue-ssis.md)
+ [将 SSIS 软件包转换为 AWS Glue Studio AWS Schema Conversion Tool](CHAP-converting-ssis-glue-studio.md)
+ [使用 Teradata BTEQ 脚本转换为 Amazon Redshift RSQL AWS SCT](CHAP-converting-bteq-rsql.md)
+ [使用以下命令将带有嵌入式 BTEQ 命令的 shell 脚本转换为 Amazon Redshift RSQL AWS Schema Conversion Tool](CHAP-converting-shell-rsql.md)
+ [FastExport 使用以下命令将脚本转换为 Amazon Redshift RSQL AWS Schema Conversion Tool](CHAP-converting-fastexport-rsql.md)
+ [使用以下命令将 FastLoad 作业脚本转换为 Amazon Redshift RSQL AWS Schema Conversion Tool](CHAP-converting-fastload-rsql.md)
+ [MultiLoad 使用以下命令将脚本转换为 Amazon Redshift RSQL AWS Schema Conversion Tool](CHAP-converting-multiload-rsql.md)

# 将 ETL 流程转换为 in AWS Glue AWS Schema Conversion Tool
<a name="CHAP-converting-aws-glue-ui-process"></a>

接下来，您可以找到将 ETL 脚本转换为 AWS Glue 的 AWS SCT过程大纲。在本示例中，我们将 Oracle 数据库转换为 Amazon Redshift，并将 ETL 过程与源数据库和数据仓库结合使用。

**Topics**
+ [先决条件](#CHAP-converting-aws-glue-prerequisites)
+ [了解 AWS Glue 数据目录](#CHAP-converting-aws-glue-data-catalog)
+ [使用with进行转换 AWS SCT 的限制 AWS Glue](#CHAP-converting-aws-glue-limitations)
+ [步骤 1：创建新项目](#CHAP-converting-aws-glue-step-ui-new-project)
+ [步骤 2：创建作 AWS Glue 业](#CHAP-converting-aws-glue-step-ui-config-job)

以下架构图显示了一个示例数据库迁移项目，其中包括将 ETL 脚本转换为 AWS Glue。

![\[显示数据库和 ETL 的转换的示意图。\]](http://docs.aws.amazon.com/zh_cn/SchemaConversionTool/latest/userguide/images/glue-conversion.png)


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

开始之前，请执行以下操作：
+ 迁移您打算迁移到 AWS的任何源数据库。
+ 将目标数据仓库迁移到 AWS。
+ 收集 ETL 过程中涉及的所有代码的列表。
+ 收集每个数据库的所有必要连接信息的列表。

此外，还 AWS Glue 需要代表您访问其他 AWS 资源的权限。您可以使用 AWS Identity and Access Management (IAM) 提供这些权限。请确保您已为创建了 IAM 策略 AWS Glue。*有关更多信息，请参阅开发人员指南中的[为 AWS Glueservice 创建 IAM 策略](https://docs.aws.amazon.com/glue/latest/dg/create-service-policy.html)。AWS Glue *

## 了解 AWS Glue 数据目录
<a name="CHAP-converting-aws-glue-data-catalog"></a>

作为转换过程的一部分， AWS Glue 加载有关源数据库和目标数据库的信息。它将这些信息分成不同的类别，并采用称为 *树*的结构。此结构包括以下内容：
+ **连接**：连接参数 
+ **爬网程序**：爬网程序的列表，每个架构对应一个爬网程序
+ **数据库**：容纳表的容器
+ **表**：表示表中数据的元数据定义
+ **ETL 作业**：执行 ETL 工作的业务逻辑
+ **触发器** — 控制 ETL 作业何时运行的逻辑 AWS Glue （无论是按需、按计划还是由作业事件触发）

*AWS Glue 数据目录* 是数据的位置、架构和运行时指标的索引。使用 AWS Glue 和时 AWS SCT， AWS Glue 数据目录包含对用作中 ETL 任务源和目标的数据的引用。 AWS Glue要创建数据仓库，请编录该数据。

您可以使用数据目录中的信息创建和监控您的 ETL 作业。通常，您运行爬网程序来清点数据存储中的数据，但还有其他方法可以将元数据表添加到数据目录中。

当您在数据目录中定义表时，您将其添加到数据库中。数据库用于组织中的表 AWS Glue。

## 使用with进行转换 AWS SCT 的限制 AWS Glue
<a name="CHAP-converting-aws-glue-limitations"></a>

使用with进行 AWS SCT 转换时，存在以下限制 AWS Glue。


|  |  | 
| --- |--- |
| 资源 | 默认限制 | 
| 每个账户的数据库数量 | 10000 | 
| 每个数据库的表数量 | 100000 | 
| 每个表的分区数量 | 1000000 | 
| 每个表的表版本数量 | 100000 | 
| 每个账户的表数量 | 1000000 | 
| 每个账户的分区数量 | 10,000,000 | 
| 每个账户的表版本数量 | 1000000 | 
| 每个账户的连接数量 | 1000 | 
| 每个账户的爬网程序数量 | 25 | 
| 每个账户的作业数量 | 25 | 
| 每个账户的触发器数量 | 25 | 
| 每个账户的并发作业运行数量 | 30 | 
| 每个作业的并发作业运行数量 | 3 | 
| 每个触发器的作业数量 | 10 | 
| 每个账户的开发端点数量 | 5 | 
| 开发端点一次使用的最大数据处理单元 (DPUs) | 5 | 
| 一个角色一次 DPUs 使用的最大值 | 100 | 
| 数据库名称长度 |  无限制 为了与其他元数据存储（如 Apache Hive）兼容，名称会更改为使用小写字符。 如果您计划从 Amazon Athena 访问数据库，请提供只包含字母数字和下划线字符的名称。 | 
| 连接名称长度 | 无限制 | 
| 爬网程序名称长度 | 无限制 | 

## 步骤 1：创建新项目
<a name="CHAP-converting-aws-glue-step-ui-new-project"></a>

要创建新项目，请执行以下简要步骤：

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

1. 将源数据库和目标数据库添加到项目中。有关更多信息，请参阅 [将服务器添加到项目中 AWS SCT](CHAP_UserInterface.AddServers.md)。

   确保已在目标数据库连接设置中选择了**使用 AWS Glue**。为此，请选择 **AWS Glue** 选项卡。在 “**从 AWS 配置文件复制**” 中，选择要使用的配置文件。配置文件应自动填写 AWS 访问密钥、密钥和 Amazon S3 存储桶文件夹。如果不是这样，请自行输入这些信息。选择 “**确定”** 后， AWS Glue 分析对象并将元数据加载到 AWS Glue 数据目录中。

   根据您的安全设置，您可能会收到一条警告消息，指出您的账户对服务器上的某些架构没有足够的权限。如果您有权访问您使用的架构，您可以安全地忽略此消息。

1. 要完成准备导入您的 ETL，请连接到源数据库和目标数据库。为此，请在源元数据树或目标元数据树中选择您的数据库，然后选择**连接到服务器**。

AWS Glue 在源数据库服务器上创建一个数据库，在目标数据库服务器上创建一个数据库，以帮助进行 ETL 转换。目标服务器上的数据库包含 AWS Glue 数据目录。要查找特定对象，请在源面板或目标面板上使用搜索。

要查看特定对象如何转换，请找到要转换的项，然后从其上下文（右键单击）菜单中选择**转换架构**。 AWS SCT 将此选定的对象转换为脚本。

您可以在右侧面板的**脚本**文件夹中查看转换后的脚本。当前，该脚本是一个虚拟对象，只能作为 AWS SCT 项目的一部分使用。

 要使用转换后的脚本创建 AWS Glue 任务，请将您的脚本上传到 Amazon S3。要将脚本上传到 Amazon S3，请选择脚本，然后从其上下文（右键单击）菜单中选择 **保存至 S3**。

## 步骤 2：创建作 AWS Glue 业
<a name="CHAP-converting-aws-glue-step-ui-config-job"></a>

将脚本保存到 Amazon S3 后，您可以选择它，然后选择 “**配置 AWS Glue 作业**” 以打开向导来配置 AWS Glue 任务。此向导可让您更轻松地对其进行设置：

1. 在向导的第一个选项卡**设计数据流**上，您可以选择执行策略以及要纳入这一个作业的脚本列表。您可以为每个脚本选择参数。也可以重新排列脚本，以便它们以正确的顺序运行。

1. 在第二个选项卡上，您可以为作业命名，并直接配置 AWS Glue的设置。在此屏幕上，您可以配置以下设置：
   + AWS Identity and Access Management (IAM) 角色
   + 脚本文件名和文件路径
   + 使用具有 Amazon S3 托管式密钥的服务器端加密（SSE-S3）加密脚本
   + 临时目录
   + 生成的 Python 库路径
   + 用户 Python 库路径
   + 从属 .jar 文件的路径
   + 引用的文件路径
   + 每次 DPUs 作业运行并发
   + 最大并发数
   + 作业超时（分钟）
   + 延迟通知阈值（分钟）
   + 重试次数
   + 安全配置
   + 服务器端加密

1. 在第三个步骤或选项卡中，您可以选择已配置的到目标端点的连接。

配置完作业后，它会显示在 AWS Glue 数据目录中的 ETL 作业下。如果您选择该作业，设置将显示，因此您可以查看或编辑它们。要在中创建新作业 AWS Glue，请从** AWS Glue 作业的上下文（右键单击）菜单中选择 “创建**作业”。执行此操作将应用架构定义。要刷新显示内容，请从上下文（右键单击）菜单中选择 **Refresh from database (从数据库刷新)**。

此时，您可以在 AWS Glue 控制台中查看您的作业。为此，请登录 AWS 管理控制台 并打开 AWS Glue 控制台，网址为[https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)。

您可以测试新作业以确保它正确工作。为此，首先检查源表中的数据，然后验证目标表是否为空。运行作业，然后再次检查。您可以从 AWS Glue 控制台查看错误日志。

# 将 ETL 流程转换为 in AWS Glue AWS Schema Conversion Tool
<a name="CHAP-converting-aws-glue-api-process"></a>

在以下各节中，您可以找到对在 Python 中调用 AWS Glue API 操作的转换的描述。有关更多信息，请参阅《 AWS Glue 开发人员指南》**中的[使用 Python 编程 AWS Glue ETL 脚本](https://docs.aws.amazon.com//glue/latest/dg/aws-glue-programming-python.html)。

**Topics**
+ [步骤 1：创建数据库](#CHAP-converting-aws-glue-step-api-create-db)
+ [步骤 2：创建连接](#CHAP-converting-aws-glue-step-api-connection)
+ [步骤 3：创建 AWS Glue 爬虫](#CHAP-converting-aws-glue-step-api-crawler)

## 步骤 1：创建数据库
<a name="CHAP-converting-aws-glue-step-api-create-db"></a>

第一步是使用 [AWS SDK AP](https://docs.aws.amazon.com/glue/latest/webapi/API_CreateDatabase.html) I 在 AWS Glue 数据目录中创建新数据库。当您在数据目录中定义表时，您将其添加到数据库。数据库用于组织中的表 AWS Glue。

以下示例演示了 Python API 的使用`create_database`方法 AWS Glue。

```
response = client.create_database(
    DatabaseInput={
        'Name': 'database_name’,
        'Description': 'description',
        'LocationUri': 'string',
        'Parameters': {         
            'parameter-name': 'parameter value'
        }
    }
)
```

如果您使用的是 Amazon Redshift，数据库名称的构成方式如下。

```
{redshift_cluster_name}_{redshift_database_name}_{redshift_schema_name}
```

此示例中的 Amazon Redshift 集群的完整名称如下所示。

```
rsdbb03.apq1mpqso.us-west-2.redshift.amazonaws.com
```

下面显示了格式正确的数据库名称的示例。在此例中，`rsdbb03` 为名称，这是集群端点的完整名称的第一个部分。数据库名为 `dev`，架构为 `ora_glue`。

```
rsdbb03_dev_ora_glue
```

## 步骤 2：创建连接
<a name="CHAP-converting-aws-glue-step-api-connection"></a>

使用 [AWS SDK API](https://docs.aws.amazon.com/glue/latest/webapi/API_CreateConnection.html) 在数据目录中创建新连接。

以下示例演示了如何使用 Python API [https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-connections.html](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-connections.html)的方法 AWS Glue。

 

```
response = client.create_connection(
    ConnectionInput={
        'Name': 'Redshift_abcde03.aabbcc112233.us-west-2.redshift.amazonaws.com_dev',
        'Description': 'Created from SCT',
        'ConnectionType': 'JDBC',
        'ConnectionProperties': {
            'JDBC_CONNECTION_URL': 'jdbc:redshift://aabbcc03.aabbcc112233.us-west-2.redshift.amazonaws.com:5439/dev',
            'USERNAME': 'user_name',
            'PASSWORD': 'password'
        },
        'PhysicalConnectionRequirements': {
            'AvailabilityZone': 'us-west-2c',
            'SubnetId': 'subnet-a1b23c45',
            'SecurityGroupIdList': [
                'sg-000a2b3c', 'sg-1a230b4c', 'sg-aba12c3d', 'sg-1abb2345'
            ]
        }
    }
)
```

`create_connection` 中所用的参数如下所示：
+ `Name` （UTF-8 字符串）：必需。对于 Amazon Redshift，连接名称的构成方式如下所示：`Redshift_<Endpoint-name>_<redshift-database-name>`，例如：` Redshift_abcde03_dev`
+ `Description` （UTF-8 字符串）：连接的描述。
+ `ConnectionType` （UTF-8 字符串）：必需。连接的类型。当前，仅支持 JDBC；SFTP 不受支持。
+ `ConnectionProperties`（dict）：必需。用作此连接的参数的键值对列表，包括 JDBC 连接 URL、用户名和密码。
+ `PhysicalConnectionRequirements`（dict）：物理连接要求，其中包括以下内容：
  + `SubnetId`（UTF-8 字符串）：连接使用的子网的 ID。
  + `SecurityGroupIdList`（列表）：连接使用的安全组 ID 列表。
  + `AvailabilityZone`（UTF-8 字符串）：必需。包含该端点的可用区。此参数已被弃用。

## 步骤 3：创建 AWS Glue 爬虫
<a name="CHAP-converting-aws-glue-step-api-crawler"></a>

接下来，您将创建一个 AWS Glue 爬虫来填充目录。 AWS Glue 有关更多信息，请参阅《AWS Glue 开发人员指南》**中的[使用爬网程序编录表](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)。

添加爬网程序的第一步是使用 [AWS SDK API](https://docs.aws.amazon.com//glue/latest/webapi/API_CreateCrawler.html) 在数据目录中创建新数据库。在开始之前，务必先使用 `delete_crawler` 操作删除其先前的任何版本。

创建爬网程序时，请注意以下几点：
+ 对于爬网程序名称，使用格式 `<redshift_node_name>_<redshift_database_name>_<redshift_shema_name>`，例如：`abcde03_dev_ora_glue`
+ 使用已存在的 IAM 角色。有关创建 IAM 角色的更多信息，请参阅《IAM 用户指南》**中的[创建 IAM 角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create.html)。
+ 请使用您在先前步骤中创建的数据库的名称。
+ 使用 `ConnectionName` 参数，这是必需的。
+ 对于 `path` 参数，使用 JDBC 目标的路径，例如：`dev/ora_glue/%`

以下示例将删除现有爬网程序，然后使用适用于 AWS Glue的 Python API 创建新的爬网程序。

```
response = client.delete_crawler(
    Name='crawler_name'
)

response = client.create_crawler(
    Name='crawler_name',
    Role= ‘IAM_role’,
    DatabaseName='database_name’,
    Description='string',
    Targets={
        'S3Targets': [
            {
                'Path': 'string',
                'Exclusions': [
                    'string',
                ]
            },
        ],
        'JdbcTargets': [
            {
                'ConnectionName': ‘ConnectionName’,
                'Path': ‘Include_path’,
                'Exclusions': [
                    'string',
                ]
            },
        ]
    },
    Schedule='string',
    Classifiers=[
        'string',
    ],
    TablePrefix='string',
    SchemaChangePolicy={
        'UpdateBehavior': 'LOG'|'UPDATE_IN_DATABASE',
        'DeleteBehavior': 'LOG'|'DELETE_FROM_DATABASE'|'DEPRECATE_IN_DATABASE'
    },
    Configuration='string'
)
```

创建并运行一个爬网程序，以便连接到一个或多个数据存储，确定数据结构，并将表写入到数据目录中。您可以按计划运行您的爬网程序，如下所示。

```
response = client.start_crawler(
    Name='string'
)
```

此示例使用 Amazon Redshift 作为目标。爬虫运行后，Amazon Redshift AWS Glue 数据类型通过以下方式映射到数据类型。


|  |  | 
| --- |--- |
| Amazon Redshift 数据类型 | AWS Glue 数据类型 | 
| smallint | smallint | 
| integer | int | 
| bigint | bigint | 
| decimal | decimal(18,0) | 
| decimal(p,s) | decimal(p,s) | 
| real | double | 
| double precision | double | 
| 布尔值 | 布尔值 | 
| char | 字符串 | 
| varchar | 字符串 | 
| varchar(n) | 字符串 | 
| date | date | 
| timestamp | timestamp | 
| timestamptz | timestamp | 

# 使用以下命令转换 Informatica ETL 脚本 AWS Schema Conversion Tool
<a name="CHAP-converting-informatica"></a>

您可以使用 AWS SCT 命令行界面 (CLI) 来转换您的 Informatica ETL 脚本，以便可以在新的目标数据库中使用这些脚本。此转换包括三个关键步骤。首先， AWS SCT 转换嵌入在 Informatica 对象中的 SQL 代码。接下来，根据您在项目中指定的迁移规则 AWS SCT 更改数据库对象的名称。最后，将 Informatica ETL 脚本的连接 AWS SCT 重定向到新的目标数据库。

您可以将 Informatica ETL 脚本作为 AWS SCT 数据库转换项目的一部分进行转换。在转换 Informatica ETL 脚本时，请务必将源数据库和目标数据库添加到项目中。

要转换 Informatica ETL 脚本，请确保使用 AWS SCT 版本 1.0.667 或更高版本。另外，请熟悉 AWS SCT的命令行界面。有关更多信息，请参阅 [的 CLI 参考 AWS Schema Conversion Tool](CHAP_Reference.md)。

**使用转换 Informatica ETL 脚本 AWS SCT**

1. 创建新的 AWS SCT CLI 脚本或编辑现有场景模板。例如，您可以下载和编辑 `InformaticConversionTemplate.scts` 模板。有关更多信息，请参阅 [获取 CLI 场景](CHAP_Reference.md#CHAP_Reference.Scenario)。

1. 下载源数据库和目标数据库所需的 JDBC 驱动程序。使用 `SetGlobalSettings` 命令指定这些驱动程序的位置。此外，请指定 AWS SCT 可以保存日志文件的文件夹。

   以下代码示例向您展示了如何将 Oracle 和 PostgreSQL 驱动程序的路径添加到设置中。 AWS SCT 运行此代码示例后，将日志文件 AWS SCT 存储在`C:\sct_log`文件夹中。此外，还会将控制台日志文件 AWS SCT 存储在`C:\Temp\oracle_postgresql`文件夹中。

   ```
   SetGlobalSettings
   	-save: 'true'
   	-settings: '{"oracle_driver_file": "C:\\drivers\\ojdbc8.jar",    
   	"postgresql_driver_file": "C:\\drivers\\postgresql-42.2.19.jar" }'
   /
   
   SetGlobalSettings
   	-save: 'false'
   	-settings: '{
   "log_folder": "C:\\sct_log",
   "console_log_folder": "C:\\Temp\\oracle_postgresql"}'
   /
   ```

1. 创建新 AWS SCT 项目。输入项目的名称和位置。

   以下代码示例在 `C:\Temp` 文件夹中创建 `oracle_postgresql` 项目。

   ```
   CreateProject
   	-name: 'oracle_postgresql'
   	-directory: 'C:\Temp'
   /
   ```

1. 添加有关源数据库和目标数据库的连接信息。

   以下代码示例将 Oracle 和 PostgreSQL 数据库添加为项目的源和目标。 AWS SCT 

   ```
   AddSource
   	-password: 'source_password'
   	-port: '1521'
   	-vendor: 'ORACLE'
   	-name: 'ORACLE'
   	-host: 'source_address'
   	-database: 'ORCL'
   	-user: 'source_user'
   /
   AddTarget
   	-database: 'postgresql'
   	-password: 'target_password'
   	-port: '5432'
   	-vendor: 'POSTGRESQL'
   	-name: 'POSTGRESQL'
   	-host: 'target_address'
   	-user: 'target_user'
   /
   ```

   在前面的示例中，将*source\$1user*和*target\$1user*替换为数据库用户的名称。接下来，*target\$1password*用您的密码替换*source\$1password*和。对于*source\$1address*和*target\$1address*，请输入源数据库服务器和目标数据库服务器的 IP 地址。

   要连接到版本 19 及更高版本的 Oracle 数据库，请在 `AddSource` 命令中使用 Oracle 服务名称。为此，请添加 `-connectionType` 参数并将其值设置为 `'basic_service_name'`。然后，添加 `-servicename` 参数并将其值设置为 Oracle 服务名称。有关 `AddSource` 命令的更多信息，请参阅《AWS Schema Conversion Tool CLI 参考》[https://s3.amazonaws.com/publicsctdownload/AWS+SCT+CLI+Reference.pdf](https://s3.amazonaws.com/publicsctdownload/AWS+SCT+CLI+Reference.pdf)。

1. 创建新的 AWS SCT 映射规则，该规则定义每个源数据库架构的目标数据库引擎。有关更多信息，请参阅 [在 AWS Schema Conversion Tool 中映射数据类型](CHAP_Mapping.md)。

   以下代码示例创建了一个包含所有源 Oracle 数据库架构的映射规则，并将 PostgreSQL 定义为迁移目标。

   ```
   AddServerMapping
   	-sourceTreePath: 'Servers.ORACLE'
   	-targetTreePath: 'Servers.POSTGRESQL'
   /
   ```

1. 添加有关 Informatica 源文件和目标 XML 文件的连接信息。

   以下代码示例添加了 `C:\Informatica_source` 和 `C:\Informatica_target` 文件夹中的 Informatica XML 文件。

   ```
   AddSource
   	-name: 'INFA_SOURCE'
   	-vendor: 'INFORMATICA'
   	-mappingsFolder: 'C:\Informatica_source'
   /
   AddTarget
   	-name: 'INFA_TARGET'
   	-vendor: 'INFORMATICA'
   	-mappingsFolder: 'C:\Informatica_target'
   /
   ```

1. 创建另一条映射规则，为源 Informatica XML 文件定义目标 Informatica XML 文件。

   以下代码示例创建了一个映射规则，该规则包括前面示例中使用的源 Informatica XML 文件和目标 Informatica XML 文件。

   ```
   AddServerMapping
   -sourceTreePath: 'ETL.INFA_SOURCE'
   -targetTreePath: 'ETL.INFA_TARGET'
   /
   ```

1. 指定与 Informatica 连接名称引用对应的数据库服务器连接。

   以下代码示例配置了将 Informatica ETL 脚本从源数据库重定向到新目标数据库的过程。此示例还配置了连接变量。

   ```
   ConfigureInformaticaConnectionsRedirect
   	-treePath: 'ETL.INFA_SOURCE.Files'
   	-connections: '{
   	"ConnectionNames": [
   	{
   		"name": "Oracle_src",
   		"newName": "postgres",
   		"treePath": "Servers.ORACLE"
   	}
   	]
   	"ConnectionVariables": [
   	{
            "name": "$Source",
            "treePath": "Servers.ORACLE"
       }
       ]
   	}'
   /
   ```

1. 转换源数据库架构和 Informatica ETL 脚本。

   以下代码示例转换您的所有源 Oracle 数据库架构和 Informatica XML 文件。

   ```
   Convert
   	-treePath: 'Servers.ORACLE.Schemas.%'
   /
   Convert
   	-treePath: 'ETL.INFA_SOURCE.Files'
   /
   ```

1. （可选）保存转换项目和评估报告。该报告包括转换操作项以及有关如何解决每个问题的建议。

   以下代码示例保存您的项目，并将评估报告的副本作为 PDF 文件保存到 `C:\Temp` 文件夹中。

   ```
   SaveProject
   /
   SaveReportPDF
   	-treePath: 'ETL.INFA_SOURCE.Files'
   	-file:'C:\Temp\Informatica.pdf'
   /
   ```

1. 保存转换后的 Informatica XML 文件。

   以下代码示例将转换后的 XML 文件保存在 `C:\Temp` 文件夹中。您在上一步中使用 `AddTarget` 命令指定了此文件夹。

   ```
   SaveTargetInformaticaXML
   -treePath: 'ETL.INFA_TARGET.Files'
   /
   ```

1. 将您的脚本另存为`.scts`文件，然后使用 AWS SCT CLI 中的`RunSCTBatch`命令运行它。有关更多信息，请参阅 [AWS SCT CLI 脚本模式](CHAP_Reference.md#CHAP_Reference.ScriptMode)。

   以下示例运行 `C:\Temp` 文件夹中的 `Informatica.scts` 脚本。您可以在 Windows 中使用这个示例。

   ```
   RunSCTBatch.cmd --pathtoscts "C:\Temp\Informatica.scts"
   ```

   如果您编辑源代码 Informatica ETL 脚本，请再次运行 CL AWS SCT I 脚本。

# 将 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 循环容器
+ 顺序容器

# 将 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)。

# 使用 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 将转换后的脚本保存到文件中并打开此文件。

# 使用以下命令将带有嵌入式 BTEQ 命令的 shell 脚本转换为 Amazon Redshift RSQL AWS Schema Conversion Tool
<a name="CHAP-converting-shell-rsql"></a>

您可以使用 AWS Schema Conversion Tool (AWS SCT) 将带有嵌入式 Teradata Basic Teradata 查询 (BTEQ) 命令的 shell 脚本转换为带有嵌入式 Amazon Redshift RSQL 命令的外壳脚本。

AWS SCT 从你的 shell 脚本中提取 Teradata BTEQ 命令并将其转换为与 Amazon Redshift 兼容的格式。将 Teradata 数据库迁移到 Amazon Redshift 后，您可以使用这些转换后的脚本管理新的 Amazon Redshift 数据库。

你也可以使用 AWS SCT 将带有 Teradata BTEQ ETL 脚本的文件转换为 Amazon Redshift RSQL。有关更多信息，请参阅 [使用 Teradata BTEQ 脚本转换为 Amazon Redshift RSQL AWS SCT](CHAP-converting-bteq-rsql.md)。

**Topics**
+ [将带有嵌入式 Teradata BTEQ 命令的外壳脚本添加到您的项目中 AWS SCT](#CHAP-converting-shell-rsql-create)
+ [使用嵌入式 Teradata BTEQ 命令在 shell 脚本中配置替代变量 AWS SCT](#CHAP-converting-shell-rsql-variables)
+ [使用嵌入式 Teradata BTEQ 命令转换外壳脚本 AWS SCT](#CHAP-converting-shell-rsql-convert)
+ [使用嵌入式 Teradata BTEQ 命令管理外壳脚本 AWS SCT](#CHAP-converting-shell-rsql-manage)
+ [使用 shell 脚本转换创建评估报告 AWS SCT](#CHAP-converting-shell-rsql-assessment)
+ [使用编辑和保存转换后的 shell 脚本 AWS SCT](#CHAP-converting-shell-rsql-save)

## 将带有嵌入式 Teradata BTEQ 命令的外壳脚本添加到您的项目中 AWS SCT
<a name="CHAP-converting-shell-rsql-create"></a>

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

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

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.  选择 **Shell**，打开上下文（右键单击）菜单，然后选择**加载脚本**。

1.  输入包含嵌入式 Teradata BTEQ 命令的源 Shell 脚本的位置，然后选择**选择文件夹**。

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

1. 请执行以下操作之一：
   + 如果 Shell 脚本不包含替代变量，请选择**无替代变量**，然后选择**确定**将脚本添加到 AWS SCT 项目中。
   + 如果 Shell 脚本包含替代变量，请配置替代变量。有关更多信息，请参阅 [在 Shell 脚本中配置替代变量](#CHAP-converting-shell-rsql-variables)。

## 使用嵌入式 Teradata BTEQ 命令在 shell 脚本中配置替代变量 AWS SCT
<a name="CHAP-converting-shell-rsql-variables"></a>

Shell 脚本可以包含替代变量。例如，您可以使用带有替代变量的单个脚本管理不同环境中的数据库。您可以使用 AWS SCT 在 shell 脚本中配置替代变量。

在使用 shell 脚本中的替换变量运行 BTEQ 命令之前，请确保为此 shell 脚本中的所有变量分配值。 AWS SCT 只有在为替代变量赋值后才能解析和转换替代变量。

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

1. 将源代码 shell 脚本添加到您的 AWS SCT 项目中。有关更多信息，请参阅 [向 AWS SCT 项目中添加 shell 脚本](#CHAP-converting-shell-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 命令转换外壳脚本 AWS SCT
<a name="CHAP-converting-shell-rsql-convert"></a>

接下来，了解如何使用将带有嵌入式 Teradata BTEQ 命令的外壳脚本转换为带有嵌入式 Amazon Redshift RSQL 命令的外壳脚本。 AWS SCT

**转换 Shell 脚本**

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

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

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

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

1. 选择**确定**。

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

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

## 使用嵌入式 Teradata BTEQ 命令管理外壳脚本 AWS SCT
<a name="CHAP-converting-shell-rsql-manage"></a>

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

**向 AWS SCT 项目添加新的 shell 脚本**

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

1. 选择 **Shell** 节点，然后打开上下文 (右键单击) 菜单。

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

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

**从 AWS SCT 项目中移除 shell 脚本**

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

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

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

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

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

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

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

1. 选择要转换的脚本，打开上下文（右键单击）菜单，然后选择**创建报告**。

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

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

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

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

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

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

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

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

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

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

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

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

# FastExport 使用以下命令将脚本转换为 Amazon Redshift RSQL AWS Schema Conversion Tool
<a name="CHAP-converting-fastexport-rsql"></a>

你可以使用 AWS Schema Conversion Tool (AWS SCT) 将 Teradata FastExport 作业脚本转换为 Amazon Redshift RSQL。

*FastExport 作业脚本*是一组 FastExport 命令和 SQL 语句，用于从 Teradata 数据库中选择和导出数据。 AWS SCT 将 FastExport 命令和 SQL 语句转换为与 Amazon Redshift RSQL 兼容的格式。将 Teradata 数据库迁移到 Amazon Redshift 后，您可以使用这些转换后的脚本从 Amazon Redshift 数据库导出数据。

**Topics**
+ [向 AWS SCT 项目添加 FastExport 作业脚本](#CHAP-converting-fastexport-rsql-create)
+ [在 Teradata FastExport 作业脚本中使用配置替代变量 AWS SCT](#CHAP-converting-fastexport-rsql-variables)
+ [使用以下命令转换 Teradata FastExport 作业脚本 AWS SCT](#CHAP-converting-fastexport-rsql-convert)
+ [使用管理 Teradata FastExport 作业脚本 AWS SCT](#CHAP-converting-fastexport-rsql-manage)
+ [使用以下命令为 Teradata FastExport 作业脚本转换创建评估报告 AWS SCT](#CHAP-converting-fastexport-rsql-assessment)
+ [使用编辑和保存转换后的 Teradata FastExport 作业脚本 AWS SCT](#CHAP-converting-fastexport-rsql-save)

## 向 AWS SCT 项目添加 FastExport 作业脚本
<a name="CHAP-converting-fastexport-rsql-create"></a>

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

**向 AWS SCT 项目添加 FastExport 作业脚本**

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.  选择 **FastExport**，打开上下文（右键单击）菜单，然后选择 “**加载脚本**”。

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

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

1. 请执行以下操作之一：
   + 如果您的 Teradata FastExport 作业脚本不包含替代变量，请选择 “**无替代变量**”，然后选择 “**确定”** 将脚本添加到 AWS SCT 项目中。
   + 如果您的 Teradata FastExport 作业脚本包含替代变量，请配置替代变量。有关更多信息，请参阅 [在 FastExport 作业脚本中配置替代变量](#CHAP-converting-fastexport-rsql-variables)。

## 在 Teradata FastExport 作业脚本中使用配置替代变量 AWS SCT
<a name="CHAP-converting-fastexport-rsql-variables"></a>

您的 Teradata FastExport 作业脚本可以包含替代变量。例如，您可以使用带有替代变量的单个脚本从多个数据库导出数据。您可以使用 AWS SCT 在 Teradata 脚本中配置替代变量。

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

**在 FastExport 作业脚本中配置替代变量**

1. 将您的源 Teradata FastExport 作业脚本添加到您的项目中 AWS SCT 。有关更多信息，请参阅 [将 BTEQ 脚本添加到您的项目中 AWS SCT ](CHAP-converting-bteq-rsql.md#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. 在左侧面板中，展开**脚本**节点。选择 **FastExport**，然后选择包含脚本的文件夹。打开上下文（右键单击）菜单，然后选择**替代变量**下的**导出变量**。

1. 导出一个脚本的替代变量。展开包含脚本的文件夹，选择脚本，打开上下文（右键单击）菜单，然后选择**替代变量**下的**导出变量**。

1. 输入逗号分隔值（CSV）文件名以保存替代变量，然后选择**保存**。

1. 打开此 CSV 文件并填写替代变量的值。

   根据操作系统的不同，对 CSV 文件 AWS SCT 使用不同的格式。文件中的值可以用引号括起来，也可以不用引号括起来。确保对替换变量的值使用与文件中其他值相同的格式。 AWS SCT 无法导入具有不同格式值的 CSV 文件。

1. 保存 CSV 文件。

1. 在左侧面板中，展开**脚本**节点。选择 **FastExport**，然后选择您的脚本。打开上下文（右键单击）菜单，然后选择**替代变量**下的**导入变量**。

1. 选择 CSV 文件，然后选择**打开**。

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

## 使用以下命令转换 Teradata FastExport 作业脚本 AWS SCT
<a name="CHAP-converting-fastexport-rsql-convert"></a>

接下来，了解如何使用将 Teradata FastExport 作业转换为 Amazon Redshift RSQL。 AWS SCT

**将 Teradata FastExport 作业脚本转换为 Amazon Redshift RSQL**

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

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

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

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

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

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

## 使用管理 Teradata FastExport 作业脚本 AWS SCT
<a name="CHAP-converting-fastexport-rsql-manage"></a>

您可以添加多个 Teradata FastExport 作业脚本或从项目中移除 FastExport 作业脚本。 AWS SCT 

**向 AWS SCT 项目添加新的 FastExport 作业脚本**

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

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

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

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

**从 AWS SCT 项目中移除 FastExport 作业脚本**

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

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

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

## 使用以下命令为 Teradata FastExport 作业脚本转换创建评估报告 AWS SCT
<a name="CHAP-converting-fastexport-rsql-assessment"></a>

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

**为 Terad FastExport ata 作业创建脚本转换评估报告**

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

1. 选择要转换的脚本，打开上下文（右键单击）菜单，然后选择**创建报告**。

1. 查看**摘要**选项卡。“**摘要**” 选项卡显示 FastExport 作业脚本评估报告中的执行摘要信息。它包括源脚本中所有 FastExport 命令和 SQL 语句的转换结果。

1. 您可以将 FastExport 作业脚本转化评估报告的本地副本另存为 PDF 文件或逗号分隔值 (CSV) 文件。

   1. 要将 FastExport 作业脚本转换评估报告另存为 PDF 文件，请选择右上角的 “**保存为 PDF**”。

       PDF 文件包含脚本转换执行摘要、操作项和建议。

   1. 要将 FastExport 作业脚本转化评估报告另存为 CSV 文件，请选择右上角的 “**保存到 CSV**”。

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

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

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

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

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

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

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

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

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

# 使用以下命令将 FastLoad 作业脚本转换为 Amazon Redshift RSQL AWS Schema Conversion Tool
<a name="CHAP-converting-fastload-rsql"></a>

你可以使用 AWS Schema Conversion Tool (AWS SCT) 将 Teradata FastLoad 作业脚本转换为 Amazon Redshift RSQL。

*Teradata FastLoad 脚本*是一组命令，它们使用多个会话将数据加载到 Teradata 数据库的空表中。Teradata FastLoad 处理一系列 Teradata FastLoad 命令和 SQL 语句。Teradata FastLoad 命令为数据传输提供会话控制和数据处理。SQL 语句创建、维护和删除表。

AWS SCT 将 Teradata FastLoad 命令和 SQL 语句转换为与 Amazon Redshift RSQL 兼容的格式。将 Teradata 数据库迁移到 Amazon Redshift 后，您可以使用这些转换后的脚本将数据加载到 Amazon Redshift 数据库。

**Topics**
+ [向 AWS SCT 项目添加 FastLoad 作业脚本](#CHAP-converting-fastload-rsql-create)
+ [在 Teradata FastLoad 作业脚本中使用配置替代变量 AWS SCT](#CHAP-converting-fastload-rsql-variables)
+ [使用以下命令转换 Teradata FastLoad 作业脚本 AWS SCT](#CHAP-converting-fastload-rsql-convert)
+ [使用管理 Teradata FastLoad 作业脚本 AWS SCT](#CHAP-converting-fastload-rsql-manage)
+ [使用以下命令为 Teradata FastLoad 作业脚本转换创建评估报告 AWS SCT](#CHAP-converting-fastload-rsql-assessment)
+ [使用编辑和保存转换后的 Teradata FastLoad 作业脚本 AWS SCT](#CHAP-converting-fastload-rsql-save)

## 向 AWS SCT 项目添加 FastLoad 作业脚本
<a name="CHAP-converting-fastload-rsql-create"></a>

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

**向 AWS SCT 项目添加 FastLoad 作业脚本**

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.  选择 **FastLoad**，打开上下文（右键单击）菜单，然后选择 “**加载脚本**”。

1.  输入源 Teradata FastLoad 作业脚本的位置，**然后**选择选择文件夹。

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

1. 请执行以下操作之一：
   + 如果您的 Teradata FastLoad 作业脚本不包含替代变量，请选择 “**无替代变量**”，然后选择 “**确定”** 将脚本添加到 AWS SCT 项目中。
   + 如果您的 Teradata FastLoad 作业脚本包含替代变量，请配置替代变量。有关更多信息，请参阅 [在 FastLoad 作业脚本中配置替代变量](#CHAP-converting-fastload-rsql-variables)。

## 在 Teradata FastLoad 作业脚本中使用配置替代变量 AWS SCT
<a name="CHAP-converting-fastload-rsql-variables"></a>

您的 Teradata FastLoad 作业脚本可能包含替代变量。例如，您可以使用带有替代变量的单个脚本将数据加载到不同的数据库。

在使用替换变量运行 FastLoad 作业脚本之前，请确保为所有变量分配值。为此，您可以使用其他工具或应用程序，例如 Bash 脚本、 UC4 (Automic) 等。

AWS SCT 只有在为替代变量赋值后才能解析和转换替代变量。在开始转换源 Teradata FastLoad 作业脚本之前，请确保为所有替代变量分配值。您可以使用 AWS SCT 在 Teradata 脚本中配置替代变量。

**在 FastLoad 作业脚本中配置替代变量**

1. 将源 Teradata FastLoad 作业脚本添加到 AWS SCT 项目中时，请选择使用**替代变量**。有关添加这些脚本的更多信息，请参阅 [向 AWS SCT 项目添加 FastLoad 作业脚本](#CHAP-converting-fastload-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. 在左侧面板中，展开**脚本**节点。选择 **FastLoad**，然后选择包含脚本的文件夹。打开上下文（右键单击）菜单，然后选择**替代变量**下的**导出变量**。

   此外，您可以导出一个脚本的替代变量。展开包含脚本的文件夹，选择脚本，打开上下文（右键单击）菜单，然后选择**替代变量**下的**导出变量**。

1. 输入逗号分隔值 (CSV) 文件名以保存替代变量，然后选择**保存**。

1. 打开此 CSV 文件并填写替代变量的值。

   根据操作系统的不同，CSV 文件 AWS SCT 使用不同的格式。文件中的值可以用引号括起来，也可以不用引号括起来。确保对替换变量的值使用与文件中其他值相同的格式。 AWS SCT 无法导入具有不同格式值的 CSV 文件。

1. 保存 CSV 文件。

1. 在左侧面板中，展开**脚本**节点。选择 **FastLoad**，然后选择您的脚本。打开上下文（右键单击）菜单，然后选择**替代变量**下的**导入变量**。

1. 选择 CSV 文件，然后选择**打开**。

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

## 使用以下命令转换 Teradata FastLoad 作业脚本 AWS SCT
<a name="CHAP-converting-fastload-rsql-convert"></a>

接下来，了解如何使用将 Teradata FastLoad 作业转换为 Amazon Redshift RSQL。 AWS SCT

**将 Teradata FastLoad 作业脚本转换为 Amazon Redshift RSQL**

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

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

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

1. 请执行以下操作之一：
   + 要转换单个 FastLoad 作业脚本，请展开**FastLoad**节点，选择要转换的脚本，然后从上下文（右键单击）菜单中选择 “**转换脚本**”。
   + 要转换多个脚本，请确保选择所有要转换的脚本。选择 **FastLoad**，打开上下文（右键单击）菜单，然后选择 “**转换脚本**”。然后，执行以下操作之一：
     + 如果您将源数据文件存储在 Amazon S3 上，请选择**源数据文件位置**的 **S3 对象路径**。

       为源数据文件输入 **Amazon S3 存储桶文件夹**和**清单文件 Amazon S3 存储桶**的值。
     + 如果您未将源数据文件存储在 Amazon S3 上，请选择**源数据文件位置**中的**主机地址**。

       为源数据文件输入**主机的 URL 或 IP 地址**、**主机用户登录名**和**清单文件 Amazon S3 存储桶**的值。

1. 选择**确定**。

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

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

## 使用管理 Teradata FastLoad 作业脚本 AWS SCT
<a name="CHAP-converting-fastload-rsql-manage"></a>

您可以添加多个 Teradata FastLoad 作业脚本或从项目中移除 FastLoad 作业脚本。 AWS SCT 

**向 AWS SCT 项目添加新的 FastLoad 作业脚本**

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

1. 选择**FastLoad**节点并打开上下文（右键单击）菜单。

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

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

**从 AWS SCT 项目中移除 FastLoad 作业脚本**

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

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

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

## 使用以下命令为 Teradata FastLoad 作业脚本转换创建评估报告 AWS SCT
<a name="CHAP-converting-fastload-rsql-assessment"></a>

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

**为 Terad FastLoad ata 作业创建脚本转换评估报告**

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

1. 选择要转换的脚本，打开上下文（右键单击）菜单，然后选择**创建报告**。

1. 查看**摘要**选项卡。

   “**摘要**” 选项卡显示 FastLoad 作业脚本评估报告中的执行摘要信息。它包括源脚本中所有 FastLoad 命令和 SQL 语句的转换结果。

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

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

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

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

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

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

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

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

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

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

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

# MultiLoad 使用以下命令将脚本转换为 Amazon Redshift RSQL AWS Schema Conversion Tool
<a name="CHAP-converting-multiload-rsql"></a>

您可以使用 AWS SCT 将 Teradata MultiLoad 作业脚本转换为 Amazon Redshift RSQL。

*Teradata MultiLoad 作业脚本*是一组用于批量维护 Teradata 数据库的命令。Teradata MultiLoad 导入任务可对多达五个不同的表和视图执行多种不同的插入、更新和删除操作。Teradata MultiLoad 删除任务可以从单个表中删除大量行。

AWS SCT 将 Teradata MultiLoad 命令和 SQL 语句转换为与 Amazon Redshift RSQL 兼容的格式。将 Teradata 数据库迁移到 Amazon Redshift 后，使用这些转换后的脚本管理 Amazon Redshift 数据库中的数据。

**Topics**
+ [向 AWS SCT 项目添加 MultiLoad 作业脚本](#CHAP-converting-multiload-rsql-create)
+ [在 Teradata MultiLoad 作业脚本中使用配置替代变量 AWS SCT](#CHAP-converting-multiload-rsql-variables)
+ [使用以下命令转换 Teradata MultiLoad 作业脚本 AWS SCT](#CHAP-converting-multiload-rsql-convert)
+ [使用管理 Teradata MultiLoad 作业脚本 AWS SCT](#CHAP-converting-multiload-rsql-manage)
+ [使用以下命令为 Teradata MultiLoad 作业脚本转换创建评估报告 AWS SCT](#CHAP-converting-multiload-rsql-assessment)
+ [使用编辑和保存转换后的 Teradata MultiLoad 作业脚本 AWS SCT](#CHAP-converting-multiload-rsql-save)

## 向 AWS SCT 项目添加 MultiLoad 作业脚本
<a name="CHAP-converting-multiload-rsql-create"></a>

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

**向 AWS SCT 项目添加 MultiLoad 作业脚本**

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.  选择 **MultiLoad**，打开上下文（右键单击）菜单，然后选择 “**加载脚本**”。

1.  输入源 Teradata MultiLoad 作业脚本的位置，**然后**选择选择文件夹。

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

1. 请执行以下操作之一：
   + 如果您的 Teradata MultiLoad 作业脚本不包含替代变量，请选择 “**无替代变量**”，然后选择 “**确定”** 将脚本添加到 AWS SCT 项目中。
   + 如果您的 Teradata MultiLoad 作业脚本包含替代变量，请配置替代变量。有关更多信息，请参阅 [在 MultiLoad 作业脚本中配置替代变量](#CHAP-converting-multiload-rsql-variables)。

## 在 Teradata MultiLoad 作业脚本中使用配置替代变量 AWS SCT
<a name="CHAP-converting-multiload-rsql-variables"></a>

您的 Teradata MultiLoad 作业脚本可能包含替代变量。例如，您可以使用带有替代变量的单个脚本将数据加载到不同的数据库。

在使用替换变量运行 MultiLoad 作业脚本之前，请确保为所有变量分配值。为此，您可以使用其他工具或应用程序，例如 Bash 脚本、 UC4 (Automic) 等。

AWS SCT 只有在为替代变量赋值后才能解析和转换替代变量。在开始转换源 Teradata MultiLoad 作业脚本之前，请确保为所有替代变量分配了值。您可以使用 AWS SCT 在 Teradata 脚本中配置替代变量。

**在 MultiLoad 作业脚本中配置替代变量**

1. 将源 Teradata MultiLoad 作业脚本添加到 AWS SCT 项目中时，请选择使用**替代变量**。有关添加这些脚本的更多信息，请参阅 [向 AWS SCT 项目添加 MultiLoad 作业脚本](#CHAP-converting-multiload-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 MultiLoad 作业脚本 AWS SCT
<a name="CHAP-converting-multiload-rsql-convert"></a>

接下来，了解如何使用将 Teradata MultiLoad 作业转换为 Amazon Redshift RSQL。 AWS SCT

**将 Teradata MultiLoad 作业脚本转换为 Amazon Redshift RSQL**

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

1. 配置替代变量并输入其值。有关更多信息，请参阅 [在 MultiLoad 作业脚本中配置替代变量](#CHAP-converting-multiload-rsql-variables)。

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

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

1. 请执行以下操作之一：
   + 如果您将源数据文件存储在 Amazon S3 上，请选择**源数据文件位置**的 **S3 对象路径**。

     为源数据文件输入 **Amazon S3 存储桶文件夹**和**清单文件 Amazon S3 存储桶**的值。
   + 如果您未将源数据文件存储在 Amazon S3 上，请选择**源数据文件位置**中的**主机地址**。

     为源数据文件输入**主机的 URL 或 IP 地址**、**主机用户登录名**和**清单文件的 Amazon S3 存储桶**。

1. 选择**确定**。

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

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

## 使用管理 Teradata MultiLoad 作业脚本 AWS SCT
<a name="CHAP-converting-multiload-rsql-manage"></a>

您可以添加多个 Teradata MultiLoad 作业脚本或从项目中移除 MultiLoad 作业脚本。 AWS SCT 

**向 AWS SCT 项目添加新的 MultiLoad 作业脚本**

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

1. 选择**MultiLoad**节点并打开上下文（右键单击）菜单。

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

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

**从 AWS SCT 项目中移除 MultiLoad 作业脚本**

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

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

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

## 使用以下命令为 Teradata MultiLoad 作业脚本转换创建评估报告 AWS SCT
<a name="CHAP-converting-multiload-rsql-assessment"></a>

*MultiLoad 作业脚本转换评估报告*提供有关转换 MultiLoad 命令和 SQL 语句的信息。将源脚本转换为 Amazon Redshift RSQL 命令和 Amazon Redshift 的 SQL 语句。评估报告包括无法转换的 MultiLoad 命令和 SQL 语 AWS SCT 句的操作项目。

**为 Terad MultiLoad ata 作业创建脚本转换评估报告**

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

1. 选择要创建评估报告的脚本，打开上下文（右键单击）菜单，然后选择**创建报告**。

1. 查看**摘要**选项卡。“**摘要**” 选项卡显示 MultiLoad 作业脚本评估报告中的执行摘要信息。它包括源脚本中所有 MultiLoad 命令和 SQL 语句的转换结果。

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

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

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

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

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

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

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

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

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

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

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