227
AWS Schema Conversion Tool 用户指南 版本 1.0

AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool用户指南版本 1.0

Page 2: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南

AWS Schema Conversion Tool: 用户指南Copyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南

Table of ContentsAWS Schema Conversion Tool是什么? ................................................................................................ 1

架构转换概述 ............................................................................................................................. 2反馈 .......................................................................................................................................... 2

安装、验证和更新 .............................................................................................................................. 4安装 AWS SCT ......................................................................................................................... 4

安装旧版本 ....................................................................................................................... 5验证 AWS SCT 文件下载 ............................................................................................................ 5

验证 AWS SCT 文件的校验和 .............................................................................................. 6在 Fedora 上验证 AWS SCT RPM 文件 ................................................................................ 6在 Ubuntu 上验证 AWS SCT DEB 文件 ................................................................................ 7在 Microsoft Windows 上验证 AWS SCT MSI 文件 ................................................................. 7在 Mac OS 上验证 AWS SCT 应用程序 ................................................................................ 7

安装所需的数据库驱动程序 .......................................................................................................... 8在 Linux 上安装 JDBC 驱动程序 .......................................................................................... 9在全局设置中存储驱动程序路径 ............................................................................................ 9

更新 AWS SCT ....................................................................................................................... 10使用 AWS SCT 用户界面 ................................................................................................................... 11

AWS SCT 项目窗口 ................................................................................................................. 11存储 AWS 配置文件 .................................................................................................................. 12

存储 AWS 凭证 ................................................................................................................ 13设置项目的默认配置文件 .................................................................................................... 14

存储数据库密码 ......................................................................................................................... 15将项目的 Union All 视图与分区表结合使用 ................................................................................... 15AWS SCT 树筛选器 .................................................................................................................. 15

...................................................................................................................................... 15为树筛选器导入文件列表 ................................................................................................... 17

隐藏架构 ................................................................................................................................. 17键盘快捷键 .............................................................................................................................. 18数据库迁移评估报告 ................................................................................................................. 19启动 SCT ............................................................................................................................... 22创建项目 ................................................................................................................................. 23转换架构 ................................................................................................................................. 23将转换后的架构应用于目标数据库实例 ......................................................................................... 25

入门 ................................................................................................................................................ 27AWS SCT 的源数据库 ...................................................................................................................... 28

将 Oracle 用作 AWS Schema Conversion Tool 的源 ...................................................................... 28将 Oracle 作为源所需的权限 .............................................................................................. 28连接到作为源的 Oracle ..................................................................................................... 29Oracle 到 PostgreSQL ...................................................................................................... 31Oracle 到 MySQL ............................................................................................................ 33Oracle 到 Amazon RDS Oracle .......................................................................................... 37

将 Microsoft SQL Server 用作 AWS Schema Conversion Tool 的源 ................................................. 39源:Microsoft SQL Server .................................................................................................. 40源:使用 Microsoft SQL Server 的 Windows 身份验证 ............................................................ 40连接到作为源的 SQL Server .............................................................................................. 41SQL Server 到 MySQL ..................................................................................................... 43SQL Server 到 PostgreSQL ............................................................................................... 44SQL Server 到 Amazon RDS SQL Server ........................................................................... 47

将 MySQL 用作 AWS Schema Conversion Tool 的源 .................................................................... 48源:MySQL ..................................................................................................................... 48连接到作为源的 MySQL .................................................................................................... 48

将 PostgreSQL 用作 AWS Schema Conversion Tool 的源 .............................................................. 50源:PostgreSQL .............................................................................................................. 50连接到作为源的 PostgreSQL .............................................................................................. 50

版本 1.0iii

Page 4: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南

将 Db2 LUW 用作 AWS Schema Conversion Tool 的源 ................................................................. 52源:Db2 LUW ................................................................................................................. 52连接到作为源的 Db2 LUW ................................................................................................. 54DB2LUW 到 PostgreSQL .................................................................................................. 55

将 Amazon Redshift 用作 AWS Schema Conversion Tool 的源 ....................................................... 56源:Amazon Redshift ....................................................................................................... 56连接到作为源的 Redshift ................................................................................................... 57

将 Oracle DW 用作 AWS Schema Conversion Tool 的源 ................................................................ 58源:Oracle 数据仓库 ........................................................................................................ 58连接到作为源的 OracleDW ................................................................................................ 58

将 Teradata 用作 AWS Schema Conversion Tool 的源 .................................................................. 60源:Teradata .................................................................................................................. 60连接到作为源的 Teradata .................................................................................................. 60

将 Netezza 用作 AWS Schema Conversion Tool 的源 ................................................................... 63源:Netezza ................................................................................................................... 63连接到作为源的 Netezza ................................................................................................... 64

将 Greenplum 用作 AWS Schema Conversion Tool 的源 ................................................................ 65源:Greenplum ................................................................................................................ 65连接到作为源的 Greenplum ............................................................................................... 65

将 Vertica 用作 AWS Schema Conversion Tool 的源 ..................................................................... 67源:Vertica ..................................................................................................................... 67连接到作为源的 Vertica ..................................................................................................... 67

将 Microsoft SQL Server DW 用作 AWS Schema Conversion Tool 的源 ............................................ 69源:Microsoft SQL Server 数据仓库 ..................................................................................... 69连接到作为源的 SQLServerDW .......................................................................................... 69

创建转换报告 .................................................................................................................................... 72迁移评估报告 ............................................................................................................................ 72

创建数据库迁移评估报告。 ................................................................................................ 73查看评估报告 .................................................................................................................. 73保存评估报告 .................................................................................................................. 75

WQF 迁移报告 ......................................................................................................................... 76设置 AWS WQF ............................................................................................................... 77准备批量导入 .................................................................................................................... 78创建报告 .......................................................................................................................... 80了解工作负载类别 .............................................................................................................. 83

转换数据库架构 ............................................................................................................................... 85创建映射规则 .......................................................................................................................... 86

创建映射规则 .................................................................................................................. 87创建对象的映射规则 ......................................................................................................... 88导出映射规则 .................................................................................................................... 88

转换架构 ................................................................................................................................. 88转换架构 ......................................................................................................................... 88编辑转换后的架构 ............................................................................................................ 90清除转换后的架构 ............................................................................................................ 91

处理手动转换 .......................................................................................................................... 92修改您的源架构 ............................................................................................................... 92修改您的目标架构 ............................................................................................................ 93

更新和刷新您的转换后架构 ........................................................................................................ 93保存和应用架构 ....................................................................................................................... 94

将转换后的架构保存到文件中 .............................................................................................. 94应用转换后的架构 ............................................................................................................ 95扩展包架构 ...................................................................................................................... 96

比较架构 ................................................................................................................................. 96相关的已转换对象 .................................................................................................................... 98

将数据仓库架构转换为 Amazon Redshift .............................................................................................. 99选择优化策略和规则 ................................................................................................................ 100收集或上传统计数据 ................................................................................................................ 100

版本 1.0iv

Page 5: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南

创建映射规则 ......................................................................................................................... 102创建映射规则 ................................................................................................................. 102查看对象的映射规则 ........................................................................................................ 103导出映射规则 ................................................................................................................. 103

转换架构 ................................................................................................................................ 103转换架构 ........................................................................................................................ 104编辑转换后的架构 ............................................................................................................ 105清除转换后的架构 ............................................................................................................ 106

管理和自定义键 ...................................................................................................................... 107处理手动转换 ......................................................................................................................... 108

修改您的源架构 .............................................................................................................. 108修改您的目标架构 ........................................................................................................... 109

更新和刷新您的转换后架构 ...................................................................................................... 109保存和应用架构 ...................................................................................................................... 110

将转换后的架构保存到文件中 ........................................................................................... 110应用转换后的架构 ........................................................................................................... 111扩展包架构 .................................................................................................................... 112Python 库 ..................................................................................................................... 113

优化 Amazon Redshift ............................................................................................................ 113优化您的 Amazon Redshift 数据库 .................................................................................... 113

将 ETL 流程转换为 AWS Glue .......................................................................................................... 115先决条件 ................................................................................................................................ 116AWS Glue 数据目录 ................................................................................................................ 116限制 ...................................................................................................................................... 116在 AWS SCT UI 中使用 AWS Glue 进行转换 ............................................................................... 117

步骤 1:创建新项目 ......................................................................................................... 117步骤 2:创建 AWS Glue 作业 ........................................................................................... 120

使用适用于 AWS Glue 的 Python API 进行转换 ........................................................................... 121步骤 1:创建数据库 ......................................................................................................... 121步骤 2:创建连接 ............................................................................................................ 121步骤 3:创建 AWS Glue 爬网程序 ..................................................................................... 122

将 AWS Schema Conversion Tool 与 AWS Database Migration Service 结合使用 ..................................... 125将 AWS SCT 复制代理与 AWS DMS 结合使用 ........................................................................... 125将 AWS SCT 数据提取代理与 AWS DMS 结合使用 ..................................................................... 125

使用数据提取代理 ............................................................................................................................ 126将本地数据仓库中的数据迁移到 Amazon Redshift ......................................................................... 126

先决条件设置 .................................................................................................................. 128安装代理 ........................................................................................................................ 129注册代理 ........................................................................................................................ 132隐藏和恢复 AWS SCT 代理的信息 ..................................................................................... 133创建数据提取筛选条件 ...................................................................................................... 134对数据进行排序 ............................................................................................................... 134创建、运行和监控 AWS SCT 任务 ..................................................................................... 135使用 AWS Snowball 设备提取数据 ..................................................................................... 137数据提取任务输出 ............................................................................................................ 142使用虚拟分区 .................................................................................................................. 143使用 LOB ....................................................................................................................... 146最佳实践和故障排除 ......................................................................................................... 147

将 Apache Cassandra 中的数据迁移到 Amazon DynamoDB ........................................................... 147从 Cassandra 迁移到 DynamoDB的先决条件 ....................................................................... 149创建新 AWS SCT 项目 .................................................................................................... 150创建克隆数据中心 ............................................................................................................ 153安装、配置和运行数据提取代理 ......................................................................................... 160将克隆数据中心中的数据迁移到 Amazon DynamoDB ............................................................ 163迁移后活动 ..................................................................................................................... 167

转换应用程序 SQL ........................................................................................................................... 168转换应用程序 SQL 概述 .......................................................................................................... 168

版本 1.0v

Page 6: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南

创建应用程序转换项目 ............................................................................................................. 168分析和转换您的 SQL 代码 ........................................................................................................ 171创建和使用评估报告 ................................................................................................................. 172

创建应用程序评估报告 ..................................................................................................... 172编辑和保存转换后的 SQL 代码 ................................................................................................. 173

使用扩展包 .................................................................................................................................... 174使用扩展包数据库架构 ............................................................................................................. 174扩展包的自定义 Python 库 ....................................................................................................... 175

使用 AWS 服务上传自定义 Python 库 ................................................................................ 175应用扩展包 .................................................................................................................... 175

扩展包中的 Lambda 函数 ......................................................................................................... 176使用 AWS 服务模拟数据库功能 ........................................................................................ 176应用扩展包 .................................................................................................................... 176

最佳实践 ....................................................................................................................................... 178常规内存管理和性能选项 ......................................................................................................... 178配置额外的内存 ...................................................................................................................... 178

疑难解答 ....................................................................................................................................... 179无法从 Oracle 源数据库加载对象 .............................................................................................. 179

发布说明 ........................................................................................................................................ 180发行说明 – 635 ....................................................................................................................... 180发行发说明 – 632 .................................................................................................................... 182发布说明 – 631 ....................................................................................................................... 183发布说明 – 630 ....................................................................................................................... 187发布说明 – 629 ....................................................................................................................... 187发布说明 – 628 ....................................................................................................................... 188发布说明 – 627 ....................................................................................................................... 191发布说明 – 626 ....................................................................................................................... 197发布说明 – 625 ....................................................................................................................... 199发布说明 – 624 ....................................................................................................................... 200发布说明 – 623 ....................................................................................................................... 200发布说明 – 622 ....................................................................................................................... 202发布说明 – 621 ....................................................................................................................... 203发布说明 – 620 ....................................................................................................................... 204发布说明 – 619 ....................................................................................................................... 205发布说明 – 618 ....................................................................................................................... 206发布说明 – 617 ....................................................................................................................... 207发布说明 – 616 ....................................................................................................................... 208发布说明 – 615 ....................................................................................................................... 209发布说明 – 614 ....................................................................................................................... 210发布说明 – 613 ....................................................................................................................... 212发布说明 – 612 ....................................................................................................................... 213发布说明 – 611 ....................................................................................................................... 214

文档历史记录 .................................................................................................................................. 216早期更新 ................................................................................................................................ 218

版本 1.0vi

Page 7: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南

AWS Schema Conversion Tool是什么?

您可以使用 AWS Schema Conversion Tool (AWS SCT) 将现有的数据库架构从一个数据库引擎转换为另一个数据库引擎。您可以转换关系 OLTP 架构或数据仓库架构。转换后的架构适用于 Amazon RelationalDatabase Service (Amazon RDS) MySQL 数据库实例、Amazon Aurora 数据库集群、Amazon RDSPostgreSQL 数据库实例或 Amazon Redshift 集群。转换后的架构也可用于 Amazon EC2 实例上的数据库或作为数据存储在 Amazon S3 存储桶中。

AWS SCT 支持多种行业标准,包括美国联邦信息处理标准 (FIPS),用于连接到 Amazon S3 存储桶或其他AWS 资源。AWS SCT 也符合美国联邦风险与授权管理计划 (FedRAMP) 的要求。有关 AWS 和合规性工作的详细信息,请参阅按合规性计划提供范围内 AWS 服务。

AWS SCT 支持以下 OLTP 转换。

源数据库 Amazon RDS 上的目标数据库

Microsoft SQL Server(版本 2008 及更高版本) Amazon Aurora 与 MySQL 的兼容性、与 PostgreSQL 兼容的 AmazonAurora、MariaDB 10.2 和 10.3、Microsoft SQLServer、MySQL、PostgreSQL

MySQL(版本 5.5 及更高版本) Aurora PostgreSQL、MySQL、PostgreSQL

您可以将架构和数据从 MySQL 迁移到 AuroraMySQL 数据库集群,而无需使用 AWS SCT。有关更多信息,请参阅将数据迁移到 Amazon Aurora 数据库集群。

Oracle(版本 10.2 及更高版本) Aurora MySQL、Aurora PostgreSQL、MariaDB10.2 和 10.3、MySQL、Oracle、PostgreSQL

PostgreSQL((版本 9.1 及更高版本) Aurora MySQL、MySQL、PostgreSQL

IBM Db2 LUW(版本 9.1、9.5、9.7、10.5 和11.1)

Aurora MySQL、MariaDB 10.2 和10.3、MySQL、PostgreSQL、Aurora PostgreSQL

Apache Cassandra(版本 2.0、3.0、3.1.1 和3.11.2)

Amazon DynamoDB

Sybase(16.0 和 15.7) Aurora MySQL、AuroraPostgreSQL、MySQL、PostgreSQL

AWS SCT 支持以下数据仓库转换。

源数据库 Amazon Redshift 上的目标数据库

Greenplum 数据库 (版本 4.3 及更高版本) Amazon Redshift

Microsoft SQL Server(版本 2008 及更高版本) Amazon Redshift

版本 1.01

Page 8: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南架构转换概述

源数据库 Amazon Redshift 上的目标数据库

Netezza (版本 7.0.3 及更高版本) Amazon Redshift

Oracle (版本 10 及更高版本) Amazon Redshift

Teradata (版本 13 及更高版本) Amazon Redshift

Vertica (版本 7.2.2 及更高版本) Amazon Redshift

架构转换概述AWS SCT 提供基于项目的用户界面,以便将您的源数据库的数据库架构自动转换为兼容目标 Amazon RDS实例的格式。如果无法自动转换源数据库中的架构,AWS SCT 将提供有关如何在目标 Amazon RDS 数据库中创建等效架构的指导。

有关如何安装 AWS SCT 的信息,请参阅 安装、验证和更新 AWS Schema Conversion Tool (p. 4)。

有关 AWS SCT 用户界面的简介,请参阅 使用 AWS Schema Conversion Tool 用户界面 (p. 11)。

有关转换过程的信息,请参阅使用 AWS Schema Conversion Tool 转换源数据库架构 (p. 85)。

除了将一个数据库引擎中的现有数据库架构转换到另一个引擎,AWS SCT 还提供了一些其他功能,可帮助您将数据和应用程序迁移到 AWS 云上:

• 您现在可以使用数据提取代理,以便从数据仓库中提取数据,以准备将其迁移到 Amazon Redshift。要管理数据提取代理,您可以使用 AWS SCT。有关更多信息,请参阅使用数据提取代理 (p. 126)。

• 您可以使用 AWS SCT 创建 AWS DMS 终端节点和任务。您可以从 AWS SCT 中运行和监控这些任务。有关更多信息,请参阅 将 AWS Schema Conversion Tool 与 AWS Database Migration Service 结合使用 (p. 125)。

• 在某些情况下,数据库功能无法转换为等效的 Amazon RDS 或 Amazon Redshift 功能。AWS SCT 扩展包向导可以帮助您安装 AWS Lambda 函数和 Python 库来模拟无法转换的功能。有关更多信息,请参阅使用AWS Schema Conversion Tool 扩展包 (p. 174)。

• 您可以使用 AWS SCT 来优化现有 Amazon Redshift 数据库。AWS SCT 建议使用排序键和分配键来优化您的数据库。有关更多信息,请参阅 使用 Amazon Redshift 优化 AWS Schema ConversionTool (p. 113)。

• 您可以使用 AWS SCT 将现有本地数据库架构复制到运行相同引擎的 Amazon RDS 数据库实例。您可以使用此功能来分析迁移到云和更改许可证类型的潜在成本节省。

• 您可以使用 AWS SCT 通过 C++、C#、Java 或其他应用程序代码转换 SQL。您可以查看、分析、编辑和保存转换后的 SQL 代码。有关更多信息,请参阅使用 AWS Schema Conversion Tool 转换应用程序SQL (p. 168)。

提供客户反馈您可以提供关于 AWS Schema Conversion Tool 的反馈。您可以提交错误报告、提交功能请求,也可以提供常规信息。

版本 1.02

Page 9: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南反馈

提供关于 AWS SCT 的反馈。

1. 开始 AWS Schema Conversion Tool.2. 打开 Help 菜单,然后选择 Leave Feedback。随即出现 Leave Feedback 对话框。3. 对于 Area,选择 Information、Bug report 或 Feature request。4. 对于 Source database,选择您的源数据库。如果您的反馈并不是针对特定数据库的,请选择 Any。5. 对于 Target database,选择您的目标数据库。如果您的反馈并不是针对特定数据库的,请选择 Any。6. 对于 Title,请输入反馈的标题。7. 对于 Message ,请输入您的反馈。8. 选择 Send 以提交您的反馈。

版本 1.03

Page 10: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南安装 AWS SCT

安装、验证和更新 AWS SchemaConversion Tool

AWS Schema Conversion Tool (AWS SCT) 是一个独立应用程序,提供了基于项目的用户界面。AWS SCT适用于 Fedora Linux、Mac OS、Microsoft Windows 和 Ubuntu Linux 15.04 版。仅在 64 位操作系统上支持AWS SCT。AWS SCT 也安装了 Java Runtime Environment (JRE) 8u45 版本。

为了确保您获得正确版本的 AWS SCT 分配文件,我们提供了您下载压缩文件之后的验证步骤。您可以使用提供的步骤验证文件。

主题• 安装 AWS SCT (p. 4)• 验证 AWS SCT 文件下载 (p. 5)• 安装所需的数据库驱动程序 (p. 8)• 更新 AWS SCT (p. 10)

安装 AWS SCT安装 AWS SCT

1. 使用适用于您的操作系统的链接下载包含 AWS SCT 安装程序的压缩文件。所有压缩文件的扩展名均为 .zip。当您提取 AWS SCT 安装程序文件时,它会使用适用于操作系统的相应格式。

• Microsoft Windows• Apple macOS• Ubuntu Linux (.deb)• Fedora Linux (.rpm)

2. 提取适用于您的操作系统的 AWS SCT 安装程序文件,如下所示。

操作系统 文件名称

Fedora Linux aws-schema-conversion-tool-1.0.build-number.x86_64.rpm

macOS AWS Schema Conversion Tool-1.0.build-number.dmg

Microsoft Windows AWS Schema Conversion Tool-1.0.build-number.msi

Ubuntu Linux aws-schema-conversion-tool-1.0.build-number.deb

3. 运行在上一步中提取的 AWS SCT 安装程序文件。使用适合您的操作系统的说明,如下所示。

操作系统 安装说明

Fedora Linux 在存储该下载文件的文件夹中运行以下命令:

sudo yum install aws-schema-conversion-tool-1.0.build-number.x86_64.rpm

版本 1.04

Page 11: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南安装旧版本

操作系统 安装说明

macOS 在 Finder 中,查找并解压缩 ZIP 文件。在解压缩文件夹中,打开 AWSSchema Conversion Tool-1.0.build-number.dmg。

要完成安装,请将 AWS Schema Conversion Tool.app 图标拖到Applications (应用程序) 文件夹中。

如果安装窗口打开,则请关闭。如果装载了安装驱动器,则请在 Finder 中弹出。

Microsoft Windows 双击该文件以运行安装程序。

Ubuntu Linux 在存储该下载文件的文件夹中运行以下命令:

sudo dpkg -i aws-schema-conversion-tool-1.0.build-number.deb

4. 安装适用于您的源数据库引擎和目标数据库引擎的 Java 数据库连接 (JDBC) 驱动程序。有关说明和下载链接,请参阅 安装所需的数据库驱动程序 (p. 8)。

安装 AWS SCT 的旧版本您可以下载并查安装 AWS SCT 的旧版本。使用以下格式下载旧版本。您必须使用此格式提供版本和操作系统信息。

https://d211wdu1froga6.cloudfront.net/builds/1.0/<version>/<OS>/aws-schema-conversion-tool-1.0.zip

例如,要下载 AWS SCT 版本 607,请执行以下操作:

• MacOS - https://d211wdu1froga6.cloudfront.net/builds/1.0/607/MacOS/aws-schema-conversion-tool-1.0.zip

• Windows - https://d211wdu1froga6.cloudfront.net/builds/1.0/607/Windows/aws-schema-conversion-tool-1.0.zip

• Ubuntu - https://d211wdu1froga6.cloudfront.net/builds/1.0/607/Ubuntu/aws-schema-conversion-tool-1.0.zip

• Fedora - https://d211wdu1froga6.cloudfront.net/builds/1.0/607/Fedora/aws-schema-conversion-tool-1.0.zip

验证 AWS SCT 文件下载您可以通过几种方法验证 AWS SCT 的分配文件。最简单的方法是将该文件的校验和与来自 AWS 的已发布校验和进行比较。为了提高安全性,您可以基于在其中安装文件的操作系统,使用以下过程验证分配文件。

本节包括以下主题。

主题• 验证 AWS SCT 文件的校验和 (p. 6)• 在 Fedora 上验证 AWS SCT RPM 文件 (p. 6)

版本 1.05

Page 12: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南验证 AWS SCT 文件的校验和

• 在 Ubuntu 上验证 AWS SCT DEB 文件 (p. 7)• 在 Microsoft Windows 上验证 AWS SCT MSI 文件 (p. 7)• 在 Mac OS 上验证 AWS SCT 应用程序 (p. 7)

验证 AWS SCT 文件的校验和为了检测下载或存储 AWS SCT 压缩文件时可能引入的任何错误,您可以将文件校验和与 AWS 提供的值进行比较。AWS 对校验和使用 SHA256 算法。

使用校验和验证 AWS SCT 分配文件

1. 使用“安装”部分中的链接下载 AWS SCT 分配文件。2. 下载名为 sha256Check.txt 的最新校验和文件。例如,该文件可能如下所示:

Fedora b4f5f66f91bfcc1b312e2827e960691c269a9002cd1371cf1841593f88cbb5e6Ubuntu 4315eb666449d4fcd95932351f00399adb6c6cf64b9f30adda2eec903c54eca4Windows 6e29679a3c53c5396a06d8d50f308981e4ec34bd0acd608874470700a0ae9a23MacOs ed56d3ab49309e92ac4d2ef439d35449ac1326f470c23dc5866e1bf0a60b0e67

3. 在包含分配文件的目录中对您的操作系统运行 SHA256 验证命令。例如,要在 Mac 操作系统上运行的命令如下所示:

shasum -a 256 aws-schema-conversion-tool-1.0.latest.zip

4. 将该命令的结果与 sha256Check.txt 文件中显示的值进行比较。这两个值应该匹配。

在 Fedora 上验证 AWS SCT RPM 文件除分配文件校验和之外,AWS 还提供了另一个级别的验证。分配文件中的所有 RPM 文件均由 AWS 私有密钥进行签名。公有 GPG 密钥可在 amazon.com.public.gpg-key 上查看。

在 Fedora 上验证 AWS SCT RPM 文件

1. 使用“安装”部分中的链接下载 AWS SCT 分配文件。2. 验证 AWS SCT 分配文件的校验和。3. 提取分配文件的内容。找到要验证的 RPM 文件。4. 从 amazon.com.public.gpg-key 下载 GPG 公有密钥。5. 使用以下命令将该公有密钥导入到您的 RPM 数据库 (确保您有相应的权限):

sudo rpm --import [email protected]

6. 运行以下命令检查导入是否成功:

rpm -q --qf "%{NAME}-%{VERSION}-%{RELEASE} \n %{SUMMARY} \n" gpg-pubkey-ea22abf4-5a21d30c

7. 运行以下命令检查 RPM 签名:

rpm --checksig -v aws-schema-conversion-tool-1.0.build number-1.x86_64.rpm

版本 1.06

Page 13: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南在 Ubuntu 上验证 AWS SCT DEB 文件

在 Ubuntu 上验证 AWS SCT DEB 文件除分配文件校验和之外,AWS 还提供了另一个级别的验证。分配文件中的所有 DEB 文件均由 GPG 分离签名进行签名。

在 Ubuntu 上验证 AWS SCT DEB 文件

1. 使用“安装”部分中的链接下载 AWS SCT 分配文件。2. 验证 AWS SCT 分配文件的校验和。3. 提取分配文件的内容。找到要验证的 DEB 文件。4. 从 aws-schema-conversion-tool-1.0.latest.deb.asc 下载分离签名。5. 从 amazon.com.public.gpg-key 下载 GPG 公有密钥。6. 运行以下命令导入 GPG 公有密钥:

gpg --import [email protected]

7. 运行以下命令验证签名:

gpg --verify aws-schema-conversion-tool-1.0.latest.deb.asc aws-schema-conversion-tool-1.0.build number.deb

在 Microsoft Windows 上验证 AWS SCT MSI 文件除分配文件校验和之外,AWS 还提供了另一个级别的验证。MSI 文件有一个数字签名,您可以进行检查,以确保它是由 AWS 签署的。

在 Windows 上验证 AWS SCT MSI 文件

1. 使用“安装”部分中的链接下载 AWS SCT 分配文件。2. 验证 AWS SCT 分配文件的校验和。3. 提取分配文件的内容。找到要验证的 MSI 文件。4. 在 Windows 资源管理器中,右键单击 MSI 文件并选择 Properties。5. 选择数字签名选项卡。6. 验证数字签名是否来自 Amazon Services LLC。

在 Mac OS 上验证 AWS SCT 应用程序除分配文件校验和之外,AWS 还提供了另一个级别的验证。在 Mac OS 上安装 AWS SCT 后,您可以使用以下过程验证该应用程序。

在 Mac OS 上验证 AWS SCT 应用程序

1. 使用“安装”部分中的链接下载 AWS SCT 分配文件。2. 验证 AWS SCT 分配文件的校验和。3. 提取分配文件的内容。4. 双击 DMG 文件。5. 安装 AWS SCT。6. 运行以下命令验证应用程序:

版本 1.07

Page 14: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南安装所需的数据库驱动程序

codesign -dvvv /Applications/AWS\ Schema\ Conversion\ Tool.app/

安装所需的数据库驱动程序为使 AWS SCT 正常运行,必须安装适用于源数据库引擎和目标数据库引擎的 JDBC 驱动程序。

下载驱动程序后,指定驱动程序文件的位置。有关更多信息,请参阅 在全局设置中存储驱动程序路径 (p. 9)。

您可以从以下位置下载数据库驱动程序。

Important

安装最新版本的可用驱动程序。下表中的版本是示例版本号。

数据库引擎 驱动程序 下载位置

Amazon Aurora(兼容 MySQL)

mysql-connector-java-5.1.6.jar https://www.mysql.com/products/connector/

AmazonAurora (兼容PostgreSQL)

postgresql-9.4-1204-jdbc42.jar https://jdbc.postgresql.org/download.html

AmazonRedshift

RedshiftJDBC41-1.1.10.1010.jar https://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html

Greenplum 数据库

postgresql-9.4-1204-jdbc42.jar https://jdbc.postgresql.org/

Maria 数据库 mariadb-java-client-2.4.0.jar https://mariadb.com/downloads/#connectors

Microsoft SQLServer

sqljdbc4.jar https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774

MySQL mysql-connector-java-5.1.6.jar https://www.mysql.com/products/connector/

Netezza nzjdbc.jar

使用客户端工具软件。安装 7.2.1版驱动程序,该版本向后兼容7.2.0 版数据仓库。

http://www.ibm.com/support/knowledgecenter/SSULQD_7.2.1/com.ibm.nz.datacon.doc/c_datacon_plg_overview.html

Oracle ojdbc7.jar

支持 7 版和更高版本的驱动程序。

http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html

PostgreSQL postgresql-9.4-1204-jdbc42.jar https://jdbc.postgresql.org/download.html

SAP ASE(Sybase ASE)

jconn4.jar 可用作随 SAP ASE 产品提供的适用于 SAPAdaptive Server Enterprise 16 的开发工具包的一部分。您可以通过以下网址下载此开发工具包的试用版:https://www.sap.com/developer/trials-downloads/additional-downloads/sdk-for-sap-adaptive-server-enterprise-16-13351.html

版本 1.08

Page 15: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南在 Linux 上安装 JDBC 驱动程序

数据库引擎 驱动程序 下载位置

Teradata terajdbc4.jar

tdgssconfig.jar

https://downloads.teradata.com/download/connectivity/jdbc-driver

Vertica vertica-jdbc-7.2.3-0_all

支持 7.2.0 版和更高版本的驱动程序。

https://my.vertica.com/download/vertica/client-drivers/

在 Linux 上安装 JDBC 驱动程序您可以使用以下步骤在 Linux 系统上安装适用于 AWS SCT 的 JDBC 驱动程序。

在 Linux 系统上安装 JDBC 驱动程序

1. 创建一个目录来存储 JDBC 驱动程序。

PROMPT>sudo mkdir –p /usr/local/jdbc-drivers

2. 使用如下所示的命令安装适用于您的数据库引擎的 JDBC 驱动程序。

数据库引擎 安装命令

Amazon Aurora (兼容MySQL) PROMPT> cd /usr/local/jdbc-drivers

PROMPT> sudo tar xzvf /tmp/mysql-connector-java-X.X.X.tar.gz

Amazon Aurora (兼容PostgreSQL) PROMPT> cd /usr/local/jdbc-drivers

PROMPT> sudo cp -a /tmp/postgresql-X.X.X.jre7.tar .

Microsoft SQL ServerPROMPT> cd /usr/local/jdbc-driversPROMPT> sudo tar xzvf /tmp/sqljdbc_X.X.X_enu.tar.gz

MySQLPROMPT> cd /usr/local/jdbc-driversPROMPT> sudo tar xzvf /tmp/mysql-connector-java-X.X.X.tar.gz

OraclePROMPT> cd /usr/local/jdbc-driversPROMPT> sudo mkdir oracle-jdbcPROMPT> cd oracle-jdbcPROMPT> sudo cp -a /tmp/ojdbc7.jar .

PostgreSQLPROMPT> cd /usr/local/jdbc-driversPROMPT> sudo cp -a /tmp/postgresql-X.X.X.jre7.tar .

在全局设置中存储驱动程序路径在您下载并安装所需的 JDBC 驱动程序后,可以在 AWS SCT 设置中全局设置驱动程序的位置。如果您未全局设置驱动程序的位置,当您连接到数据库时应用程序会要求您提供驱动程序的位置。

版本 1.09

Page 16: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南更新 AWS SCT

更新驱动程序文件位置

1. 在 AWS SCT 中,请选择 Settings (设置),然后选择 Global Settings (全局设置)。

2. 对于全局设置 ,请选择 Drivers。添加适用于您的源数据库引擎和目标 Amazon RDS 数据库实例数据库引擎的 JDBC 驱动程序的文件路径。

Note

对于 Teradata,您可以指定两个由分号分隔的驱动程序。

3. 添加完驱动程序路径之后,选择 OK。

更新 AWS SCTAWS 会定期更新 AWS SCT 的新特性和功能。如果您从旧版本更新,请创建新 AWS SCT 项目并重新转换所使用的任何数据库对象。

您可以查看是否有针对 AWS SCT 的更新。

检查针对 AWS SCT 的更新

1. 在 AWS SCT 中,选择 Help (帮助),然后选择 Check for Updates (检查更新)。2. 在 Check for Updates (检查更新) 对话框中,选择 What's New (新增功能)。如果此链接未出现,则表明

您拥有最新版本。

版本 1.010

Page 17: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南AWS SCT 项目窗口

使用 AWS Schema Conversion Tool用户界面

以下部分将帮助您使用 AWS SCT 用户界面。有关安装 AWS SCT 的信息,请参阅安装、验证和更新 AWSSchema Conversion Tool (p. 4)。

主题• AWS SCT 项目窗口 (p. 11)• 在 AWS Schema Conversion Tool 中使用 AWS 服务配置文件 (p. 12)• 存储数据库密码 (p. 15)• 将项目的 Union All 视图与分区表结合使用 (p. 15)• 使用 AWS SCT 树筛选器 (p. 15)• 在 AWS SCT 树视图中隐藏架构 (p. 17)• AWS SCT 的键盘快捷键 (p. 18)• 创建和查看数据库迁移评估报告 (p. 19)• 启动 AWS Schema Conversion Tool (p. 22)• 创建 AWS Schema Conversion Tool 项目 (p. 23)• 转换架构 (p. 23)• 将转换后的架构应用于目标数据库实例 (p. 25)

AWS SCT 项目窗口下图显示了当创建架构迁移项目,然后转换架构时在 AWS SCT 中所看到的内容。

1. 在左侧面板中,源数据库中的架构会显示在树状图中。您的数据库架构会“延迟加载”。 换而言之,当您从树状图中选择某个项时,AWS SCT 会从您的源数据库中获取并显示当前架构。

2. 在顶部的中间面板中,对于无法自动转换为目标数据库引擎的源数据库引擎,将显示针对其中架构元素的操作项。

3. 在右侧面板中,目标数据库实例中的架构会显示在树状图中。您的数据库架构会“延迟加载”。 换而言之,当您从树状图中选择某个项时,AWS SCT 会从您的目标数据库中获取并显示当前架构。

版本 1.011

Page 18: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南存储 AWS 配置文件

4. 在左下方窗格中,当您选择架构元素时,将显示描述源架构元素的属性以及用于在源数据库中创建该元素的 SQL 命令。

5. 在右下方窗格中,当您选择架构元素时,将显示描述目标架构元素的属性以及用于在目标数据库中创建该元素的 SQL 命令。您可以编辑此 SQL 命令并将更新的命令连同您的项目一起保存。

在 AWS Schema Conversion Tool 中使用 AWS 服务配置文件

您可以将 AWS 凭证存储在 AWS Schema Conversion Tool 中。当您使用与 AWS 服务集成的功能时,AWSSCT 会使用您的凭证。例如,AWS SCT 与 Amazon S3、AWS Lambda、Amazon Relational DatabaseService 和 AWS Database Migration Service 集成。

当您访问需要 AWS 凭证的功能时,AWS SCT 会要求您提供 AWS 凭证。您可以将凭证存储在全局应用程序设置中。当 AWS SCT 要求您提供凭证时,您可以选择存储的凭证。

您可以将不同的 AWS 凭证组存储在全局应用程序设置中。例如,您可以存储一组在测试场景中使用的凭证,并存储另一组在生产场景中使用的凭证。您也可以针对不同的 AWS 区域存储不同的凭证。

版本 1.012

Page 19: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南存储 AWS 凭证

存储 AWS 凭证使用以下过程可全局存储 AWS 凭证。

存储 AWS 凭证

1. 开始 AWS Schema Conversion Tool.2. 打开 Settings 菜单,然后选择 Global Settings。此时显示 Global Settings 对话框。

选择 AWS Service Profiles,如下所示。

3. 选择 Add new AWS Service Profile。4. 按下面所示输入您的 AWS 信息。

AWS SCT 选项 操作

Schema/DatabaseName

选择要筛选的架构和数据库名称。对于架构名称,您可以输入“%”以选择所有架构。

a. 对于 Profile name,请键入配置文件的名称。b. 对于 AWS Access Key,请键入您的 AWS 访问密钥。c. 对于 AWS Secret Key,请键入您的 AWS 私有密钥。d. 对于 Region,请为您的配置文件选择区域。e. 对于 S3 Bucket (S3 存储桶),请为您的配置文件选择 Amazon S3 存储桶。只有在使用连接到 S3

的功能时,才需要指定存储桶。f. 如果您需要符合联邦信息处理标准 (FIPS) 的安全要求,请选择 Use FIPS endpoint for S3。FIPS 终

端节点在以下 AWS 区域可用:

版本 1.013

Page 20: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南设置项目的默认配置文件

• 美国东部(弗吉尼亚北部)地区• 美国东部(俄亥俄)区域• 美国西部(加利福利亚北部)区域• 美国西部(俄勒冈)区域

5. 选择 Test Connection 以验证您的凭证是否正确以及是否有效。

此时显示 Test Connection 对话框。您可以查看每个连接到配置文件的服务的状态。Pass 表示配置文件可成功访问该服务。

6. 配置完配置文件后,请选择 Save 以保存您的配置文件,或选择 Cancel 以取消您的更改。7. 选择 OK 以关闭 Global Settings 对话框。

设置项目的默认配置文件您可以设置 AWS SCT 项目的默认配置文件。此操作可将配置文件中存储的 AWS 凭证与项目进行关联。打开项目,使用以下过程设置默认配置文件。

设置项目的默认配置文件

1. 开始 AWS Schema Conversion Tool.

版本 1.014

Page 21: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南存储数据库密码

2. 打开 Settings 菜单,然后选择 Project Settings。此时显示 Current project settings 对话框。3. 选择 Project Environment 选项卡。4. 对于 AWS Service Profile,请选择您要与项目关联的配置文件。5. 选择 OK 以关闭 Current project settings 对话框。您也可以选择 Cancel 取消所做更改。

存储数据库密码您可以将数据库密码或 SSL 证书存储在 AWS SCT 缓存中。要存储密码,请在创建连接时选择 StorePassword (存储密码)。

您可使用 seed.dat 文件中随机生成的令牌对密码进行加密,然后使用用户名将密码存储在缓存文件中。如果 seed.dat 文件丢失或损坏,数据库密码可能会错误地不进行加密。在这种情况下,连接将会失败。

将项目的 Union All 视图与分区表结合使用如果源表已被分区,AWS SCT 将创建 n 个目标表,其中 n 是源表上的分区的数量。AWS SCT 将基于目标表创建 UNION ALL 视图来表示源表。如果您使用 AWS SCT 数据提取器来迁移数据,源表将由单独的子任务并行提取和加载。

使用项目的 Union All 视图

1. 启动 AWS SCT。选择一个数据仓库 (OLAP) 项目。2. 选择 Settings (设置),然后选择 Project settings (项目设置)。随即出现 Current project settings 对话

框。3. 选择 Use Union all view (使用 Union All 视图)。4. 选择 OK (确定) 以保存设置并关闭 Current project settings (当前项目设置) 对话框。

使用 AWS SCT 树筛选器为了将数据从源迁移到目标,AWS SCT 会将所有元数据从源数据库和目标数据库加载到一个树结构中。此结构作为主项目窗口中的树视图显示在 AWS SCT 中。

某些数据库可能有大量对象在树结构中。您可以使用 AWS SCT 中的树筛选器在源和目标树结构中搜索对象。使用树筛选器时,您无需更改转换数据库时已转换过的对象。筛选器仅更改树状图中可以看到的内容。

树筛选器可与 AWS SCT 已预加载的对象结合使用。换而言之,AWS SCT 在搜索期间不会从数据库加载对象。此方法意味着树结构包含的对象通常比数据库中存在的更少。

对于树筛选器,请注意以下事项:

• 筛选器默认值为 ANY,这意味着筛选器使用名称搜索查找对象。• 当您选择一个或多个对象类型时,您只会在树中看到这些类型的对象。• 您可以使用筛选器掩码显示不同类型的符号,包括 Unicode、空格和特殊字符。“%”字符是任何符号的通配

符。• 您应用筛选器后,计数将仅显示已筛选对象数。

版本 1.015

Page 22: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南AWS SCT 树筛选器

创建树筛选器

1. 打开现有 AWS SCT 项目。2. 连接到您要将树筛选器应用于的数据库。3. 选择“筛选器”图标。

Note

“撤消筛选器”图标将灰显,因为目前没有应用筛选器。

4. 在 Tree Filter 对话框中输入以下信息。对于每个数据库引擎,该对话框中的选项都不同。

AWS SCT 选项 操作

Schema/DatabaseName

选择要筛选的架构和数据库名称。对于架构名称,您可以输入“%”以选择所有架构。

对象名 如果要按对象名称搜索,请选择对象名称。

Tree States 选择表状态。这些选项包含以下内容:

• 任意 – 显示所有表。• 已转换 – 仅显示已转换的表。• 未转换 – 仅显示尚未转换的表。

版本 1.016

Page 23: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南为树筛选器导入文件列表

AWS SCT 选项 操作• 具有操作 – 显示包含待处理操作的表。

对象类型列表 从您可以筛选的对象类型的列表中选择对象。展开树节点,以将更多对象加载到对象类型列表。

5. 选择 Apply。选择 Apply 后,“撤消筛选器”图标 (在“筛选器”图标旁边) 就会启用。如果要删除您应用的筛选器,请使用此图标。

6. 选择 Close 以关闭此对话框。

当您筛选显示在树状图中的架构时,无需更改转换架构时已转换过的对象。筛选器仅更改树状图中可以看到的内容。

为树筛选器导入文件列表您可以导入一个文件,该文件包含您希望树筛选器使用的名称或值。在此文件中,使用了以下命名约定:

• Object 是您要查找的对象的类型。• Database 是其中存在此对象的数据库的名称。• Schema 是其中存在此对象的架构的名称。• Name 是对象名称。

要导入的文件应具有以下格式:

• Object;Database;Schema;Name – 此格式对 Microsoft SQL Server、SQL 数据仓库和 SQL 的Netezza 方言是必需的。

• Object;Schema;Name – 将此格式用于其他 SQL 方言。

为树筛选器导入文件列表

1. 打开现有 AWS SCT 项目,连接到要将树筛选器应用于的数据库,然后选择“筛选器”图标。

2. 选择 Import File List 选项卡。3. 选择 Import File。4. 选择要导入的文件,然后选择 Open。5. 选择 Apply,然后选择 Close。

在 AWS SCT 树视图中隐藏架构利用树视图设置,您可以指定要在 AWS SCT 树视图中查看的架构和数据库。您可以隐藏空架构、空数据库、系统数据库以及用户定义的数据库和架构。

在树视图中隐藏数据库和架构

1. 打开 AWS SCT 项目。2. 连接到要在树视图中显示的数据存储。3. 依次选择 Settings、Global Settings 和 Tree View。

版本 1.017

Page 24: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南键盘快捷键

4. 在 Tree View Settings 部分,执行以下操作:

• 对于 Hide System Databases/Schemas,按名称选择系统数据库和架构以隐藏它们。• 对于 Hide User Defined Databases/Schemas,键入要隐藏的用户定义的架构和数据库的名称,然后

选择 Add。名称不区分大小写。• 选择 Reset to Default 以将树视图重置为默认设置。

5. 选择 OK。

AWS SCT 的键盘快捷键以下是您可以用于 AWS SCT 的键盘快捷键。

键盘快捷键 描述

Ctrl+N 创建新项目。

Ctrl+O 打开现有项目。

Ctrl+S 保存打开的项目。

Ctrl+W 使用向导创建新项目。

Ctrl+L 连接到源数据库。

Ctrl+R 连接到目标数据库。

版本 1.018

Page 25: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南数据库迁移评估报告

创建和查看数据库迁移评估报告数据库迁移评估报告总结了无法自动转换为目标 Amazon RDS 数据库实例引擎的架构的所有操作项。此外,该报告还包含为目标数据库实例编写等效代码所需工作量的估算。

您可以随时在您的项目中使用以下过程创建 (或更新) 数据库迁移评估报告。

创建和查看数据库迁移评估报告

1. 在显示源数据库架构的左侧面板中,选择要为其创建评估报告的架构对象。打开该对象的上下文 (右键单击) 菜单,然后选择 Create Report。

评估报告视图会打开。2. 选择 Action Items 选项卡。

Action Items 选项卡显示描述无法自动转换的架构的项目列表。从列表中选择其中一个操作项。AWSSCT 突出显示您架构中该操作项适用的项,如下所示。

版本 1.019

Page 26: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南数据库迁移评估报告

3. 选择 Summary 选项卡。

Summary 选项卡显示了来自数据库迁移评估报告的摘要信息。它显示已自动转换的项目数量和未自动转换的项目数量。该摘要还包含在目标数据库实例中创建与源数据库中架构等效的架构所需的时间的估算。

License Evaluation and Cloud Support (许可证评估和云支持) 部分包含关于将现有的本地数据库架构移到运行相同引擎的 Amazon RDS 数据库实例的信息。例如,如果您希望更改许可证类型,报告的此部分将告诉您应从当前数据库中删除哪些功能。

评估报告摘要的示例如下所示。

版本 1.020

Page 27: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南数据库迁移评估报告

4. 选择 Summary 选项卡,然后选择 Save to PDF。数据库迁移评估报告会被另存为 PDF 文件。PDF 文件包含摘要和操作项信息。

您也可以选择 Save to CSV 将报告另存为逗号分隔值 (CSV) 文件。CSV 文件仅包含操作项信息。

版本 1.021

Page 28: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南启动 SCT

启动 AWS Schema Conversion Tool要启动 AWS Schema Conversion Tool,请使用适用于您的操作系统的说明,如下所示。

操作系统 说明

Fedora Linux 运行以下命令:

/opt/AWSSchemaConversionTool/AWSSchemaConversionTool

Microsoft Windows 双击该应用程序的图标。

Ubuntu Linux 运行以下命令:

/opt/AWSSchemaConversionTool/AWSSchemaConversionTool

版本 1.022

Page 29: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建项目

创建 AWS Schema Conversion Tool 项目以下过程说明了如何创建 AWS Schema Conversion Tool 项目。

创建您的项目

1. 开始 AWS Schema Conversion Tool.2. 从 File 菜单中选择 New Project。将显示 New Project (新建项目) 对话框。

3. 添加以下初级项目信息。

对于该参数 执行该操作

Project Name 为您的项目键入一个名称,该项目本地存储在您的计算机上。

位置 键入您的本地项目文件的位置。

选择 Transactional Database (OLTP) 或 Data Warehouse(OLAP)。

源数据库引擎 (OLTP) 选择 Microsoft SQL Server、MySQL、Oracle 或PostgreSQL。

(OLAP) 选择 Amazon Redshift、Greenplum、Microsoft SQLServer DW、Netezza、Oracle DW、Teradata 或 Vertica。

目标数据库引擎 (OLTP) 选择 Amazon Aurora (MySQL compatible) (AmazonAurora (兼容 MySQL))、Amazon Aurora (PostgreSQL compatible)(Amazon Aurora (兼容 PostgreSQL))、Amazon RDS for MicrosoftSQL Server、Amazon RDS for MySQL、Amazon RDS for Oracle或 Amazon RDS for PostgreSQL。

(OLAP) 选择 Amazon Redshift。

4. 选择 OK (确定) 以创建您的 AWS SCT 项目。

转换架构使用以下过程转换架构。

版本 1.023

Page 30: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南转换架构

转换架构

1. 选择 View,然后选择 Main View。

2. 在显示源数据库架构的左侧面板中,选择要转换的架构对象。打开该对象的上下文 (右键单击) 菜单,然后选择 Convert schema。

3. 当 AWS SCT 完成架构转换时,您可以在项目右侧面板中查看提议的架构。

此时,没有任何架构应用于您的目标 Amazon RDS 数据库实例。计划的架构是您项目的一部分。如果选择一个转换后的架构项,则可在中下方面板中看到目标 Amazon RDS 数据库实例的计划架构命令。

您可以在此窗口中编辑架构。在您选择应用转换后的架构时,编辑后的架构会作为项目的一部分进行存储,并写入目标数据库实例。

版本 1.024

Page 31: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将转换后的架构应用于目标数据库实例

将转换后的架构应用于目标数据库实例您可以将转换后的数据库架构应用于目标 Amazon RDS 数据库实例。当该架构已应用于目标数据库实例后,您可以根据数据库迁移评估报告中的操作项来更新该架构。

Warning

此过程将覆盖现有的目标架构。请务必小心,不要意外覆盖架构。请务必小心,不要覆盖已修改的目标数据库实例中的架构,否则将覆盖这些更改。

将转换后的数据库架构应用于目标 Amazon RDS 数据库实例

1. 在显示目标数据库实例的计划架构的项目右侧面板中选择架构元素。2. 打开架构元素的上下文 (右键单击) 菜单,然后选择 Apply to database。

版本 1.025

Page 32: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将转换后的架构应用于目标数据库实例

转换后的架构将应用于目标数据库实例。

版本 1.026

Page 33: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南

AWS Schema Conversion Tool 入门您可以使用 AWS Schema Conversion Tool (AWS SCT) 将源数据库架构转换为在 Amazon Web Services(AWS) 上托管的数据库的架构。AWS SCT 应用程序提供基于项目的用户界面。几乎所有使用 AWS SCT 执行的工作都从以下步骤开始:

1. 安装 AWS SCT。有关更多信息,请参阅安装、验证和更新 AWS Schema Conversion Tool (p. 4)。2. 根据需要安装 AWS SCT 代理。只有某些迁移方案(例如异构源和目标之间的迁移)才需要 AWS SCT 代

理。有关更多信息,请参阅使用数据提取代理 (p. 126)。3. 熟悉 AWS SCT 的用户界面。有关更多信息,请参阅 使用 AWS Schema Conversion Tool 用户界

面 (p. 11)。4. 创建 AWS SCT 项目。连接到您的源数据库和目标数据库。有关连接到源数据库的更多信息,请参阅AWS

Schema Conversion Tool 的源数据库 (p. 28)。5. 运行,然后查看数据库迁移评估报告。有关评估报告的更多信息,请参阅 创建和查看数据库迁移评估报

告 (p. 19)。6. 转换源数据库架构。转换有几个方面是需要记住的,例如如何对待不转换的项目,以及如何映射应按特定

方式转换的项目。有关转换源架构的更多信息,请参阅使用 AWS Schema Conversion Tool 转换源数据库架构 (p. 85)。

如果您要转换数据仓库架构,则在进行转换之前还有一些方面需要考虑。有关更多信息,请参阅 使用Amazon Redshift 将数据仓库架构转换为 AWS Schema Conversion Tool (p. 99)。

7. 将架构转换应用于您的目标。有关应用源架构转换的更多信息,请参阅 使用 AWS Schema ConversionTool 用户界面 (p. 11)。

8. AWS SCT 还可用于转换 SQL 存储过程和其他应用程序代码。有关更多信息,请参阅 使用 AWS SchemaConversion Tool 转换应用程序 SQL (p. 168)。

您还可以使用 AWS SCT 将数据从源数据库迁移到 Amazon 管理的数据库。

版本 1.027

Page 34: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 Oracle 用作 AWS Schema Conversion Tool 的源

AWS Schema Conversion Tool 的源数据库

AWS Schema Conversion Tool (AWS SCT) 可以将以下源数据库架构转换为目标数据库。选择下面的链接,以了解有关必需权限的信息、连接信息以及 AWS SCT 可以转换哪些内容以用于目标数据库的信息。

主题• 将 Oracle 用作 AWS Schema Conversion Tool 的源 (p. 28)• 将 Microsoft SQL Server 用作 AWS Schema Conversion Tool 的源 (p. 39)• 将 MySQL 用作 AWS Schema Conversion Tool 的源 (p. 48)• 将 PostgreSQL 用作 AWS Schema Conversion Tool 的源 (p. 50)• 将 Db2 LUW 用作 AWS Schema Conversion Tool 的源 (p. 52)• 将 Amazon Redshift 用作 AWS Schema Conversion Tool 的源 (p. 56)• 将 Oracle DW 用作 AWS Schema Conversion Tool 的源 (p. 58)• 将 Teradata 用作 AWS Schema Conversion Tool 的源 (p. 60)• 将 Netezza 用作 AWS Schema Conversion Tool 的源 (p. 63)• 将 Greenplum 用作 AWS Schema Conversion Tool 的源 (p. 65)• 将 Vertica 用作 AWS Schema Conversion Tool 的源 (p. 67)• 将 Microsoft SQL Server DW 用作 AWS Schema Conversion Tool 的源 (p. 69)

将 Oracle 用作 AWS Schema Conversion Tool 的源您可以使用 AWS SCT 将数据从 Oracle 转换到以下目标:

• Amazon RDS for MySQL• Amazon Aurora (MySQL)• Amazon RDS for PostgreSQL• Amazon Aurora (PostgreSQL)• Amazon RDS for Oracle

当源是 Oracle 数据库时,可以将注释转换为 PostgreSQL 等数据库中适当的格式。AWS SCT 可以转换表、视图和列上的注释。注释可以包括撇号;当转换 SQL 语句时,AWS 将撇号加倍,就像对字符串文本一样。

有关详细信息,请参阅以下章节:

主题• 当使用 Oracle 作为源数据库时所需的权限 (p. 28)• 连接到作为源数据库的 Oracle (p. 29)• 将 Oracle 转换为 Amazon RDS for PostgreSQL 或 Amazon Aurora (PostgreSQL) (p. 31)• 将 Oracle 转换为 Amazon RDS for MySQL 或 Amazon Aurora (MySQL) (p. 33)• 将 Oracle 转换为 Amazon RDS for Oracle (p. 37)

当使用 Oracle 作为源数据库时所需的权限下面列出了将 Oracle 用作源所需的权限:

版本 1.028

Page 35: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 Oracle

• CONNECT• SELECT_CATALOG_ROLE• SELECT ANY DICTIONARY• SELECT on SYS.USER$ TO <sct_user>

连接到作为源数据库的 Oracle使用 AWS Schema Conversion Tool 按照以下过程连接到 Oracle 源数据库。

连接到 Oracle 源数据库

1. 在 AWS Schema Conversion Tool 中,选择 Connect to Oracle (连接到 Oracle)。

随即出现 Connect to Oracle 对话框。

2. 提供 Oracle 源数据库连接信息。使用下表中的说明。

对于该参数 执行该操作

类型 选择连接到您的数据库的连接类型。根据类型,提供以下附加信息:

• SID• Server name:键入源数据库服务器的 DNS 名称或 IP 地址。• Server port:键入用于连接到源数据库服务器的端口。• Oracle SID:Oracle 系统 ID (SID)。要查找 Oracle SID,请向

您的 Oracle 数据库提交以下查询:

版本 1.029

Page 36: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 Oracle

对于该参数 执行该操作SELECT sys_context('userenv','instance_name')AS SID FROM dual;

• 服务名称• Server name:键入源数据库服务器的 DNS 名称或 IP 地址。• Server port:键入用于连接到源数据库服务器的端口。• Service Name:要连接到的 Oracle 服务的名称。

• TNS Alias• TNS file path:包含透明网络底层 (TNS) 名称连接信息的文件

的路径。• TNS file path:用于连接到源数据库的此文件中的 TNS 别名。

• TNS 连接标识符• TNS identifier:已注册 TNS 连接信息的标识符。

User name 和 Password 键入用于连接到源数据库服务器的用户名和密码。

当您首次连接到 Oracle 数据库时,您必须输入到 Oracle 驱动程序文件 (ojdbc7.jar) 的路径。您可以在 http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html 中下载该文件。您必须在免费的 Oracle 技术网络网站上注册,才能完成下载。AWS SCT 使用选定的驱动程序进行任何未来的 Oracle 数据库连接。可以使用全局设置中的“驱动程序”选项卡修改驱动程序路径。

Note

只有在创建项目或在项目中选择 Connect to source (连接到 source) 选项(其中 source 是源数据库)时,AWSSCT 才会使用该密码连接到源数据库。为了避免公开源数据库的密码,AWS SCT 不会存储该密码。如果您关闭了AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。

Use SSL 如果您要使用 SSL 连接到数据库,请选择此选项。根据需要在SSL 选项卡上提供以下附加信息:

• SSL Authentication:选择此选项以使用证书的 SSL 身份验证进行连接,而不是用户名和密码。

• Trust Store:包含证书的信任存储的位置。• Trust Store Password:信任存储的密码。• Key Store:包含私有密钥和证书的密钥存储的位置。如果选中

SSL Authentication,此值是必需的,否则为可选值。• Trust Store Password:密钥存储的密码。如果选中 SSL

Authentication,此值是必需的,否则为可选值。

Store Password AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。

版本 1.030

Page 37: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南Oracle 到 PostgreSQL

对于该参数 执行该操作

Oracle Driver Path 键入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 安装所需的数据库驱动程序 (p. 8)。

如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径 (p. 9)。

3. 选择 Test Connection 以验证是否可以成功地连接到源数据库。4. 选择 OK 以连接到源数据库。

将 Oracle 转换为 Amazon RDS for PostgreSQL 或Amazon Aurora (PostgreSQL)AWS SCT 可以将 SQL* Plus 文件转换到 PSQL。评估报告显示 AWS SCT 如何将 SQL* Plus 文件转换到 PSQL。要将 SQL* Plus 文件转换到 PSQL,请参阅使用 AWS Schema Conversion Tool 转换应用程序SQL (p. 168)。

本节将介绍以下主题:

主题• 将 Oracle ROWID 转换为 PostgreSQL (p. 31)• 将 Dynamic SQL for Oracle 转换到 PostgreSQL 的迁移 (p. 32)• 将 Oracle 分区转换为 PostgreSQL 版本 10 分区 (p. 33)

当将 Oracle 系统对象转换到 PostgreSQL 时,AWS SCT 会转换以下内容:

Oracle 系统对象 描述 转换的 PostgreSQL 对象

V$VERSION 在 Oracle 数据库中显示核心库组件的版本号 aws_oracle_ext.v$version

V$INSTANCE 显示当前实例状态的视图。 aws_oracle_ext.v$instance

在 AWS SCT 迁移架构对象和存储的数据之后,可以将工作流从源数据库重定向到目标。在大多数情况下,工作流使用数据库序列生成的唯一数字 (如写入目标数据库的数据的主键和唯一键) 以保持完整约束。这意味着,已迁移序列的新值和迁移前生成的值不得重叠。

对于 Oracle 到 PostgreSQL 迁移项目,可确保没有重叠。为此,请选择 Project Settings (项目设置) 的Conversion settings(转换设置) 选项卡中的 Populate converted sequences with the last values generated onthe source side (使用源端生成的最新值填充转换序列) 选项。

将 Oracle ROWID 转换为 PostgreSQL在 Oracle 数据库中,ROWID 伪列包含表行的地址。ROWID 伪列对于 Oracle 是唯一的,因此 AWS SCT 可以在您转换为 PostgreSQL 时将 ROWID 伪列转换为数据列。此转换可让您保留 ROWID 信息。

当 AWS SCT 转换 ROWID 伪列时,它将使用数据类型 BIGINT 创建一个数据列。如果主键不存在,AWSSCT 会将 ROWID 列设置为主键。如果主键存在,AWS SCT 将设置具有唯一约束的 ROWID 列。

版本 1.031

Page 38: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南Oracle 到 PostgreSQL

为项目的 Oracle ROWID 创建数据列

1. 启动 AWS SCT。选择具有 Oracle 的项目作为源。2. 选择 Settings (设置),然后选择 Project settings (项目设置)。随即出现 Current project settings 对话

框。3. 为 Generate row ID (生成行 ID) 选择 true。4. 选择 OK (确定) 以保存设置并关闭 Current project settings (当前项目设置) 对话框。

将 Dynamic SQL for Oracle 转换到 PostgreSQL 的迁移Dynamic SQL 是一种编程方法,可用于在 PL/SQL 代码内部运行数据定义语言 (DDL) 语句。当您在开发过程中不清楚确切的文本或对象标识符时,您还可以使用 Dynamic SQL 在运行时生成并运行 SQL 语句。AWSSCT 可以将用于 Oracle 数据库的 Dynamic SQL 语句转换为 PostgreSQL 中的相似语句。

将 Oracle Dynamic SQL 转换为 PostgreSQL SQL

1. 创建一个 Oracle 到 PostgreSQL 的迁移项目。2. 连接到源数据库和目标数据库。3. 在 Oracle 源树视图中选择一个存储过程。该过程应包含对 DBMS_SQL Oracle 包的引用或者具有

EXECUTE IMMEDIATE 语句。4. 对于 Actions (操作),选择 Convert Schema (转换架构) 并同意替换现有的对象。以下屏幕截图显示了

Oracle 过程下面的已转换过程。

版本 1.032

Page 39: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南Oracle 到 MySQL

将 Oracle 分区转换为 PostgreSQL 版本 10 分区在 PostgreSQL 版本 10 及更高版本中,可以指定如何将表划分为称为分区 的部分。划分的表称为分区表。该表的规范包括分区方法和用作分区键的列或表达式的列表。

插入分区表的所有行都将基于分区键的值路由到分区之一。每个分区都有一组按分区边界定义的数据。当前支持的分区方法包括范围和列表。在范围分区中,将为每个分区分配键的范围。在列表分区中,将为每个分区分配键的列表。

将架构从 Oracle 数据库转换为 PostgreSQL 数据库时,AWS SCT 可模拟分区和子分区。Oracle 子分区将转换为具有表作为其父范围表达式的 PostgreSQL 分区。将按原始 Oracle 子分区中的范围表达式为表分区。

AWS SCT 当前支持以下分区方案:

• Range• List• 范围到范围• 列表到列表• 范围到列表• 列表到范围• 不带时区的时间戳

当前不支持以下方案:

• 哈希• 范围到哈希• 列表到哈希• Interval• 参考• 系统

到 PostgreSQL 版本 10 的分区转换的部分已知问题包括:

• 只能按列为非 null 列分区。• DEFAULT 不是分区值的可取值。• 不支持基于带时区的时间戳的分区。• 不支持基于哈希函数的分区。• 无法更新分区表中的列,因为更新值可能导致值转至不同的分区。AWS SCT 仅支持在分区表中删除和插

入列。• 不支持外键进出分区表。

将 Oracle 转换为 Amazon RDS for MySQL 或 AmazonAurora (MySQL)以下是一些对于 GOTO 语句要考虑的事项:

• 一个 GOTO 语句和一个标签可用于更改语句的运行顺序。将跳过接在 GOTO 语句后的任何 PL/SQL 语句并且处理将在标签处继续。GOTO 语句和标签可在过程、批处理或语句块中的任意位置使用。GOTO 语句也可以嵌套。

版本 1.033

Page 40: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南Oracle 到 MySQL

MySQL 不使用 GOTO 语句。当 AWS SCT 转换包含 GOTO 语句的代码时,它将转换此语句以使用BEGIN…END 或 LOOP…END LOOP 语句。在下表中可以找到有关 AWS SCT 如何转换 GOTO 语句的示例。

Oracle GOTO 语句和转换后的 MySQL 语句

Oracle 语句 MySQL 语句

BEGIN .... statement1; .... GOTO label1; statement2; .... label1: Statement3; ....END

BEGIN label1: BEGIN .... statement1; .... LEAVE label1; statement2; .... END; Statement3; ....END

BEGIN .... statement1; .... label1: statement2; .... GOTO label1; statement3; .... statement4; ....END

BEGIN .... statement1; .... label1: LOOP statement2; .... ITERATE label1; LEAVE label1; END LOOP; statement3; .... statement4; ....END

BEGIN .... statement1; .... label1: statement2; .... statement3; .... statement4; ....END

BEGIN .... statement1; .... label1: BEGIN statement2; .... statement3; .... statement4; .... END; END

版本 1.034

Page 41: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南Oracle 到 MySQL

将 Oracle 中的 WITH 语句转换为 Amazon RDS for MySQL 或Amazon Aurora (MySQL)您可使用 Oracle 中的 WITH 子句 (subquery_factoring) 将名称 (query_name) 分配到子查询块。然后,您可以通过指定查询名称来引用查询中的子查询块多位置。如果子查询块不包含链接或参数(本地、过程、函数、程序包),则 AWS SCT 会将子句转换为视图或临时表。

将子句转换为临时表的好处是:重复引用子查询可能更有效,因为数据很容易从临时表中检索出来,而不是每个被引用要求提供。这可以通过使用额外的视图或临时表来模拟。视图名称使用格式<procedure_name>$<subselect_alias>。

Oracle WITH 语句和转换后的 MySQL 语句

Oracle 语句 MySQL 语句

CREATE PROCEDURE TEST_ORA_PG.P_WITH_SELECT_VARIABLE_01 (p_state IN NUMBER)AS l_dept_id NUMBER := 1; BEGINFOR cur IN (WITH dept_empl(id, name, surname, lastname, state, dept_id) AS ( SELECT id, name, surname, lastname, state, dept_id FROM test_ora_pg.dept_employees WHERE state = p_state AND dept_id = l_dept_id) SELECT id,state FROM dept_empl ORDER BY id) LOOP NULL;END LOOP;

CREATE PROCEDURE test_ora_pg.P_WITH_SELECT_VARIABLE_01(IN par_P_STATE DOUBLE)BEGIN DECLARE var_l_dept_id DOUBLE DEFAULT 1; DECLARE var$id VARCHAR (8000); DECLARE var$state VARCHAR (8000); DECLARE done INT DEFAULT FALSE; DECLARE cur CURSOR FOR SELECT ID, STATE FROM (SELECT ID, NAME, SURNAME, LASTNAME, STATE, DEPT_ID FROM TEST_ORA_PG.DEPT_EMPLOYEES WHERE STATE = par_p_state AND DEPT_ID = var_l_dept_id) AS dept_empl ORDER BY ID; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done := TRUE; OPEN cur;

read_label: LOOP FETCH cur INTO var$id, var$state;

IF done THEN LEAVE read_label; END IF;

BEGIN END; END LOOP; CLOSE cur;END;

CREATE PROCEDURE TEST_ORA_PG.P_WITH_SELECT_REGULAR_MULT_01AS BEGIN

FOR cur IN ( WITH dept_empl AS ( SELECT id, name, surname,

CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept_empl `(id, name, surname, lastname, state, dept_id)AS(SELECT id, name, surname, lastname, state, dept_id FROM test_ora_pg.dept_employees WHERE state = 1);

版本 1.035

Page 42: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南Oracle 到 MySQL

Oracle 语句 MySQL 语句 lastname, state, dept_id FROM test_ora_pg.dept_employees WHERE state = 1), dept AS (SELECT id deptid, parent_id, name deptname FROM test_ora_pg.department ) SELECT dept_empl.*,dept.* FROM dept_empl, dept WHERE dept_empl.dept_id = dept.deptid ) LOOP NULL; END LOOP;

CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept `(deptid, parent_id,deptname)AS(SELECT id deptid, parent_id, name deptname FROM test_ora_pg.department);

CREATE PROCEDURE test_ora_pg.P_WITH_SELECT_REGULAR_MULT_01()BEGIN DECLARE var$ID DOUBLE; DECLARE var$NAME VARCHAR (30); DECLARE var$SURNAME VARCHAR (30); DECLARE var$LASTNAME VARCHAR (30); DECLARE var$STATE DOUBLE; DECLARE var$DEPT_ID DOUBLE; DECLARE var$deptid DOUBLE; DECLARE var$PARENT_ID DOUBLE; DECLARE var$deptname VARCHAR (200); DECLARE done INT DEFAULT FALSE; DECLARE cur CURSOR FOR SELECT dept_empl.*, dept.* FROM TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept_empl ` AS dept_empl, TEST_ORA_PG.`P_WITH_SELECT_REGULAR_MULT_01$dept ` AS dept WHERE dept_empl.DEPT_ID = dept.DEPTID; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done := TRUE; OPEN cur;

read_label: LOOP FETCH cur INTO var$ID, var$NAME, var$SURNAME, var$LASTNAME, var$STATE, var$DEPT_ID, var$deptid, var$PARENT_ID, var$deptname;

IF done THEN LEAVE read_label; END IF;

BEGIN END; END LOOP; CLOSE cur;END;

call test_ora_pg.P_WITH_SELECT_REGULAR_MULT_01()

版本 1.036

Page 43: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南Oracle 到 Amazon RDS Oracle

Oracle 语句 MySQL 语句

CREATE PROCEDURE TEST_ORA_PG.P_WITH_SELECT_VAR_CROSS_02(p_state IN NUMBER)AS l_dept_id NUMBER := 10;BEGIN FOR cur IN ( WITH emp AS (SELECT id, name, surname, lastname, state, dept_id FROM test_ora_pg.dept_employees WHERE dept_id > 10 ), active_emp AS ( SELECT id FROM emp WHERE emp.state = p_state ) SELECT * FROM active_emp ) LOOP NULL; END LOOP; END;

CREATE VIEW TEST_ORA_PG.`P_WITH_SELECT_VAR_CROSS_01$emp `(id, name, surname, lastname, state, dept_id)AS(SELECT id, name, surname, lastname, state, dept_id FROM TEST_ORA_PG.DEPT_EMPLOYEES WHERE DEPT_ID > 10);

CREATE PROCEDURE test_ora_pg.P_WITH_SELECT_VAR_CROSS_02(IN par_P_STATE DOUBLE)BEGIN DECLARE var_l_dept_id DOUBLE DEFAULT 10; DECLARE var$ID DOUBLE; DECLARE done INT DEFAULT FALSE; DECLARE cur CURSOR FOR SELECT * FROM (SELECT ID FROM TEST_ORA_PG. `P_WITH_SELECT_VAR_CROSS_01$emp` AS emp WHERE emp.STATE = par_p_state) AS active_emp; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done := TRUE; OPEN cur;

read_label: LOOP FETCH cur INTO var$ID;

IF done THEN LEAVE read_label; END IF;

BEGIN END; END LOOP; CLOSE cur;END;

将 Oracle 转换为 Amazon RDS for Oracle将 Oracle 架构和代码迁移到 Amazon RDS for Oracle 时要考虑的一些事项:

• AWS SCT 可以将目录对象添加到对象树中。目录对象是表示服务器文件系统上的物理目录的逻辑结构。可以使用包含软件包 (如 DBMS_LOB、UTL_FILE、DBMS_FILE_TRANSFER、DATAPUMP 实用程序等)的目录对象。

版本 1.037

Page 44: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南Oracle 到 Amazon RDS Oracle

• AWS SCT 支持将 Oracle 表空间转换为 Amazon RDS for Oracle 数据库实例。Oracle 将数据存储在表空间中 (按逻辑) 和与相应表空间关联的数据文件中 (以物理方式)。在 Oracle 中,可以创建包含数据文件名的表空间。Amazon RDS 仅支持数据文件、日志文件和控制文件的 Oracle Managed Files (OMF)。AWSSCT 在转换过程中创建所需的数据文件。

• AWS SCT 可以转换服务器级别的角色和权限。Oracle 数据库引擎采用了基于角色的安全机制。角色是可授予用户或从用户撤消的特权的集合。Amazon RDS 中名为 DBA 的预定义角色一般允许 Oracle 数据库引擎上的所有管理特权。对于使用 Oracle 引擎的 Amazon RDS 数据库实例,数据库管理员角色没有以下特权:• 更改数据库• 更改系统• 创建任何目录• 授予任何特权• 授予任何角色• 创建外部任务

您可以向 Amazon RDS for Oracle 用户角色授予所有其他权限,包括高级筛选和列权限。• AWS SCT 支持将 Oracle 作业转换为可在 Amazon RDS for Oracle 中运行的作业。转换存在一些限制,其

中包括:• 不支持可执行文件作业。• 不支持使用 ANYDATA 数据类型作为参数的计划作业。

• Oracle Real Application Clusters (RAC) One Node 是在 Oracle Database 11g Release 2 中引入的 OracleDatabase Enterprise Edition 的选件。Amazon RDS for Oracle 不支持 RAC 功能。为了实现高可用性,可使用 Amazon RDS 多可用区。

在多可用区部署中,Amazon RDS 会自动在不同可用区中预置和维护同步备用副本。主数据库实例可以跨可用区同步复制到备用副本。此功能提供数据冗余,消除 I/O 冻结,并在系统备份期间将延迟峰值降至最小。

• Oracle Spatial 提供了一个 SQL 架构和一些功能,可帮助在 Oracle 数据库中存储、检索、更新和查询空间数据集合。Oracle Locator 提供支持基于 Internet 和无线服务的应用程序与基于合作伙伴的 GIS 解决方案通常所需的功能。Oracle Locator 是 Oracle Spatial 的有限子集。

要使用 Oracle Spatial 和 Oracle Locator 功能,您必须将 SPATIAL 选项或 LOCATOR 选项(互斥)添加到数据库实例的选项组。

在 Amazon RDS for Oracle 数据库实例上使用 Oracle Spatial 和 Oracle Locator 有一些先决条件:• 该实例应使用 Oracle Enterprise Edition 12.1.0.2 .v6 版或更高版本,或者 11.2.0.4.v10 版或更高版本。• 该实例应在 Virtual Private Cloud (VPC) 内。• 该实例应该是可支持 Oracle 功能的数据库实例类。例如,db.m1.small、db.t1.micro、db.t2.micro 或

db.t2.small 数据库实例类不支持 Oracle Spatial。有关更多信息,请参阅对 Oracle 的数据库实例类支持。

• 实例必须已启用“Auto Minor Version Upgrade (自动次要版本升级)”选项。如果存在 CVSS 评分为 9+ 的安全漏洞或其他公布的安全漏洞,则 Amazon RDS 会将数据库实例更新为最新的 Oracle PSU。有关更多信息,请参阅

适用于 Oracle 数据库实例的设置。• 如果您的数据库实例为 11.2.0.4.v10 版或更高版本,则必须安装 XMLDB 选项。有关更多信息,请参阅

Oracle XML DB。• 您应该拥有 Oracle 中的 Oracle Spatial 许可证。有关更多信息,请参阅 Oracle 文档中的 Oracle Spatial

和图表。• Data Guard 随 Oracle Database Enterprise Edition 提供。为了实现高可用性,可使用 Amazon RDS 多可

用区功能。 版本 1.038

Page 45: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 Microsoft SQL Server 用作 AWS

Schema Conversion Tool 的源

在多可用区部署中,Amazon RDS 会自动在不同可用区中预置和维护同步备用副本。主数据库实例可以跨可用区同步复制到备用副本。此功能提供数据冗余,消除 I/O 冻结,并在系统备份期间将延迟峰值降至最小。

• AWS SCT 支持在迁移至 Amazon RDS for Oracle 时转换 Oracle DBMS_SCHEDULER 对象。AWS SCT评估报告会指明计划对象是否可以转换。有关将计划对象用于 Amazon RDS 的详细信息,请参阅 AmazonRDS 文档。

• 对于 Oracle 到 Amazon RDS for Oracle 转换,支持数据库链接。数据库链接是一个数据库中的架构对象,允许您访问另一个数据库上的对象。另一个数据库不需要是 Oracle 数据库。但是,要访问非 Oracle数据库,您必须使用 Oracle 异构服务。

一旦您创建数据库链接,便可以使用 SQL 语句中的链接来引用其他数据库中的表、视图和 PL/SQL 对象。要使用数据库链接,请将 @dblink 附加到表、视图或 PL/SQL 对象名称。您可以使用 SELECT 语句查询其他数据库中的表或视图。有关使用 Oracle 数据库链接的更多信息,请参阅 Oracle 文档。

有关将数据库链接与 Amazon RDS 一起使用的更多信息,请参阅 Amazon RDS 文档。• AWS SCT 评估报告提供了转换的服务器指标。这些有关 Oracle 实例的指标包括:

• 目标数据库实例的计算和内存容量。• 不支持的 Oracle 功能(如统一审核和 Amazon RDS 不支持的 Real Application Clusters)。• 磁盘读写负载• 平均总磁盘吞吐量• 服务器信息,如服务器名称、操作系统、主机名和字符集。

将 Oracle 转换为 Amazon RDS for Oracle 的限制将 Oracle 架构和代码迁移到 Amazon RDS for Oracle 时应考虑的一些限制:

• Amazon RDS 中名为 DBA 的预定义角色一般允许 Oracle 数据库引擎上的所有管理特权。对于使用Oracle 引擎的 Amazon RDS 数据库实例,数据库管理员角色没有以下特权:• 更改数据库• 更改系统• 创建任何目录• 授予任何特权• 授予任何角色• 创建外部任务

可以向 Oracle RDS 用户角色授予所有其他特权。• Amazon RDS for Oracle 不支持 Oracle Unified Auditing。Amazon RDS for Oracle 支持传统审核和使用

DBMS_FGA 程序包的精细审核。• Amazon RDS for Oracle 不支持更改数据捕获 (CDC)。要在数据库迁移期间或之后执行 CDC,请使用

AWS Database Migration Service。

将 Microsoft SQL Server 用作 AWS SchemaConversion Tool 的源

您可以使用 AWS SCT 将架构和应用程序代码转换为从 SQL Server 转换到以下目标:

• Amazon RDS for MySQL• Amazon Aurora (MySQL)

版本 1.039

Page 46: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南源:Microsoft SQL Server

• Amazon RDS for PostgreSQL• Amazon Aurora (PostgreSQL)• Amazon RDS for SQL Server

有关详细信息,请参阅以下章节:

主题• 当使用 Microsoft SQL Server 作为源时所需的权限 (p. 40)• 当将 Microsoft SQL Server 用作源时使用 Windows 身份验证 (p. 40)• 连接到作为源的 SQL Server (p. 41)• 将 SQL Server 转换为 MySQL (p. 43)• 将 SQL Server 转换为 PostgreSQL (p. 44)• 将 SQL Server 转换为 Amazon RDS for SQL Server (p. 47)

当使用 Microsoft SQL Server 作为源时所需的权限下面列出了将 Microsoft SQL Server 用作源所需的权限:

• VIEW DEFINITION• VIEW DATABASE STATE

对要转换其架构的每个数据库重复这种授权。

当将 Microsoft SQL Server 用作源时使用 Windows 身份验证如果您的应用程序在基于 Windows 的 Intranet 上运行,您可能可以使用 Windows 身份验证进行数据库访问。Windows 身份验证使用在操作系统线程上建立的当前 Windows 身份来访问 SQL Server 数据库。然后,您可以将 Windows 身份映射到 SQL Server 数据库和权限。要使用 Windows 身份验证连接到 SQLServer,您必须指定您的应用程序正在使用的 Windows 身份。您还必须向 Windows 身份授予访问 SQLServer 数据库的权限。

SQL Server 有两种访问模式:Windows 身份验证模式和混合模式。Windows 身份验证模式启用Windows 身份验证,禁用 SQL Server 身份验证。混合模式启用 Windows 身份验证和 SQL Server 身份验证。Windows 身份验证是始终可用的,无法禁用。有关 Windows 身份验证的更多信息,请参阅 MicrosoftWindows 文档。

在 TEST_DB 中创建用户的可能示例如下所示

USE [TEST_DB]CREATE USER [TestUser] FOR LOGIN [TestDomain\TestUser]GRANT VIEW DEFINITION TO [TestUser]GRANT VIEW DATABASE STATE TO [TestUser]

将 Windows 身份验证与 JDBC 连接一起使用在非 Windows 操作系统上使用 JDBC 驱动程序时,驱动程序不支持 Windows 身份验证。当从非 Windows操作系统连接到 SQL Server 时,Windows 身份验证凭证,例如用户名和密码。在这种情况下,应用程序必须改而使用 SQL Server 身份验证

版本 1.040

Page 47: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 SQL Server

在 JDBC 连接字符串中,必须指定参数 integratedSecurity ,才能使用 Windows 身份验证进行连接。JDBC 驱动程序通过 integratedSecurity 连接字符串参数在 Windows 操作系统上支持集成Windows 身份验证 。

使用集成身份验证

1. 安装 JDBC 驱动程序。2. 将 sqljdbc_auth.dll 文件复制到装有 JDBC 驱动程序的计算机上的 Windows 系统路径上的目录

中。

sqljdbc_auth.dll 文件安装在以下位置:

<安装目录>\sqljdbc_<版本>\<语言>\auth\

当您尝试使用 Windows 身份验证建立与 SQL Server 数据库的连接时,您可能会收到错误:此驱动程序未针对集成身份验证进行配置。通过执行以下操作可以解决此问题:

• 需要声明两个指向 JDBC 安装路径的变量:

- 变量名称:SQLJDBC_HOME;变量值:D:\lib\JDBC4.1\enu (其中存在您的 sqljdbc4.jar);

- 变量名称:SQLJDBC_AUTH_HOME;变量值:D\lib\auth\x86\JDBC4.1\enu (如果您运行的是 32 位操作系统) 或 D\lib\auth\x64\JDBC4.1\enu (如果您运行的是 64 位操作系统)。这是您的 sqljdbc_auth.dll 所在的位置。

• 将 sqljdbc_auth.dll 复制到您的 JDK/JRE 正在运行的文件夹中。您可以复制到 lib 文件夹、bin 文件夹等。我复制到以下文件夹:

[JDK_INSTALLED_PATH]\bin; [JDK_INSTALLED_PATH]\jre\bin; [JDK_INSTALLED_PATH]\jre\lib; [JDK_INSTALLED_PATH]\lib;

• 确保在您的 jdbc 库文件夹中,您只有 SQLJDBC4.jar。请从该文件夹中删除其他 sqljdbc*.jar 文件 (或复制到其他文件夹)。如果您要将驱动程序作为程序的一部分添加,请确保只添加 SQLJDBC4.jar 作为要使用的驱动程序。

• 在您的应用程序所在的文件夹中复制 sqljdbc_auth.dll 文件。

Note

如果您运行的是 32 位 Java 虚拟机 (JVM),请使用 x86 文件夹中的 sqljdbc_auth.dll 文件,即使操作系统是 x64 版本也是如此。如果您是在 x64 处理器上运行 64 位 JVM ,请使用 x64 文件夹中的sqljdbc_auth.dll 文件。

当您连接到 SQL Server 数据库时,您可以为 Authentication 选项选择 Windows Authentication 或 SQLServer Authentication。

连接到作为源的 SQL Server使用 AWS Schema Conversion Tool 按照以下过程连接到 Microsoft SQL Server 源数据库。

连接到 Microsoft SQL Server 源数据库

1. 在 AWS Schema Conversion Tool 中,选择 Connect to Microsoft SQL Server (连接到 Microsoft SQLServer)。

版本 1.041

Page 48: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 SQL Server

随即出现 Connect to Microsoft SQL Server 对话框。

2. 提供 Microsoft SQL Server 源数据库连接信息。使用下表中的说明。

对于该参数 请执行该操作

服务器名称 键入源数据库服务器的域名服务 (DNS) 名称或 IP 地址。

Server port 键入用于连接到源数据库服务器的端口。

Instance name 键入 SQL Server 数据库的实例名称。要找到实例名称,请在您的SQL Server 数据库上运行查询 SELECT @@servername;。

User name 和 Password 键入用于连接到源数据库服务器的用户名和密码。

Note

只有在创建项目或在项目中选择 Connect to source (连接到 source) 选项(其中 source 是源数据库)时,AWSSCT 才会使用该密码连接到源数据库。为了避免公开源数据库的密码,AWS SCT 不会存储该密码。如果您关闭了AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。

Use SSL 如果您要使用安全套接字层 (SSL) 连接到数据库,请选择此选项。根据需要在 SSL 选项卡上提供以下附加信息:

• Trust Server Certificate:选择此选项以信任服务器证书。• Trust Store:包含证书的信任存储的位置。

版本 1.042

Page 49: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南SQL Server 到 MySQL

对于该参数 请执行该操作• Trust Store Password:信任存储的密码。

Store Password AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。

Sql Server Driver Path 键入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 安装所需的数据库驱动程序 (p. 8)。

如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径 (p. 9)。

3. 选择 Test Connection 以验证是否可以成功地连接到源数据库。4. 选择 OK 以连接到源数据库。

将 SQL Server 转换为 MySQL将 SQL Server 架构迁移到 MySQL 时要考虑的一些事项:

• MySQL 不支持 MERGE 语句。但是,AWS SCT 在转换过程中可通过使用 INSERT ON DUPLICATE KEY子句以及 UPDATE FROM 和 DELETE FROM 语句来模拟 MERGE 语句。

对于使用 INSERT ON DUPLICATE KEY 的正确模拟,请确保目标 MySQL 数据库上存在唯一约束或主键。

• 一个 GOTO 语句和一个标签可用于更改语句的运行顺序。将跳过接在 GOTO 语句后的任何 Transact-SQL语句并且处理将在标签处继续。GOTO 语句和标签可在过程、批处理或语句块中的任意位置使用。GOTO语句也可以嵌套。

MySQL 不使用 GOTO 语句。当 AWS SCT 转换包含 GOTO 语句的代码时,它将转换此语句以使用BEGIN…END 或 LOOP…END LOOP 语句。在下表中可以找到有关 AWS SCT 如何转换 GOTO 语句的示例。

SQL Server 语句 MySQL 语句

BEGIN .... statement1; .... GOTO label1; statement2; .... label1: Statement3; ....END

BEGIN label1: BEGIN .... statement1; .... LEAVE label1; statement2; .... END; Statement3; ....END

BEGIN .... statement1; .... label1: statement2;

BEGIN .... statement1; .... label1: LOOP

版本 1.043

Page 50: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南SQL Server 到 PostgreSQL

SQL Server 语句 MySQL 语句 .... GOTO label1; statement3; .... statement4; ....END

statement2; .... ITERATE label1; LEAVE label1; END LOOP; statement3; .... statement4; ....END

BEGIN .... statement1; .... label1: statement2; .... statement3; .... statement4; ....END

BEGIN .... statement1; .... label1: BEGIN statement2; .... statement3; .... statement4; .... END; END

• MySQL 不支持多语句表值函数。AWS SCT 通过创建临时表并重写语句以使用这些临时表,在转换过程中模拟表值函数。

将 SQL Server 转换为 PostgreSQL将 SQL Server 架构迁移到 ToPostgreSQL 时要考虑的一些事项:

• 在 PostgreSQL 中,架构中所有对象 (包括索引) 的名称必须是唯一的。索引名称在基表的架构中必须是唯一的。在 SQL Server 中,索引名称可与其他表的相同。

为确保索引名称的唯一性,AWS SCT 在索引名称不唯一时提供了生成唯一索引名称的选项。为此,请选择项目属性中的 Generate unique index names (生成唯一索引名称)。默认情况下,此选项处于启用状态。如果此选项处于启用状态,将使用格式 IX_table_name_index_name 创建唯一索引名称。如果此选项处于禁用状态,则不会更改索引名称。

• 一个 GOTO 语句和一个标签可用于更改语句的运行顺序。将跳过接在 GOTO 语句后的任何 Transact-SQL语句并且处理将在标签处继续。GOTO 语句和标签可在过程、批处理或语句块中的任意位置使用。GOTO语句也可以嵌套。

PostgreSQL 不使用 GOTO 语句。当 AWS SCT 转换包含 GOTO 语句的代码时,它将转换此语句以使用BEGIN…END 或 LOOP…END LOOP 语句。在下表中可以找到有关 AWS SCT 如何转换 GOTO 语句的示例。

SQL Server GOTO 语句和已转换的 PostgreSQL 语句

SQL Server 语句 PostgreSQL 语句

BEGIN .... statement1; ....

BEGIN label1: BEGIN ....

版本 1.044

Page 51: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南SQL Server 到 PostgreSQL

SQL Server 语句 PostgreSQL 语句 GOTO label1; statement2; .... label1: Statement3; ....END

statement1; .... EXIT label1; statement2; .... END; Statement3; ....END

BEGIN .... statement1; .... label1: statement2; .... GOTO label1; statement3; .... statement4; ....END

BEGIN .... statement1; .... label1: LOOP statement2; .... CONTINUE label1; EXIT label1; END LOOP; statement3; .... statement4; ....END

BEGIN .... statement1; .... label1: statement2; .... statement3; .... statement4; ....END

BEGIN .... statement1; .... label1: BEGIN statement2; .... statement3; .... statement4; .... END; END

• PostgreSQL 不支持 MERGE 语句。AWS SCT 将用以下方式模拟 MERGE 语句的行为:• 通过 INSERT ON CONFLICT 结构。• 通过使用 UPDATE FROM DML 语句,例如没有 WHEN NOT MATCHED 子句的 MERGE。• 通过使用 CURSOR(如带有 DELETE 子句的 MERGE)或复杂的 MERGE ON 条件语句。

• 当 Amazon RDS 为目标时,AWS SCT 可将数据库触发器添加到对象树中。• 当 Amazon RDS 为目标时,AWS SCT 可将服务器级别触发器添加到对象树中。• 当 Amazon RDS 为目标时,AWS SCT 可将链接服务器添加到对象树中。• 在从 Microsoft SQL Server 迁移到 PostgreSQL 时,内置的 SUSER_SNAME 函数进行如下转换:

• SUSER_SNAME – 返回与安全标识号 (SID) 关联的登录名。• SUSER_SNAME(<server_user_sid>) – 不受支持。• SUSER_SNAME() CURRENT_USER – 返回当前执行上下文的用户名。• SUSER_SNAME(NULL) – 返回 NULL。

• 支持转换表值函数。表值函数返回一个表,并且可在查询中代替表。

版本 1.045

Page 52: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南SQL Server 到 PostgreSQL

• PATINDEX 返回指定表达式中模式的第一个匹配项的起始位置,如果在所有有效的文本和字符数据类型上找不到模式,则返回零。当从 SQL Server 转换到 Amazon RDS for PostgreSQL 时,AWS SCT 会将使用PATINDEX 的应用程序代码替换为 aws_sqlserver_ext.patindex(<模式字符>, <表达式字符变体>)。

• 在 SQL Server 中,用户定义的表类型是表示表结构的定义的类型。您可使用用户定义的表类型来声明已存储的过程或函数的表值参数,或者声明要在某个批次中或已存储的过程或函数中使用的表变量。AWSSCT 模拟通过创建临时表在 PostgreSQL 中模拟了此类型。

当从 SQL Server 转换到 PostgreSQL 时,AWS SCT 会将 SQL Server 系统对象转换为 PostgreSQL 中的可识别对象。下表显示了如何转换系统对象。

>MS SQL Server 使用案例 PostgreSQL 替换

SYS.SCHEMAS AWS_SQLSERVER_EXT.SYS_SCHEMAS

SYS.TABLES AWS_SQLSERVER_EXT.SYS_TABLES

SYS.VIEWS AWS_SQLSERVER_EXT.SYS_VIEWS

SYS.ALL_VIEWS AWS_SQLSERVER_EXT.SYS_ALL_VIEWS

SYS.TYPES AWS_SQLSERVER_EXT.SYS_TYPES

SYS.COLUMNS AWS_SQLSERVER_EXT.SYS_COLUMNS

SYS.ALL_COLUMNS AWS_SQLSERVER_EXT.SYS_ALL_COLUMNS

SYS.FOREIGN_KEYS AWS_SQLSERVER_EXT.SYS_FOREIGN_KEYS

SYS.SYSFOREIGNKEYS AWS_SQLSERVER_EXT.SYS_SYSFOREIGNKEYS

SYS.FOREIGN_KEY_COLUMNSAWS_SQLSERVER_EXT.SYS_FOREIGN_KEY_COLUMNS

SYS.KEY_CONSTRAINTS AWS_SQLSERVER_EXT.SYS_KEY_CONSTRAINTS

SYS.IDENTITY_COLUMNS AWS_SQLSERVER_EXT.SYS_IDENTITY_COLUMNS

SYS.PROCEDURES AWS_SQLSERVER_EXT.SYS_PROCEDURES

SYS.INDEXES AWS_SQLSERVER_EXT.SYS_INDEXES

SYS.SYSINDEXES AWS_SQLSERVER_EXT.SYS_SYSINDEXES

SYS.OBJECTS AWS_SQLSERVER_EXT.SYS_OBJECTS

SYS.ALL_OBJECTS AWS_SQLSERVER_EXT.SYS_ALL_OBJECTS

SYS.SYSOBJECTS AWS_SQLSERVER_EXT.SYS_SYSOBJECTS

SYS.SQL_MODULES AWS_SQLSERVER_EXT.SYS_SQL_MODULES

SYS.DATABASES AWS_SQLSERVER_EXT.SYS_DATABASES

INFORMATION_SCHEMA.SCHEMATAAWS_SQLSERVER_EXT.INFORMATION_SCHEMA_SCHEMATA

INFORMATION_SCHEMA.VIEWSAWS_SQLSERVER_EXT.INFORMATION_SCHEMA_VIEWS

INFORMATION_SCHEMA.TABLESAWS_SQLSERVER_EXT.INFORMATION_SCHEMA_TABLES

INFORMATION_SCHEMA.COLUMNSAWS_SQLSERVER_EXT.INFORMATION_SCHEMA_COLUMNS

INFORMATION_SCHEMA.CHECK_CONSTRAINTSAWS_SQLSERVER_EXT.INFORMATION_SCHEMA_CHECK_CONSTRAINTS

版本 1.046

Page 53: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南SQL Server 到 Amazon RDS SQL Server

>MS SQL Server 使用案例 PostgreSQL 替换

INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTSAWS_SQLSERVER_EXT.INFORMATION_SCHEMA_REFERENTIAL_CONSTRAINTS

INFORMATION_SCHEMA.TABLE_CONSTRAINTSAWS_SQLSERVER_EXT.INFORMATION_SCHEMA_TABLE_CONSTRAINTS

INFORMATION_SCHEMA.KEY_COLUMN_USAGEAWS_SQLSERVER_EXT.INFORMATION_SCHEMA_KEY_COLUMN_USAGE

INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGEAWS_SQLSERVER_EXT.INFORMATION_SCHEMA_CONSTRAINT_TABLE_USAGE

INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGEAWS_SQLSERVER_EXT.INFORMATION_SCHEMA_CONSTRAINT_COLUMN_USAGE

INFORMATION_SCHEMA.ROUTINESAWS_SQLSERVER_EXT.INFORMATION_SCHEMA_ROUTINES

SYS.SYSPROCESSES AWS_SQLSERVER_EXT.SYS_SYSPROCESSES

sys.system_objects AWS_SQLSERVER_EXT.SYS_SYSTEM_OBJECTS

将 SQL Server 分区转换为 PostgreSQL 版本 10 分区在 SQL Server 中,使用分区函数创建分区。从 SQL Server 分区表转换为 PostgreSQL 版本 10 分区表时,请注意一些潜在问题:

• SQL Server 允许使用无 NOT NULL 约束的列为表分区。在此情况下,所有 NULL 值都将转到最左边的分区。PostgreSQL 不支持 RANGE 分区采用 NULL 值。

• SQL Server 允许为分区表创建主键和唯一键。对于 PostgreSQL,直接为每个分区创建主键或唯一键。因此,迁移到 PostgreSQL 时,必须从父表中删除 PRIMARY 或 UNIQUE KEY 约束。生成的键名称采用格式

<original_key_name>_<partition_number>。• SQL Server 允许创建进出分区表的外键约束。PostgreSQL 不支持引用分区表的外键。此

外,PostgreSQL 不支持从一个分区表到另一个表的外键引用。• SQL Server 允许为分区表创建索引。对于 PostgreSQL,应直接为每个分区创建一个索

引。因此,迁移到 PostgreSQL 时,索引必须从其父表中删除。生成的索引名称采用格式<original_index_name>_<partition_number>。

• PostgreSQL 不支持分区索引。

将 SQL Server 转换为 Amazon RDS for SQL Server将 SQL Server 架构和代码迁移到 Amazon RDS for SQL Server 时要考虑的一些事项:

• AWS SCT 可以转换 SQL Server 代理以在 Amazon RDS for SQL Server 数据库实例上提供日程、提醒和任务。转换后,可以使用 Amazon RDS for SQL Server 数据库实例作为 SQL Server Reporting Service(SSRS)、SQL Server Analysis Services (SSAS) 和 SQL Server Integration Services (SSIS) 的数据源。不能在此数据库实例上运行这些服务。

• Amazon RDS 当前不支持 SQL Server Service Broker 或其他需要您运行 CREATE ENDPOINT 命令的 T-SQL 终端节点。

• Amazon RDS 对链接的服务器具有有限的支持。当转换使用链接的服务器的 SQL Server 应用程序代码时,AWS SCT 会转换应用程序代码,但您应在运行转换后的代码之前检查使用链接服务器的对象的行为。

• AWS SCT 评估报告提供了转换的服务器指标。这些有关 SQL Server 实例的指标包括:• 使用了数据镜像。• 配置了 SQL Server 日志传输。

版本 1.047

Page 54: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 MySQL 用作 AWS Schema Conversion Tool 的源

• 使用了故障转移群集。• 配置了数据库邮件。Amazon RDS 不支持数据库邮件。• 使用了全文搜索服务。Amazon RDS for SQL Server 具有有限的全文搜索,并且不支持语义搜索。• 安装了 Data Quality Service (DQS)。Amazon RDS 不支持 DQS,因此我们建议您在 Amazon EC2 实

例上安装 SQL Server。

将 MySQL 用作 AWS Schema Conversion Tool 的源

您可以使用 AWS SCT 将架构和应用程序代码转换为从 MySQL 转换到以下目标:

• Amazon RDS for PostgreSQL• Amazon Aurora (PostgreSQL)• Amazon RDS for MySQL• Amazon Aurora (MySQL)

有关详细信息,请参阅以下章节:

主题• 将 MySQL 用作源数据库的权限 (p. 48)• 连接到作为源数据库的 MySQL (p. 48)

将 MySQL 用作源数据库的权限下面列出了将 MySQL 用作源所需的权限:

• SELECT ON *.*• SELECT ON mysql.proc• SHOW VIEW ON *.*

连接到作为源数据库的 MySQL使用 AWS Schema Conversion Tool 按照以下过程连接到 MySQL 源数据库。

连接到 MySQL 源数据库

1. 在 AWS Schema Conversion Tool 中,选择 Connect to MySQL (连接到 MySQL)。

随即出现 Connect to MySQL 对话框。

版本 1.048

Page 55: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 MySQL

2. 提供 MySQL 源数据库连接信息。使用下表中的说明。

对于该参数 请执行该操作

服务器名称 键入源数据库服务器的 DNS 名称或 IP 地址。

Server port 键入用于连接到源数据库服务器的端口。

User name 和 Password 键入用于连接到源数据库服务器的用户名和密码。

Note

只有在创建项目或在项目中选择 Connect to source (连接到 source) 选项(其中 source 是源数据库)时,AWSSCT 才会使用该密码连接到源数据库。为了避免公开源数据库的密码,AWS SCT 不会存储该密码。如果您关闭了AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。

Use SSL 如果您要使用 SSL 连接到数据库,请选择此选项。根据需要在SSL 选项卡上提供以下附加信息:

• Require SSL:如果您希望仅通过 SSL 连接到服务器,请选择此选项。

Note

如果您选择 Require SSL,则意味着如果服务器不支持SSL,您将无法连接到服务器。如果您不选择 RequireSSL 且服务器不支持 SSL,您仍然可以在不使用 SSL的情况下连接到服务器。有关更多信息,请参阅使用安全连接。

• Verify Server Certificate:选择此选项以使用信任存储验证服务器证书。

• Trust Store:包含证书的信任存储的位置。• Trust Store Password:信任存储的密码。

版本 1.049

Page 56: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 PostgreSQL 用作 AWS Schema Conversion Tool 的源

对于该参数 请执行该操作

Store Password AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。

MySql Driver Path 键入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 安装所需的数据库驱动程序 (p. 8)。

如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径 (p. 9)。

3. 选择 Test Connection 以验证是否可以成功地连接到源数据库。4. 选择 OK 以连接到源数据库。

将 PostgreSQL 用作 AWS Schema Conversion Tool的源

您可以使用 AWS SCT 将数据从 PostgreSQL 转换到以下目标:

• Amazon RDS for MySQL• Amazon Aurora (MySQL)• Amazon RDS for PostgreSQL• Amazon Aurora (PostgreSQL)

有关详细信息,请参阅以下章节:

主题• 将 PostgreSQL 用作源数据库的权限 (p. 50)• 连接到作为源的 PostgreSQL (p. 50)

将 PostgreSQL 用作源数据库的权限下面列出了将 PostgreSQL 用作源所需的权限:

• CONNECT ON DATABASE <database_name>• USAGE ON SCHEMA <database_name>• SELECT ON ALL TABLES IN SCHEMA <database_name>• SELECT ON ALL SEQUENCES IN SCHEMA <database_name>

连接到作为源的 PostgreSQL使用 AWS Schema Conversion Tool 按照以下过程连接到 PostgreSQL 源数据库。

连接到 PostgreSQL 源数据库

1. 在 AWS Schema Conversion Tool 中,选择 Connect to PostgreSQL (连接到 PostgreSQL)。

版本 1.050

Page 57: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 PostgreSQL

随即出现 Connect to PostgreSQL 对话框。

2. 提供 PostgreSQL 源数据库连接信息。使用下表中的说明。

对于该参数 请执行该操作

服务器名称 键入源数据库服务器的 DNS 名称或 IP 地址。

Server port 键入用于连接到源数据库服务器的端口。

数据库 键入 PostgreSQL 数据库的名称。

User name 和 Password 键入用于连接到源数据库服务器的用户名和密码。

Note

只有在创建项目或在项目中选择 Connect to source (连接到 source) 选项(其中 source 是源数据库)时,AWSSCT 才会使用该密码连接到源数据库。为了避免公开源数据库的密码,AWS SCT 不会存储该密码。如果您关闭了AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。

Use SSL 如果您要使用 SSL 连接到数据库,请选择此选项。根据需要在SSL 选项卡上提供以下附加信息:

• Verify Server Certificate:选择此选项以使用信任存储验证服务器证书。

• Trust Store:包含证书的信任存储的位置。• Trust Store Password:信任存储的密码。

版本 1.051

Page 58: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 Db2 LUW 用作 AWS Schema Conversion Tool 的源

对于该参数 请执行该操作

Store Password AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。

PostgreSQL Driver Path 键入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 安装所需的数据库驱动程序 (p. 8)。

如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径 (p. 9)。

3. 选择 Test Connection 以验证是否可以成功地连接到源数据库。4. 选择 OK 以连接到源数据库。

将 Db2 LUW 用作 AWS Schema Conversion Tool的源

可以使用 AWS SCT 将数据从 Db2 LUW 转换为以下目标。AWS SCT 支持源 Db2 LUW9.1、9.5、9.7、10.1、10.5 和 11.1 版。

• Amazon RDS for MySQL• Amazon Aurora (MySQL)• Amazon RDS for PostgreSQL• Amazon Aurora (PostgreSQL)

将 Db2 LUW 用作源时所需的权限下面列出了连接到 DB2LUW 数据库、检查可用权限和读取源的架构元数据所需的权限:

• 建立连接所需的权限:

GRANT CONNECT ON DATABASE TO USER min_privs;• 运行 SQL 语句所需的权限:

GRANT EXECUTE ON PACKAGE NULLID.SYSSH200 TO USER MIN_PRIVS;• 获取实例级别信息所需的权限:

• GRANT EXECUTE ON FUNCTION SYSPROC.ENV_GET_INST_INFO TO USER MIN_PRIVS;• GRANT SELECT ON SYSIBMADM.ENV_INST_INFO TO USER MIN_PRIVS;• GRANT SELECT ON SYSIBMADM.ENV_SYS_INFO TO USER MIN_PRIVS;

• 检查通过角色、组和机构授予的权限所需的权限:• GRANT EXECUTE ON FUNCTION SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID TO USER

MIN_PRIVS;• GRANT EXECUTE ON FUNCTION SYSPROC.AUTH_LIST_GROUPS_FOR_AUTHID TO USER

MIN_PRIVS;• GRANT EXECUTE ON FUNCTION SYSPROC.AUTH_LIST_ROLES_FOR_AUTHID TO USER

MIN_PRIVS;• GRANT SELECT ON SYSIBMADM.PRIVILEGES TO USER MIN_PRIVS;

版本 1.052

Page 59: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南源:Db2 LUW

• 系统目录和表上所需的权限:• GRANT SELECT ON SYSCAT.ATTRIBUTES TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.CHECKS TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.COLIDENTATTRIBUTES TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.COLUMNS TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.DATAPARTITIONEXPRESSION TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.DATAPARTITIONS TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.DATATYPEDEP TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.DATATYPES TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.HIERARCHIES TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.INDEXCOLUSE TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.INDEXES TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.INDEXPARTITIONS TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.KEYCOLUSE TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.MODULEOBJECTS TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.MODULES TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.NICKNAMES TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.PERIODS TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.REFERENCES TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.ROUTINEPARMS TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.ROUTINES TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.ROWFIELDS TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.SCHEMATA TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.SEQUENCES TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.TABCONST TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.TABLES TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.TRIGGERS TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.VARIABLEDEP TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.VARIABLES TO USER MIN_PRIVS;• GRANT SELECT ON SYSCAT.VIEWS TO USER MIN_PRIVS;• GRANT SELECT ON SYSIBM.SYSDUMMY1 TO USER MIN_PRIVS;

• 要运行 SQL 语句,用户账户需要使用至少一个在数据库中启用的工作负载的权限。如果没有为用户分配任何工作负载,请确保用户可以访问默认用户工作负载:

GRANT USAGE ON WORKLOAD SYSDEFAULTUSERWORKLOAD TO USER MIN_PRIVS;

要执行查询,您需要创建具有页面大小 8K、16K 和 32K 的系统临时表空间 (如果它们不存在)。要创建临时表空间,请运行以下脚本:

CREATE BUFFERPOOL BP8K IMMEDIATE ALL DBPARTITIONNUMS SIZE AUTOMATIC NUMBLOCKPAGES 0 PAGESIZE 8K; CREATE SYSTEM TEMPORARY TABLESPACE TS_SYS_TEMP_8K PAGESIZE 8192 BUFFERPOOL BP8K;

版本 1.053

Page 60: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 Db2 LUW

CREATE BUFFERPOOL BP16K IMMEDIATE ALL DBPARTITIONNUMS SIZE AUTOMATIC NUMBLOCKPAGES 0 PAGESIZE 16K; CREATE SYSTEM TEMPORARY TABLESPACE TS_SYS_TEMP_BP16K PAGESIZE 16384 BUFFERPOOL BP16K; CREATE BUFFERPOOL BP32K IMMEDIATE ALL DBPARTITIONNUMS SIZE AUTOMATIC NUMBLOCKPAGES 0 PAGESIZE 32K; CREATE SYSTEM TEMPORARY TABLESPACE TS_SYS_TEMP_BP32K PAGESIZE 32768 BUFFERPOOL BP32K;

连接到 Db2 LUW 源使用 AWS Schema Conversion Tool 按照以下过程连接到 Db2 LUW 源数据库。

连接到 Db2 LUW 源数据库

1. 在 AWS Schema Conversion Tool 中,选择 Connect to Source DB2 LUW (连接到源 DB2 LUW)。

随即出现 Connect to DB2 LUW 对话框。

2. 提供 Db2 LUW 源数据库连接信息。使用下表中的说明。

版本 1.054

Page 61: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南DB2LUW 到 PostgreSQL

对于该参数 请执行该操作

服务器名称 键入源数据库服务器的 DNS 名称或 IP 地址。

Server port 键入用于连接到源数据库服务器的端口。

数据库 键入 Db2 LUW 数据库的名称。

User name 和 Password 键入用于连接到源数据库服务器的用户名和密码。

Note

只有在创建项目或在项目中选择 Connect to source (连接到 source) 选项(其中 source 是源数据库)时,AWSSCT 才会使用该密码连接到源数据库。为了避免公开源数据库的密码,AWS SCT 不会存储该密码。如果您关闭了AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。

Use SSL 如果您要使用 SSL 连接到数据库,请选择此选项。根据需要在SSL 选项卡上提供以下附加信息:

• Verify Server Certificate:选择此选项以使用信任存储验证服务器证书。

• Trust Store:包含证书的信任存储的位置。您必须在全局设置中添加此位置,它才会在此处显示。

• Trust Store Password:信任存储的密码。

有关对 Db2 LUW 的 SSL 支持的更多信息,请参阅配置连接的安全选项。

Store Password AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。

DB2 LUW 驱动程序路径 键入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 安装所需的数据库驱动程序 (p. 8)。

如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径 (p. 9)。

3. 选择 Test Connection 以验证是否可以成功地连接到源数据库。4. 选择 OK 以连接到源数据库。

将 DB2 LUW 转换为 Amazon RDS for PostgreSQL 或Amazon Aurora (PostgreSQL)将 IBM Db2 LUW 迁移到 ToPostgreSQL 时要考虑的一些事项:

• AWS SCT 可以转换与 Db2 LUW 一起使用的不同触发语句。这些触发语句包括以下内容:• 触发事件 - INSERT、DELETE 和 UPDATE 触发事件指定触发的操作将在事件应用于主题表或主题视图

时运行。可以指定 INSERT、DELETE 和 UPDATE 事件的任意组合,但一次只能指定一个事件。AWSSCT 支持单个和多个触发事件。对于事件,PostgreSQL 几乎具有相同的功能。

版本 1.055

Page 62: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 Amazon Redshift 用作 AWSSchema Conversion Tool 的源

• 事件 OF COLUMN - 可通过基表指定列名称。仅当更新列名称列表中标识的列时才会激活此触发器。PostgreSQL 具有相同的功能。

• 语句触发器 – 这些触发器指定仅对整个语句应用触发的操作一次。不能为 BEFORE 触发器或 INSTEADOF 触发器指定此类型的触发器粒度。如果指定,则将激活 UPDATE 或 DELETE 触发器,即使不影响任何行也是如此。PostgreSQL 也具有此功能,并且 PostgreSQL 和 Db2 LUW 的语句触发器的触发声明是相同的。

• 引用子句 – 这些子句指定转换变量的相关性名称和转换表的表名称。相关性名称标识通过触发 SQL 操作影响的行集中的特定行。表名称标识受影响行的完整集。通过触发 SQL 操作影响的每行可用于通过使用指定相关性名称限定列触发的操作。PostgreSQL 不支持此功能,并且仅使用 NEW 或 OLD 相关性名称。

• AWS SCT 支持 INSTEAD OF 触发器。

将 DB2 LUW 分区表转换为 PostgreSQL 版本 10 分区表AWS SCT 可将 Db2 LUW 表转换为 PostgreSQL 10 中的分区表。在将 Db2 LUW 分区表转换为PostgreSQL 时,存在一些限制:

• 可在 Db2 LUW 中创建具有可为空的列的分区表,并指定用于存储 NULL 值的分区。但是,PostgreSQL不支持 RANGE 分区采用 NULL 值。

• Db2 LUW 可以使用 INCLUSIVE 或 EXCLUSIVE 子句来设置范围边界值。PostgreSQL 仅支持 INCLUSIVE 用于开始边界,EXCLUSIVE 用于结束边界。转换的分区名称的格式为<original_table_name>_<original_partition_name>。

• 在 Db2 LUW 中,可为分区表创建主键或唯一键。PostgreSQL 需要您直接为每个分区创建主键或唯一键。必须从父表中删除主键或唯一键约束。转换的键名称的格式为 <original_key_name>_<original_partition_name>。

• 在 Db2 LUW 中,您可以创建进出分区表的外键约束。但是,PostgreSQL 不支持分区表中的外键引用。此外,PostgreSQL 也不支持从一个分区表到另一个表的外键引用。

• 在 Db2 LUW 中,您可以在分区表上创建索引。但是,PostgreSQL 需要您直接为每个分区创建索引。必须从父表删除索引。转换的索引名称的格式为 <original_index_name>_<original_partition_name>。

• 您必须针对单个分区而不是分区表定义行触发器。必须从父表删除触发器。转换的触发器名称的格式为<original_trigger_name>_<original_partition_name>。

将 Amazon Redshift 用作 AWS Schema ConversionTool 的源

您可以使用 AWS SCT 将数据从 Amazon Redshift 转换到以下目标:

• Amazon Redshift

将 Amazon Redshift 用作源数据库的权限下面列出了将 Amazon Redshift 用作源所需的权限:

• USAGE ON SCHEMA <schema_name>• SELECT ON ALL TABLES IN SCHEMA <schema_name>• SELECT ON PG_CATALOG.PG_STATISTIC• SELECT ON SVV_TABLE_INFO• SELECT ON TABLE STV_BLOCKLIST

版本 1.056

Page 63: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 Redshift

• SELECT ON TABLE STV_TBL_PERM

连接到作为源的 Redshift使用 Amazon Redshift 按照以下过程连接到 AWS Schema Conversion Tool 源数据库。

连接到 Amazon Redshift 源数据库

1. 在 AWS Schema Conversion Tool 中,选择 Connect to Source Amazon Redshift (连接到源 。

随即出现 Connect to Amazon Redshift(连接到 RS) 对话框。

2. 提供 Amazon Redshift 源数据库连接信息。使用下表中的说明。

对于该参数 请执行该操作

服务器名称 键入源数据库服务器的 DNS 名称或 IP 地址。

Server port 键入用于连接到源数据库服务器的端口。

数据库 键入 Amazon Redshift 数据库的名称。

User name 和 Password 键入用于连接到源数据库服务器的用户名和密码。

Note

只有在创建项目或在项目中选择 Connect to source (连接到 source) 选项(其中 source 是源数据库)时,AWSSCT 才会使用该密码连接到源数据库。为了避免公开源数据库的密码,AWS SCT 不会存储该密码。如果您关闭了AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。

版本 1.057

Page 64: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 Oracle DW 用作 AWS Schema Conversion Tool 的源

对于该参数 请执行该操作

Use SSL 如果您要使用 SSL 连接到数据库,请选择此选项。根据需要在SSL 选项卡上提供以下附加信息:

• Verify Server Certificate:选择此选项以使用信任存储验证服务器证书。

• Trust Store:包含证书的信任存储的位置。您必须在全局设置中添加此位置,它才会在此处显示。

• Trust Store Password:信任存储的密码。

有关对 Amazon Redshift 的 SSL 支持的更多信息,请参阅配置连接的安全选项。

Store Password AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。

Redshift Driver Path 键入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 安装所需的数据库驱动程序 (p. 8)。

如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径 (p. 9)。

3. 选择 Test Connection 以验证是否可以成功地连接到源数据库。4. 选择 OK 以连接到源数据库。

将 Oracle DW 用作 AWS Schema Conversion Tool的源

您可以使用 AWS SCT 将数据从 Oracle DW 转换到 Amazon Redshift。

连接到源、连接到目标、参考信息、权限

将 Oracle 数据仓库用作源的权限下面列出了将 Oracle 数据仓库用作源所需的权限:

• 连接• select_catalog_role• select any dictionary

连接到作为源的 OracleDW使用 AWS Schema Conversion Tool 按照以下过程连接到 Oracle 数据仓库源数据库。

连接到 Oracle 数据仓库源数据库

1. 在 AWS Schema Conversion Tool 中,选择 Connect to Oracle DW (连接到 Oracle DW)。

版本 1.058

Page 65: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 OracleDW

随即出现 Connect to Oracle 对话框。

2. 提供 Oracle 数据仓库源数据库连接信息。使用下表中的说明。

对于该参数 执行该操作

类型 选择连接到您的数据库的连接类型。根据类型,提供以下附加信息:

• SID• Server name:键入源数据库服务器的 DNS 名称或 IP 地址。• Server port:键入用于连接到源数据库服务器的端口。• Oracle SID:Oracle 系统 ID (SID)。要查找 Oracle SID,请向

您的 Oracle 数据库提交以下查询:

SELECT sys_context('userenv','instance_name')AS SID FROM dual;

• 服务名称• Server name:键入源数据库服务器的 DNS 名称或 IP 地址。• Server port:键入用于连接到源数据库服务器的端口。• Service Name:要连接到的 Oracle 服务的名称。

• TNS Alias• TNS file path:包含透明网络底层 (TNS) 名称连接信息的文件

的路径。• TNS file path:用于连接到源数据库的此文件中的 TNS 别名。

• TNS 连接标识符

版本 1.059

Page 66: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 Teradata 用作 AWS Schema Conversion Tool 的源

对于该参数 执行该操作• TNS identifier:已注册 TNS 连接信息的标识符。

User name 和 Password 键入用于连接到源数据库服务器的用户名和密码。

Note

只有在创建项目或在项目中选择 Connect to source (连接到 source) 选项(其中 source 是源数据库)时,AWSSCT 才会使用该密码连接到源数据库。为了避免公开源数据库的密码,AWS SCT 不会存储该密码。如果您关闭了AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。

Use SSL 如果您要使用 SSL 连接到数据库,请选择此选项。根据需要在SSL 选项卡上提供以下附加信息:

• SSL Authentication:选择此选项使用 SSL 身份验证进行连接。• Trust Store:包含证书的信任存储的位置。• Trust Store Password:信任存储的密码。• Key Store:包含私有密钥和证书的密钥存储的位置。如果选中

SSL Authentication,此值是必需的,否则为可选值。• Trust Store Password:密钥存储的密码。如果选中 SSL

Authentication,此值是必需的,否则为可选值。

Store Password AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。

Oracle Driver Path 键入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 安装所需的数据库驱动程序 (p. 8)。

如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径 (p. 9)。

3. 选择 Test Connection 以验证是否可以成功地连接到源数据库。4. 选择 OK 以连接到源数据库。

将 Teradata 用作 AWS Schema Conversion Tool 的源

您可以使用 AWS SCT 将数据从 Teradata 转换到 Amazon Redshift。

将 Teradata 用作源的权限下面列出了将 Teradata 用作源所需的权限:

• SELECT ON DBC

连接到作为源的 Teradata使用 AWS Schema Conversion Tool 按照以下过程连接到 Teradata 源数据库。

版本 1.060

Page 67: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 Teradata

连接到 Teradata 源数据库

1. 在 AWS Schema Conversion Tool 中,选择 Connect to Teradata (连接到 Teradata)。

随即出现 Connect to Teradata 对话框。

2. 提供 Teradata 源数据库连接信息。使用下表中的说明。

对于该参数 请执行该操作

服务器名称 键入源数据库服务器的 DNS 名称或 IP 地址。

Server port 键入用于连接到源数据库服务器的端口。

数据库 键入 Teradata 数据库的名称。

User name 和 Password 键入用于连接到源数据库服务器的用户名和密码。

Note

只有在创建项目或在项目中选择 Connect to source (连接到 source) 选项(其中 source 是源数据库)时,AWSSCT 才会使用该密码连接到源数据库。为了避免公开源数据库的密码,AWS SCT 不会存储该密码。如果您关闭了AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。

Store Password AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。

版本 1.061

Page 68: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 Teradata

对于该参数 请执行该操作

加密数据 如果您要加密与数据库交换的数据,请选择此选项。

Teradata Driver Path 键入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 安装所需的数据库驱动程序 (p. 8)。

如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径 (p. 9)。

3. 选择 Test Connection 以验证是否可以成功地连接到源数据库。4. 选择 OK 以连接到源数据库。

将 LDAP 身份验证与 Teradata 源结合使用要为在 Windows 中运行 Microsoft Active Directory 的 Teradata 用户设置轻量目录访问协议 (LDAP) 身份验证,请使用以下过程。

在过程示例中,Active Directory 域为 test.local.com。Windows 服务器为 DC 并且使用了默认设置进行配置。在 Active Directory 中创建的用户账户为 test_ldap,并且该账户使用密码 test_ldap。

1. 在 /opt/teradata/tdat/tdgss/site 目录中,编辑文件 TdgssUserConfigFile.xml。将LDAP 部分更改为以下内容。

AuthorizationSupported="no"

LdapServerName="DC.test.local.com"LdapServerPort="389"LdapServerRealm="test.local.com"LdapSystemFQDN="dc= test, dc= local, dc=com"LdapBaseFQDN="dc=test, dc=local, dc=com"

通过运行如下所示的配置来应用更改。

#cd /opt/teradata/tdgss/bin#./run_tdgssconfig

2. 通过运行以下命令来测试配置。

# /opt/teradata/tdat/tdgss/14.10.03.01/bin/tdsbind -u test_ldap -w test_ldap

该输出值应该类似于以下内容。

LdapGroupBaseFQDN: dc=Test, dc=local, dc=comLdapUserBaseFQDN: dc=Test, dc=local, dc=comLdapSystemFQDN: dc= test, dc= local, dc=comLdapServerName: DC.test.local.comLdapServerPort: 389LdapServerRealm: test.local.comLdapClientUseTls: no

版本 1.062

Page 69: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 Netezza 用作 AWS Schema Conversion Tool 的源

LdapClientTlsReqCert: neverLdapClientMechanism: SASL/DIGEST-MD5LdapServiceBindRequired: noLdapClientTlsCRLCheck: noneLdapAllowUnsafeServerConnect: yesUseLdapConfig: noAuthorizationSupported: noFQDN: CN=test, CN=Users, DC=Anthem, DC=local, DC=comAuthUser: ldap://DC.test.local.com:389/CN=test1,CN=Users,DC=test,DC=local,DC=comDatabaseName: testService: tdsbind

3. 使用以下命令重新启动 TPA。

#tpareset -f "use updated TDGSSCONFIG GDO"

4. 在 Teradata 数据库中创建与 Active Directory 中相同的用户,如下所示。

CREATE USER test_ldap AS PERM=1000, PASSWORD=test_ldap;GRANT LOGON ON ALL TO test WITH NULL PASSWORD;

如果您在 Active Directory 中更改 LDAP 用户的用户密码,则您在 LDAP 模式下连接到 Teradata 时应指定此新密码。在默认模式下,您仍必须使用 LDAP 用户名和任意密码来连接 Teradata。

将 Netezza 用作 AWS Schema Conversion Tool 的源

您可以使用 AWS SCT 将数据从 Netezza 转换到 Amazon Redshift。

将 Netezza 用作源的权限下面列出了将 Netezza 用作源所需的权限:

• SELECT ON SYSTEM.DEFINITION_SCHEMA.SYSTEM VIEW• SELECT ON SYSTEM.DEFINITION_SCHEMA.SYSTEM TABLE• SELECT ON SYSTEM.DEFINITION_SCHEMA.MANAGEMENT TABLE• LIST ON <database_name>• LIST ON <database_name>.ALL.TABLE• LIST ON <database_name>.ALL.EXTERNAL TABLE• LIST ON <database_name>.ALL.VIEW• LIST ON <database_name>.ALL.MATERIALIZED VIEW• LIST ON <database_name>.ALL.PROCEDURE• LIST ON <database_name>.ALL.SEQUENCE• LIST ON <database_name>.ALL.FUNCTION• LIST ON <database_name>.ALL.AGGREGATE

版本 1.063

Page 70: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 Netezza

连接到作为源的 Netezza使用 AWS Schema Conversion Tool 按照以下过程连接到 Netezza 源数据库。

连接到 Netezza 源数据库

1. 在 AWS Schema Conversion Tool 中,选择 Connect to Netezza (连接到 Netezza)。

随即出现 Connect to Netezza 对话框。

2. 提供 Netezza 源数据库连接信息。使用下表中的说明。

对于该参数 请执行该操作

服务器名称 键入源数据库服务器的 DNS 名称或 IP 地址。

Server port 键入用于连接到源数据库服务器的端口。

User name 和 Password 键入用于连接到源数据库服务器的用户名和密码。

Note

只有在创建项目或在项目中选择 Connect to source (连接到 source) 选项(其中 source 是源数据库)时,AWSSCT 才会使用该密码连接到源数据库。为了避免公开源数据库的密码,AWS SCT 不会存储该密码。如果您关闭了AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。

Store Password AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。

Netezza Driver Path 键入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 安装所需的数据库驱动程序 (p. 8)。

版本 1.064

Page 71: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 Greenplum 用作 AWS Schema Conversion Tool 的源

对于该参数 请执行该操作如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径 (p. 9)。

3. 选择 Test Connection 以验证是否可以成功地连接到源数据库。4. 选择 OK 以连接到源数据库。

将 Greenplum 用作 AWS Schema Conversion Tool的源

您可以使用 AWS SCT 将数据从 Greenplum 转换到 Amazon Redshift。

将 Greenplum 用作源的权限下面列出了将 Greenplum 用作源所需的权限:

• CONNECT ON DATABASE <database_name>• USAGE ON SCHEMA <schema_name>

连接到作为源的 Greenplum使用 AWS Schema Conversion Tool 按照以下过程连接到 Greenplum 源数据库。

连接到 Greenplum 源数据库

1. 在 AWS Schema Conversion Tool 中,选择 Connect to Greenplum (连接到 Greenplum)。

随即出现 Connect to Greenplum 对话框。

版本 1.065

Page 72: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 Greenplum

2. 提供 Greenplum 源数据库连接信息。使用下表中的说明。

对于该参数 请执行该操作

服务器名称 键入源数据库服务器的 DNS 名称或 IP 地址。

Server port 键入用于连接到源数据库服务器的端口。

数据库 键入 Greenplum 数据库的名称。

User name 和 Password 键入用于连接到源数据库服务器的用户名和密码。

Note

只有在创建项目或在项目中选择 Connect to source (连接到 source) 选项(其中 source 是源数据库)时,AWSSCT 才会使用该密码连接到源数据库。为了避免公开源数据库的密码,AWS SCT 不会存储该密码。如果您关闭了AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。

Use SSL 如果您要使用 SSL 连接到数据库,请选择此选项。根据需要在SSL 选项卡上提供以下附加信息:

• Verify Server Certificate:选择此选项以使用信任存储验证服务器证书。

• Trust Store:包含证书的信任存储的位置。• Trust Store Password:信任存储的密码。

Store Password AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。

Greenplum Driver Path 键入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 安装所需的数据库驱动程序 (p. 8)。

版本 1.066

Page 73: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 Vertica 用作 AWS Schema Conversion Tool 的源

对于该参数 请执行该操作如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径 (p. 9)。

3. 选择 Test Connection 以验证是否可以成功地连接到源数据库。4. 选择 OK 以连接到源数据库。

将 Vertica 用作 AWS Schema Conversion Tool 的源您可以使用 AWS SCT 将数据从 Vertica 转换到 Amazon Redshift。

将 Vertica 用作源的权限下面列出了将 Vertica 用作源所需的权限:

• USAGE ON SCHEMA <schema_name>• USAGE ON SCHEMA PUBLIC• GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name>• SELECT ON ALL SEQUENCES IN SCHEMA <schema_name>• EXECUTE ON ALL FUNCTIONS IN SCHEMA <schema_name>• EXECUTE ON PROCEDURE <schema_name.procedure_name(procedure_signature)>

连接到作为源的 Vertica使用 AWS Schema Conversion Tool 按照以下过程连接到 Vertica 源数据库。

连接到 Vertica 源数据库

1. 在 AWS Schema Conversion Tool 中,选择 Connect to Vertica (连接到 Vertica)。

随即出现 Connect to Vertica 对话框。

版本 1.067

Page 74: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 Vertica

2. 提供 Vertica 源数据库连接信息。使用下表中的说明。

对于该参数 请执行该操作

服务器名称 键入源数据库服务器的 DNS 名称或 IP 地址。

Server port 键入用于连接到源数据库服务器的端口。

数据库 键入 Vertica 数据库的名称。

User name 和 Password 键入用于连接到源数据库服务器的用户名和密码。

Note

只有在创建项目或在项目中选择 Connect to source (连接到 source) 选项(其中 source 是源数据库)时,AWSSCT 才会使用该密码连接到源数据库。为了避免公开源数据库的密码,AWS SCT 不会存储该密码。如果您关闭了AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。

Use SSL 如果您要使用 SSL 连接到数据库,请选择此选项。根据需要在SSL 选项卡上提供以下附加信息:

• Trust Store:您在全局设置中设置的信任存储。• Key Store:您在全局设置中设置的密钥存储。

Store Password AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。

Vertica Driver Path 键入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 安装所需的数据库驱动程序 (p. 8)。

版本 1.068

Page 75: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 Microsoft SQL Server DW 用作

AWS Schema Conversion Tool 的源

对于该参数 请执行该操作如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径 (p. 9)。

3. 选择 Test Connection 以验证是否可以成功地连接到源数据库。4. 选择 OK 以连接到源数据库。

将 Microsoft SQL Server DW 用作 AWS SchemaConversion Tool 的源

您可以使用 AWS SCT 将数据从 Microsoft SQL Server DW 转换到 Amazon Redshift。

将 Microsoft SQL Server 数据仓库用作源的权限下面列出了将 Microsoft SQL Server 数据仓库用作源所需的权限:

• VIEW DEFINITION• VIEW DATABASE STATE• SELECT ON SCHEMA :: <schema_name>

对要转换其架构的每个数据库重复这种授权。

此外,授予以下权限,并在主数据库上运行该授权:

• VIEW SERVER STATE

连接到作为源的 SQLServerDW使用 AWS Schema Conversion Tool 按照以下过程连接到 Microsoft SQL Server 数据仓库源数据库。

连接到 Microsoft SQL Server 数据仓库源数据库

1. 在 AWS Schema Conversion Tool 中,选择 Connect to Microsoft SQL Server DW (连接到 MicrosoftSQL Server DW)。

随即出现 Connect to Microsoft SQL Server DW 对话框。

版本 1.069

Page 76: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 SQLServerDW

2. 提供 Microsoft SQL Server 数据仓库源数据库连接信息。使用下表中的说明。

对于该参数 请执行该操作

服务器名称 键入源数据库服务器的域名服务 (DNS) 名称或 IP 地址。

Server port 键入用于连接到源数据库服务器的端口。

Instance name 键入 SQL Server 数据库的实例名称。要找到实例名称,请在您的SQL Server 数据库上运行查询 SELECT @@servername;。

User name 和 Password 键入用于连接到源数据库服务器的用户名和密码。

Note

只有在创建项目或在项目中选择 Connect to source (连接到 source) 选项(其中 source 是源数据库)时,AWSSCT 才会使用该密码连接到源数据库。为了避免公开源数据库的密码,AWS SCT 不会存储该密码。如果您关闭了AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。

Use SSL 如果您要使用安全套接字层 (SSL) 连接到数据库,请选择此选项。根据需要在 SSL 选项卡上提供以下附加信息:

• Trust Server Certificate:选择此选项以信任服务器证书。• Trust Store:您在全局设置中设置的信任存储。

Store Password AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。

Sql Server Driver Path 键入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 安装所需的数据库驱动程序 (p. 8)。

版本 1.070

Page 77: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南连接到作为源的 SQLServerDW

对于该参数 请执行该操作如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径 (p. 9)。

3. 选择 Test Connection 以验证是否可以成功地连接到源数据库。4. 选择 OK 以连接到源数据库。

版本 1.071

Page 78: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南迁移评估报告

创建转换报告当您规划数据库转换时,创建一些报告来帮助您理解所涉及的内容会很有用。可以使用 AWS SchemaConversion Tool 或 AWS Workload Qualification Framework (AWS WQF) 创建报告。

可以使用 AWS SCT 创建数据库迁移评估报告。借助此报告,您将大致了解您的架构转换任务以及无法自动转换为目标数据库的项目的详细信息。您可以使用此报告来评估可使用 AWS Schema Conversion Tool 完成项目的程度,以及完成转换所需的其他操作。要创建评估报告,请在 AWS SCT 中使用数据库的上下文(右键单击)菜单中的 Create Report (创建报告)。

可以在迁移的规划阶段使用 AWS WQF 来了解迁移数据和应用程序所需的工作量。WQF 是一个与 AWSSCT 和 AWS DMS 集成的独立应用程序。您可以使用它创建清单报告和成本计算器报告。要设置 WQF,请转至 SCT 应用程序中的 Global Settings (全局设置) 并为源数据库设置所需的 JDBC 驱动程序。然后,启动WQF 并按照 AWS Cloud9 中打开的屏幕上的说明操作。

主题• 使用 AWS Schema Conversion Tool 创建评估报告 (p. 72)• 使用 Workload Qualification Framework 创建迁移报告 (p. 76)

使用 AWS Schema Conversion Tool 创建评估报告AWS Schema Conversion Tool 的一个重要部分是它生成的数据库迁移评估报告,此报告可帮助您转换架构。该报告汇总了所有架构转换任务,针对无法转换为目标数据库实例的数据库引擎的架构,还详细介绍了其操作项。您可以在应用程序中查看报告。要执行此操作,请将其导出为逗号分隔值 (CSV) 或 PDF 文件。

该迁移评估报告包括以下内容:

• 执行摘要• 许可评估• 云支持,指示在目标数据库中不可用的任何源数据库功能。• 当前的源硬件配置• 建议,包括服务器对象的转换、备份建议和链接的服务器更改

该报告包括有关 Amazon RDS DB 实例的信息,如果您选择 Amazon RDS 作为目标,则报告将包括以下内容:

• 当前使用的存储大小和数据库实例的最大存储大小。• 数据库实例上的当前数据库数量以及数据库实例上允许的最大数据库数量。• 在数据库实例上不可用的数据库服务和服务器对象的列表。• 当前参与复制的数据库的列表。Amazon RDS 不支持复制。

此外,该报告还包含:对于无法自动转换的部分,在您的目标数据库实例中编写等效代码所需工作量的估算。此“Estimated Complexity”(估计的复杂性) 字段会在评估报告的 PDF 版本中导出,但不会包含在 CSV 版本中。

如果您使用 AWS SCT 将现有架构迁移到 Amazon RDS 数据库实例,该报告可帮助您分析关于迁移到 AWS云和更改许可证类型的要求。

可以在以下主题中找到更多详细信息:

主题• 创建数据库迁移评估报告 (p. 73)

版本 1.072

Page 79: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建数据库迁移评估报告。

• 查看评估报告 (p. 73)• 保存评估报告 (p. 75)

创建数据库迁移评估报告使用以下过程创建数据库迁移评估报告。

创建数据库迁移评估报告

1. 在显示源数据库架构的左侧面板中,选择要为其创建评估报告的架构对象。2. 打开该对象的上下文 (右键单击) 菜单,然后选择 Create Report。

查看评估报告在创建评估报告后,评估报告视图将打开,其中显示以下选项卡:

• Summary (摘要)• Action Items (操作项)

Summary (摘要) 选项卡显示已自动转换或未转换的项目。

Action Items (操作项) 选项卡显示无法自动转换的项目,以及有关如何处理它们的建议。

主题

版本 1.073

Page 80: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南查看评估报告

• 评估报告摘要 (p. 74)• 评估报告操作项 (p. 74)

评估报告摘要Summary 选项卡显示了来自数据库迁移评估报告的摘要信息。它显示了已自动转换的项目和未自动转换的项目。

对于无法自动转换为目标数据库引擎的架构项目,摘要包含了在您的目标数据库实例中创建与源数据库中的架构项目等效的架构项目所需的工作量的估算。

该报告将转换这些架构项目的估算时间划分为以下类别:

• 少量 – 可在 1 小时之内完成的操作。• 中度 – 可在 1 到 4 小时内完成的更为复杂的操作。• 大量 – 需要 4 小时以上才能完成的非常复杂的操作。

License Evaluation and Cloud Support (许可证评估和云支持) 部分包含关于将现有的本地数据库架构移到运行相同引擎的 Amazon RDS 数据库实例的信息。例如,如果您希望更改许可证类型,报告的此部分将告诉您应从当前数据库中删除哪些功能。

评估报告操作项评估报告视图还包含 Action Items 选项卡。此选项卡包含一系列无法自动转换为目标 Amazon RDS 数据库实例的数据库引擎的项。如果从列表中选择一个操作项,AWS SCT 会突出显示您架构中该操作项适用的项。

版本 1.074

Page 81: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南保存评估报告

该报告还包含有关如何手动转换架构项目的建议。有关如何处理手动转换的更多信息,请参阅在 AWSSchema Conversion Tool 中处理手动转换 (p. 92)。

保存评估报告您可以将数据库迁移评估报告的本地副本另存为 PDF 文件或逗号分隔值 (CSV) 文件。CSV 文件仅包含操作项信息。PDF 文件包含摘要和操作项信息,如以下示例所示。

版本 1.075

Page 82: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南WQF 迁移报告

使用 Workload Qualification Framework 创建迁移报告

AWS Workload Qualification Framework (AWS WQF) 是随 AWS SCT 提供的独立应用程序。您可以使用 WQF 分析到 AWS 云的迁移。它将对整个迁移的工作负载进行评估和评级,包括数据库和应用程序修改。WQF 可以推荐您可用于迁移的策略和工具,并为您提供可用于进行更改的反馈。它还可以确定为完成到Amazon RDS 或 Amazon Aurora 的迁移而需对数据库执行的操作。

您可以将 WQF 用于以下迁移情景:

• Oracle 到 Amazon RDS for PostgreSQL 或与 PostgreSQL 兼容的 Aurora• Oracle 到 Amazon RDS for MySQL 或Aurora 与 MySQL 的兼容性• Microsoft SQL Server 到 Amazon RDS PostgreSQL 或 Aurora PostgreSQL

版本 1.076

Page 83: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南设置 AWS WQF

您可以在迁移过程的规划阶段使用 WQF 来确定迁移数据和应用程序所需执行的操作。SCT 将访问您的架构转换;相反,WQF 的报告如下:

• 基于复杂性、大小和所用技术的工作负载评估• 有关迁移策略的建议• 有关迁移工具的建议• 有关要执行的确切操作的反馈• 根据迁移项目的人数评估所需的工作量

主题• 设置 AWS WQF (p. 77)• 准备批量导入逻辑和物理组件 (p. 78)• 创建 WQF 报告 (p. 80)• 了解工作负载类别 (p. 83)

设置 AWS WQFAWS WQF 以 Amazon 系统映像 (AMI) 的形式出现,后者预配置了 Microsoft Windows Server 和 AWS SCT并且预安装了 WQF。您可以使用远程桌面应用程序连接到它。

使用以下过程可启动共享 AMI。在开始之前,请确保您已在本地驱动器上的 .pem 文件中存储一个有效的密钥对。

启动共享 AMI 并设置 WQF

1. 选择以下选项之一:

• 访问 AWS Marketplace Workload Qualification Framework 页面并在您的账户中启动 AMI。• 在 EC2 启动向导中搜索 Workload Qualification Framework 以查找 AMI。然后,在您的账户中启动

它。2. 选择类型为 m5a.4xlarge 或更大的实例,并向其存储添加至少 100 GiB。在此步骤中,您需要您的 .pem

文件。

如果您不熟悉启动 AMI 或创建 EC2 实例,请观看以下简短 AWS 支持视频:如何从自定义 Amazon 系统映像 (AMI) 启动 EC2 实例

3. 在 EC2 控制台中,选择 Instances (实例)。当实例可用时,请打开其上下文(右键单击)菜单,然后选择 Get Windows Password (获取 Windows 密码)。使用您在上一步中使用的同一 .pem 文件检索密码以设置实例。

4. 使用远程桌面应用程序连接到实例。有关更多信息,请参阅连接到您的 Windows 实例。

在设置 SCT 和 WQF 之后,您需要在准备好使用 WQF 之前在 SCT 中设置数据库驱动程序。可使用以下过程设置驱动程序。

1. 找到并下载适用于数据源的 Java 数据库连接 (JDBC) 驱动程序。将 .jar 文件置于已安装 SCT 和 WQF的计算机上。有关更多信息,请参阅 安装所需的数据库驱动程序 (p. 8)。

2. 打开 SCT,选择 Settings (设置),然后选择 Global Settings (全局设置)。3. 选择 Drivers (驱动程序) 选项卡。4. 对于每个数据源,请使用 Browse (浏览) 以导航到 .jar 文件位置。5. 选择 OK (确定) 以确认。

版本 1.077

Page 84: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南准备批量导入

准备批量导入逻辑和物理组件如果您要分析大量的服务器,您可以通过对逻辑和物理组件执行批量导入来简化过程。为此,您需要在使用WQF 之前收集信息。这样,您不必手动将每个服务器的信息输入到 UI 中。这非常适合 WQF 无权访问服务器的情况。您也可以在联机模式下使用此方法,此时 WQF 可以访问服务器。

要以批量模式运行,您需要生成两个文件:

• 一个 JSON 文件,其中包含逻辑组件• 一个逗号分隔值 (CSV) 文件,其中包含物理组件

您可以使用任何偏好的方法创建这些文件。对于这两个文件,如果您完全脱机运行 WQF,则不需要提供用户名或密码。这是因为在脱机模式下您没有连接到任何服务器。在下列部分中,我们提供这些文件的模板。

Note

创建组件有两个单独的工作流。您可以上传 AWS SCT 项目 .zip 文件,或使用 JSON 和 CSV 文件上传队列范围的分析。您不需要同时使用这两种方法。

批量导入逻辑组件的模板示例 (JSON)以下示例显示在脱机模式和联机模式下可用于 WQF 批量导入逻辑组件的 JSON。

以下示例显示了您可以在脱机模式下运行 WQF 时使用的 JSON。在脱机模式下,您可以从 JSON 中删除username、password 和 connection-type。您还可以添加一个额外的字段到 JSON。该额外字段名为sct-file,其中的值是 SCT 生成的统计 .zip 文件的完整目录路径和文件名。以下是示例:D:\Temp\WQF\Oracle-WqfStats-2019-03-09-01-56.zip。对于脱机模式,JSON 示例如下所示。

{ "name": "component_name", "description": "My description", "type": "database", "properties": { "number-of-advance-config-features": "123", "has-proprietary-logic-in-OLAP": "true", "number-of-hardware-features": "100" }, "selected-schemas": [ { "schema": "schema_name" } ], "source-dialect": "ORACLE", "source-connection-config": { "server": "host", "server-port": "port", "sid": "ORCL" }, "sct-file": "D:\\Temp\\WQF\\Oracle-WqfStats-2019-03-09-01-56.zip"}

以下示例显示了您可以在联机模式下运行 WQF 时用于逻辑组件的 JSON。

[ { "name": "component_name", "description": "My description", "type": "database", "properties": { "number-of-advance-config-features": "123",

版本 1.078

Page 85: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南准备批量导入

"has-proprietary-logic-in-OLAP": "true", "number-of-hardware-features": "100" }, "selected-schemas": [ { "schema": "schema_name" } ], "source-dialect": "ORACLE", "source-connection-config": { "server": "host", "server-port": "port", "sid": "sid", "username": "user", "password": "pass", "connection-type": "SID" } }, { "name": "component_name1", "description": "My new Description", "type": "database", "properties": { "number-of-advance-config-features": "321", "has-proprietary-logic-in-OLAP": "true", "number-of-hardware-features": "50" }, "selected-schemas": [ { "database": "db_name", "schema": "schema_name" } ], "source-dialect": "MSSQL", "source-connection-config": { "server": "host", "server-port": "port", "sid": "", "username": "user", "password": "pass" } }, { "name": "component_name2", "description": "description", "type": "application", "properties": { "source-unavailable": "false", "number-of-native-code-extensions": 1, "number-af-advance-config-features": 2, "number-of-hardware-features": 3 }, "language": "JAVA", "selected-schemas": [ { "database": "db_name", "schema": "schema_name" } ], "source-code-path": "path_to_application_files", "source-dialect": "MSSQL", "source-connection-config": { "server": "host", "server-port": "port", "sid": "", "username": "user",

版本 1.079

Page 86: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建报告

"password": "pass" } }]

批量导入物理组件的模板示例 (CSV)以下示例显示了您可以用于物理组件的 .csv 文件。

如果在 Microsoft Excel 中打开此 .csv 文件,您可以看到字段布局。如果您不是以编程方式导出物理组件,这样做会更容易编辑。作为电子表格,文件类似于以下所示。

Note

如果您在脱机模式下运行,则需要添加一个额外字段到下列 CSV。该额外字段应名为 SCTFILE,其中的值应是 SCT 生成的统计信息 .zip 文件的完整目录路径和文件名。示例是 D:\Temp\WQF\Oracle-WqfStats-2019-03-09-01-56.zip。

该 .csv 文件如下所示。

NAME,serverName,port,instanceName/SID,userName,password,databaseType,description,hasHADRRequirements,hasHeavyGeospatialPayloadcomponent_name,host,port,sid,user,password,Oracle,mycomponent,true,false

同一文件以电子表格格式的显示如下所示。

NAME serverNameport instanceName/SID

userNamepassworddatabaseTypedescriptionhasHADRRequirementshasHeavyGeospatialPayload

component_namehost port sid user passwordOracle mycomponentTRUE FALSE

创建 WQF 报告要使用 WQF 创建迁移报告,请执行以下步骤:

1. 创建 WQF 项目。2. 将应用程序添加到项目。3. 为项目中的每个应用程序添加物理组件。这样做允许 WQF 收集有关源数据库服务器的详细信息。

您可以使用 SCT 的本地安装,也可以使用其他计算机中的 .zip 文件。4. 为项目中的每个应用程序添加逻辑组件。这样做允许 WQF 收集有关数据库对象和应用程序的详细信息。

您可以使用 SCT 的本地安装,也可以使用其他计算机中的 .zip 文件。5. 生成清单和 WQF 分析报告以规划项目。6. 将下载的报告文件复制到安装了 Microsoft Excel 的计算机上,然后打开它们以获取有关迁移项目的详细信

息。

您可以选择以下类型的报告:

• 清单报告

这些报告列出了有关您尝试从中迁移的数据库服务器的基于功能的信息和硬件信息。此报告所需的数据是使用物理组件收集的,用户可以在这些组件中输入要从中收集信息的数据库服务器的详细信息。可以使用此报告中的信息帮助您规划数据库服务器的迁移。

• 成本计算器报告

版本 1.080

Page 87: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建报告

这些报告将对您尝试迁移的工作负载进行分类。它们详细说明了作为应用程序的一部分选择的所有逻辑和物理组件的项目。该报告包含基于 SCT 结果的可变迁移成本模型、有关如何针对每个应用程序执行迁移的建议以及迁移的步骤。成本计算器报告还包括清单报告。

您可以在 Microsoft Excel 或支持 Office Open XML 格式的任何应用程序中查看这些报告。

主题• 启动 WQF (p. 81)• 创建和编辑 WQF 项目 (p. 81)

启动 WQF在设置 SCT 和 WQF 后,请双击桌面上的 WQF Start (WQF 启动) 图标来启动 WQF 服务。当 WQF 启动时,一系列终端窗口会随之打开。

在 WQF 成功启动后,请使用 Google Chrome(已在 AMI 上预安装)并导航到 http://localhost:4040/ide.html。这样做将在 AWS Cloud9 控制台中打开 WQF 模块。

创建和编辑 WQF 项目WQF 项目为应用程序组件(如数据库、物理计算机和应用程序代码)提供了容器功能。您可以保存 WQF 项目并在稍后返回该项目。您可以一次维护多个迁移项目。

创建或查看迁移项目和报告

1. 要创建新项目,请打开 WQF 并在 Create new project (创建新项目) 中为您的项目输入一个描述性名称。然后选择 Create。

您也可以选择左侧的现有项目。2. 此时将显示新屏幕。选择以下选项之一:

• 要启动报告向导,请选择 Create report (创建报告)。此向导将指导您完成使用 WQF 应用程序的所有必需步骤。

• 要访问现有报告,请从列表中选择它。您可以查看、编辑或删除某个报告,或更改其报告类型。3. 在 Report (报告) 屏幕上,为 Type (类型) 选择报告类型。为您的报告输入名称和可选描述。

选择 Next 以继续。4. 在 Physical Components (物理组件) 选项卡上,提供有关数据库系统或队列的物理组件的数据。

物理组件分析可帮助收集有关清单报告的源数据库服务器的详细信息。根据高级功能使用率,WQF 提供了一些详细信息来计算迁移项目的总体分类。您可以选择使用 SCT(或通过上传 SCT 项目的 .zip 文件)创建单个物理组件。或者,您可以将多个物理组件的详细信息作为一个 JSON 文件上传,以执行队列范围内的物理组件分析。

选择以下选项之一:

• 要连接到新的物理组件,请选择 New (新建)。输入一个描述性名称和可选描述,然后选择源数据库。如果要提供更多信息,请按照屏幕提示进行操作。选择 Next。

• 要导入 CSV 文件,请选择 Import (导入)。有关文件格式的更多信息,请参阅批量导入物理组件的模板示例 (CSV) (p. 80)。

在 Import physical components from CSV file (从 CSV 文件导入物理组件) 屏幕上,选择 Choose(选择) 以导航到您的 CSV 文件,然后选择 Save (保存)。选择 Cancel (取消) 以返回到 PhysicalComponents (物理组件) 屏幕而不进行更改。

版本 1.081

Page 88: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建报告

选择 Next (下一步) 以继续。5. 在 Physical Components (物理组件) 选项卡的 Data Collection (数据收集) 面板上,可选择是从存档文件

还是从数据库加载数据结构。

选择以下选项之一:

• 要导入 ZIP 文件,请选择 Load from Archive (从存档加载)。选择 Choose (选择) 以导航到您的 CSV文件,然后选择 Open (打开)。有关文件格式的更多信息,请参阅批量导入物理组件的模板示例(CSV) (p. 80)。

• 要连接到您的数据库(默认),请选择 Load from DB (从数据库加载) 并输入连接详细信息:• 服务器名称或 IP 地址• 服务器端口• 实例名称(可选)• 用户名称• 密码• 启用还是禁用安全套接字层 (SSL)

要立即执行数据收集,请选择 Get schemas (获取架构) 并选择要包含的架构,然后选择 Save (保存)。

重复此步骤,直到您加载完所有物理组件。然后选择 Next (下一步) 以继续。6. (仅针对成本计算器报告)在 Logical Components (逻辑组件) 选项卡上,您可以加载系统的逻辑组

件。逻辑组件分析可帮助 WQF 收集与以下项目相关的信息:

• 数据库对象:对将数据库对象转换为所选目标的复杂性进行分析和分类• 应用程序代码:对应用程序代码中的嵌入式 SQL 进行分析和分类,以便将其转换为所选目标

您可以选择使用 SCT(或通过上传 SCT 项目的 zip 文件)创建单个逻辑组件。或者,您可以将多个逻辑组件的详细信息作为一个 JSON 文件上传,以执行队列范围的逻辑组件分析。

选择以下选项之一:

• 要连接到新的物理组件,请选择 New (新建)。输入一个描述性名称和可选描述,然后选择类型和源数据库。如果要提供更多信息,请按照屏幕提示进行操作。选择 Next。

• 要导入 CSV 文件,请选择 Import (导入)。有关文件格式的更多信息,请参阅批量导入逻辑组件的模板示例 (JSON) (p. 78)。

在 Import physical components from CSV file (从 CSV 文件导入物理组件) 屏幕上,选择 Choose(选择) 以导航到您的 CSV 文件,然后选择 Save (保存)。如果要关闭此屏幕而不进行更改,请选择Cancel (取消) 以返回到“Physical Components (物理组件)”屏幕。

7. (仅针对成本计算器报告)在 Logical Components (逻辑组件) 选项卡的 Data Collection (数据收集) 面板上,您可选择是从存档文件还是从数据库加载数据结构。

选择以下选项之一:

• 要导入 ZIP 文件,请选择 Load from Archive (从存档加载)。选择 Choose (选择) 以导航到您的 CSV文件,然后选择 Open (打开)。

• 要连接到您的数据库(默认),请选择 Load from DB (从数据库加载) 并输入连接详细信息:• 服务器名称或 IP• 服务器端口• 实例名称(可选)• 用户名称

版本 1.082

Page 89: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南了解工作负载类别

• 密码• SSL(启用或未启用)

选择 Run (运行) 可立即执行数据收集,选择 Save (保存) 可保存更改而不运行该过程。如果您运行在脱机模式下,则无需运行数据收集过程,因为所有信息都在 SCT 生成的统计信息文件中。

重复此步骤,直到您加载完所有逻辑组件。然后选择 Next (下一步) 以继续。8. (仅针对成本计算器报告)在 Applications (应用程序) 选项卡上,您可以选择应用程序的组件。输入

应用程序的名称。在左侧,选择要包含的组件。要删除组件,请在右侧选择它们以将其移出 SelectedComponents (选定的组件) 列表。

应用程序包含物理组件和逻辑组件的组合。通过将它们一起分析,WQF 可根据作为单个物理和逻辑组件分析的一部分收集的不同参数和详细信息来确定迁移的复杂性。

选择 Save (保存) 以继续。9. 在 Report Configuration (报告配置) 选项卡上,选择要在报告中包含的组件。

选择 Next (下一步) 以继续。10. 在 Report Configuration (报告配置) 选项卡上,通过选择 Save (保存) 来保存报告。如果要在保存前要更

改某些内容,请选择 Previous (上一步)。11. 在 All Reports (所有报告) 选项卡上,您可以查看所有报告。要下载一个报告,请选择 Download (下载)

或 Save (保存)。

该报告将以 Open XML 格式下载,并且您可以在 Open XML 查看器(如 Microsoft Excel)中打开它。在报告中,您可以查看格式化的分类、分析和迁移策略。将为每个应用程序生成报告,其中包含选定的逻辑和物理组件集。

12. (可选)要删除一个报告或项目,请选择该报告,然后选择 Delete (删除)。

了解工作负载类别AWS WQF 将评估迁移工作负载,并将其分类到以数据库和应用程序的构建方式为特征的工作负载类别。根据此分类,WQF 将分析您的系统使用的组件,并推断执行迁移所需的工作类型。根据此分析,AWS WQF估计了预期的迁移的容易程度和困难程度。它还估计所涉及的工作类型和所需的工作量。

主题• 类别 1:使用 ODBC 和 JDBC 的工作负载 (p. 83)• 类别 2:少量使用专有功能的工作负载 (p. 84)• 类别 3:大量使用专有功能的工作负载 (p. 84)• 类别 4:特定于引擎的工作负载 (p. 84)• 类别 5:不可移植的、不可接受的风险或“简单搬运”工作负载 (p. 84)

类别 1:使用 ODBC 和 JDBC 的工作负载此类别通常具有不到 50 个自定义存储过程,或者具有用于访问控制的简单存储过程。使用此数据的应用程序将连接到使用开放式数据库连接 (ODBC) 或 Java 数据库连接 (JDBC) 的数据库,而不是连接到使用具有非标准扩展的专有驱动程序的数据库。应用程序逻辑驻留在数据库外部的代码中(Java、Python、Ruby等)。对于这些数据库,不需要支持只读副本或多可用区部署,或通过基于复制的技术提供这些功能。

在此类别中,数据仓库使用星型或雪花型架构以及使用特定于引擎的 SQL 或 ANSI SQL(如 AmazonQuickSight 或 Tableau)的报告层。移植到 Amazon Redshift 相对简单,因为数据模型得到了保留,并通过定义排序键、分发键、压缩和正确配置工作负载管理 (WLM) 得到了增强。

版本 1.083

Page 90: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南了解工作负载类别

这些工作负载易于移植到 Amazon Aurora 和 Amazon RDS。此类别中的迁移通常只需要很少的工时。

类别 2:少量使用专有功能的工作负载此类别中的工作负载使用应用程序代码(Java、Python、Ruby 等)和存储过程代码的组合。当逻辑在应用程序代码中难以实现时,使用存储过程。通常,此类工作负载拥有的存储过程不到 200 个,并且不使用高级SQL 语言功能。架构迁移很简单,因为使用了表和视图等数据结构。

在此类别中,数据仓库工作负载可以在表中存放数据,并使用简单存储过程中包装的 SQL 对其进行转换。数据仓库写入可能有一些小批量或大量更新、删除和事务。数据仓库还可以使用专有的在线分析处理 (OLAP)扩展(如 CUBE、ROLLUP 或 PIVOT)。

迁移涉及将存储过程逻辑移出数据库并重新编写 SQL 报告以处理缺少本机函数的问题。这些内容相对容易迁移。您可以预期此类工作负载的迁移会消耗适量的工时。

类别 3:大量使用专有功能的工作负载此类别中的工作负载完全由高级存储过程逻辑或专有功能驱动。在现场,此类别中的许多工作负载具有多达100000 行数据库驻留代码和功能。这些工作负载还使用高级功能,如虚拟专用数据库、列模糊处理、优化选项和用户定义的类型。它们需要花费大量的时间来转换为可选的执行环境。其中一些工作负载依赖于本机硬件功能,例如 Exadata、Supercluster 和 PDW。高性能工作负载通常属于此类别。必须使用目标数据库上可用的选项来转换和测试本地代码中提供的优化选项。

此类别中的数据仓库包含大量存储过程和用户定义的函数,这些函数可以协调提取、转换、加载 (ETL) 操作或创建业务视图。其 ETL 过程不能在 Amazon Redshift 中轻松表达,尽管许多业务逻辑可能呈现为视图。这些数据仓库还可能拥有数千个具有大量事务的表来管理 ETL 工作流。当以 Amazon Redshift 为目标进行迁移时,此类工作负载需要重新构建应用程序以将事务性工作负载与报告分离开来。重新构建还需要将逻辑从数据仓库中拉出,并将其拉入另一个计算层。

这些工作负载难以迁移,并且可能会对客户构成重大风险。您可以预期此类工作负载的迁移会消耗大量工时。

类别 4:特定于引擎的工作负载此类别中的工作负载使用仅适用于特定商用数据库引擎的框架。例如,特定于数据库的应用程序框架包括Oracle Forms、Oracle Reports、Oracle ADF 和 Oracle APEX (Application Express) 或者广泛使用 .NETActiveRecord 的应用程序。将这些工作负载迁移到开源或 NoSQL 数据库可能需要完全重新实现应用程序以将表示逻辑与数据库分离开来。

此类别中的数据仓库可能严重依赖于专有功能,例如 PB 级的地理空间。这些功能可能包含 OLAP 数据结构中的专有逻辑。工作负载可能具有单可用区架构无法满足的可用性、复制或用户并发要求。它们可能具有阻止使用 Amazon Athena 的延迟要求。

这些工作负载很难迁移。您可以预期此工作负载的迁移将花费大量的工时。此类迁移也可能构成重大风险。从认证或第三方支持的角度来看,可能不支持此工作负载的迁移。

类别 5:不可移植的、不可接受的风险或“简单搬运”工作负载此类别中的工作负载可能在没有基于云的等效项的数据库引擎上实现。它们的基础操作系统可能不受 AWS支持。例如,它可能使用大型机、Power 或 RISC 架构。在某些情况下,数据库可能使用本机代码扩展(如Oracle Call Interface)来运行业务逻辑。此业务逻辑通常被客户视为“过时”,即使它仍然是业务关键型的。在某些情况下,客户没有这些程序的源代码。数据仓库和 OLTP 工作负载共享此类别的相同属性。

您可以将这些应用程序迁移到 Amazon EC2。它们可能有模拟要求或需要其他第三方解决方案。在某些情况下,将这些工作负载从现有环境移出的风险可能太高,无法证明其合理性。在这种情况下,适当的做法是使用可满足这些应用程序要求的网络拓扑来维护与本地实现的高性能连接。

版本 1.084

Page 91: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南

使用 AWS Schema Conversion Tool转换源数据库架构

您可以使用 AWS Schema Conversion Tool (AWS SCT) 将现有的数据库架构从一个数据库引擎转换为另一个数据库引擎。使用 AWS SCT 用户界面转换数据库可以相当简单,但您需要先考虑几件事,然后再执行转换。

例如,您可以使用 AWS SCT 来执行以下操作:

• 您也可以使用 AWS SCT 将现有本地数据库架构复制到运行相同引擎的 Amazon RDS 数据库实例。您可以使用此功能来分析迁移到云和更改许可证类型的潜在成本节省。

• 在某些情况下,数据库功能无法转换为等效的 Amazon RDS 功能。如果您在 Amazon Elastic ComputeCloud (Amazon EC2) 平台上托管并自行管理数据库,则可通过替代 AWS 服务来模拟这些功能。

• AWS SCT 可自动执行将联机事务处理 (OLTP) 数据库架构转换为 Amazon Relational Database Service(Amazon RDS) MySQL 数据库实例、Amazon Aurora 数据库集群或 PostgreSQL 数据库实例的大部分过程。源数据库和目标数据库引擎包含许多不同的特性和功能,AWS SCT 尽可能尝试在您的 Amazon RDS数据库实例中创建等效架构。如果无法直接转换,AWS SCT 会提供一个列表,其中包含可供您采取的操作。

本节包括以下主题:

主题• 在 AWS Schema Conversion Tool (AWS SCT) 中创建映射规则 (p. 86)• 使用 AWS Schema Conversion Tool 转换架构 (p. 88)• 在 AWS Schema Conversion Tool 中处理手动转换 (p. 92)• 更新和刷新 AWS Schema Conversion Tool 中的转换后架构 (p. 93)• 保存和应用 AWS Schema Conversion Tool 中的转换后架构 (p. 94)• 比较数据库架构 (p. 96)• 查找相关的已转换对象 (p. 98)

AWS SCT 支持以下 OLTP 转换。

源数据库 Amazon RDS 上的目标数据库

Microsoft SQL Server (版本 2008 及更高版本) Amazon Aurora (MySQL 或PostgreSQL)、Microsoft SQLServer、MySQL、PostgreSQL

MySQL (版本 5.5 及更高版本) Amazon Aurora(PostgreSQL)、MySQL、PostgreSQL

您可以将架构和数据从 MySQL 迁移到 AmazonAurora (MySQL) 数据库集群,而无需使用 AWSSCT。有关更多信息,请参阅将数据迁移到Amazon Aurora 数据库集群。

版本 1.085

Page 92: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建映射规则

源数据库 Amazon RDS 上的目标数据库

Oracle (版本 10.2 及更高版本) Amazon Aurora (MySQL 或PostgreSQL)、MySQL、Oracle、PostgreSQL

PostgreSQL (版本 9.1 及更高版本) Amazon Aurora (MySQL)、MySQL、PostgreSQL

DB2 LUW (版本 9.5、9.7、10.5 和 11.1) Amazon Aurora (MySQL 或PostgreSQL)、MySQL、PostgreSQL

如果您希望转换数据仓库架构,请参阅 使用 Amazon Redshift 将数据仓库架构转换为 AWS SchemaConversion Tool (p. 99)。

要将数据库架构转换为 Amazon RDS,请执行以下概括步骤。每个步骤均为一个链接,指向一个提供了更多信息的部分。

• 在 AWS Schema Conversion Tool 中创建映射规则 (p. 102) – 使用 AWS SCT 转换架构之前,您现在可以设置以下操作的规则:更改列数据类型、将对象从一个架构复制到另一架构,以及更改对象名称。

• 使用 AWS Schema Conversion Tool 转换架构 (p. 88) – AWS SCT 创建本地版本的转换后架构以供您查看,但在您做好准备之前,不会将其应用于目标数据库实例。

• 使用 AWS Schema Conversion Tool 创建评估报告 (p. 72) – AWS SCT 创建数据库迁移评估报告,详细介绍无法自动转换的架构元素。您可以使用此报告来确定需要在与源数据库兼容的 Amazon RDS 数据库实例中的哪个位置创建架构。

• 在 AWS Schema Conversion Tool 中处理手动转换 (p. 92) – 如果存在无法自动转换的架构元素,您有两种选择:更新源架构,然后再次转换;或者在目标 Amazon RDS 数据库实例中创建等效的架构元素。

• 更新和刷新 AWS Schema Conversion Tool 中的转换后架构 (p. 93) – 您可以使用源数据库中的最新架构来更新 AWS SCT 项目。

• 保存和应用 AWS Schema Conversion Tool 中的转换后架构 (p. 94) – 在您准备就绪后,可让 AWSSCT 将本地项目中的转换后的架构应用于目标 Amazon RDS 数据库实例。

在 AWS Schema Conversion Tool (AWS SCT) 中创建映射规则

使用 AWS SCT 转换架构之前,您现在可以设置以下操作的规则:更改列数据类型、将对象从一个架构复制到另一架构,以及更改对象名称。例如,如果您的源架构中有一组名为 test_TABLE_NAME 的表,则可以设置一个规则,以便在目标架构中将前缀 test_ 更改为前缀 demo_。

Note

您只能在源数据库引擎和目标数据库引擎不同时创建映射规则。

您可以创建执行以下任务的映射规则:

• 更改数据类型• 移动对象• 重命名对象• 前缀 - 添加前缀,删除前缀,替换前缀• 后缀 - 添加后缀,删除后缀,替换后缀

您可以为以下对象创建映射规则:

版本 1.086

Page 93: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建映射规则

• Database• 架构• Table• 列

创建映射规则您可以创建映射规则并将规则另存为项目的一部分。打开项目,使用以下过程创建映射规则。

创建映射规则

1. 从 Settings 菜单中选择 Mapping Rules。此时显示 Mapping Rules 对话框。

2. 选择 Add new rule。规则列表中新增一行。3. 选择编辑图标以配置您的规则。

a. 对于 Name,请键入规则名称。b. 对于 For,请选择该规则适用的对象的类型。c. 对于 where,请键入在应用映射规则之前要应用于对象的筛选器。通过使用 LIKE 子句对 WHERE

子句进行评估。您可以输入一个确切名称以选择一个对象,也可以输入一种模式来选择多个对象。

适用于 where 子句的字段有所不同,具体取决于对象类型。例如,如果对象类型为架构,则只有一个字段可用于架构名称。

d. 对于 Actions,选择要创建的映射规则的类型。e. 根据规则类型,键入一个或两个其他值。例如,要重命名对象,请键入对象的新名称。要替换前

缀,请键入旧前缀和新前缀。4. 配置完映射规则后,请选择 Save 以保存您的规则。您也可以选择 Cancel 以取消所做更改。5. 添加、编辑和删除完规则后,选择 Save All 以保存您的所有更改。6. 选择 Close 以关闭 Mapping Rules 对话框。

您可以使用切换图标来关闭映射规则,而不将其删除。您可以使用复制图标来复制现有的映射规则。您可以使用删除图标来删除现有的映射规则。要保存对映射规则所做的所有更改,请选择 Save All。

版本 1.087

Page 94: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建对象的映射规则

查看对象的映射规则设置映射规则后,您可以在转换架构之前,查看这些规则对架构中特定对象的效果。在源架构树中,选择您感兴趣的对象。在主视图中,选择 Mapping 选项卡。Mapping 选项卡会打开并显示一个列表,其中包含应用于该对象的所有映射规则。您可以在源架构中查看对象的名称,在目标架构中查看对象的新名称。如果已设置数据类型规则,还可在源架构中查看列的数据类型,在目标架构中查看列的新数据类型。

导出映射规则如果您使用 AWS Database Migration Service (AWS DMS) 将数据从源数据库迁移到目标数据库,则可向AWS DMS 提供有关映射规则的信息。有关任务的更多信息,请参阅使用 AWS Database Migration Service复制任务。

导出映射规则

1. 在 AWS Schema Conversion Tool 的源架构树中,打开上下文(右键单击)菜单,然后选择 Exportscript for DMS (导出 DMS 的脚本)。此时显示保存对话框。

2. 浏览到要保存脚本的位置,然后选择 Save。您的映射规则另存为可由 AWS DMS 使用的 JSON 脚本。

使用 AWS Schema Conversion Tool 转换架构将项目连接到源数据库和目标 Amazon RDS 数据库实例后,您的 AWS Schema Conversion Tool 项目会在左侧面板中显示源数据库中的架构。该架构以树状图格式显示,且树的每个节点均延迟加载。如果您选择树状图中的节点,AWS SCT 会在这个时候要求您的源数据库提供架构信息。

您可以从您的源数据库中选择架构项目,然后将该架构转换为目标数据库实例的数据库引擎的等效架构。您可以从源数据库中选择要转换的任何架构项目。如果您选择的架构项取决于父项,则 AWS SCT 还会为该父项生成架构。例如,如果您从表中选择一个要转换的列,则 AWS SCT 为该列、该列所在的表以及该表所在的数据库生成架构。

转换架构要转换源数据库的架构,请从项目的左侧面板中选择要转换的架构对象。打开该对象的上下文 (右键单击) 菜单,然后选择 Convert schema,如下所示。

版本 1.088

Page 95: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南转换架构

转换完源数据库的架构后,您可以从项目左侧面板中选择架构项目,并在项目的中心面板中查看转换后的架构。中下方面板显示转换后架构的属性以及创建该架构所用的 SQL 命令,如下所示。

版本 1.089

Page 96: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南编辑转换后的架构

转换完架构后,您可以保存您的项目。源数据库中的架构信息随您的项目一起保存。此功能意味着您可以离线工作,而无需连接到源数据库。如果对于源数据库选择 Refresh from Database (从数据库刷新),AWSSCT 会连接到您的源数据库,以更新项目中的架构。有关更多信息,请参阅 更新和刷新 AWS SchemaConversion Tool 中的转换后架构 (p. 93)。

您可以为无法自动转换的项目创建一个数据库迁移评估报告。该评估报告对于识别和解析无法自动转换的架构项目很有用。有关更多信息,请参阅使用 AWS Schema Conversion Tool 创建评估报告 (p. 72)。

当 AWS SCT 生成转换后的架构时,不会立即将其应用于目标数据库实例。而是会将转换后的架构存储在本地,直到您准备好将其应用于目标数据库实例。有关更多信息,请参阅 应用转换后的架构 (p. 95)。

编辑转换后的架构您可以编辑转换后的架构,并将更改另存为项目的一部分。

编辑转换后的架构

1. 在显示源数据库架构的左侧面板中,选择要为其编辑转换后架构的架构项目。2. 在显示所选项目的转换后架构的中下方面板中,选择 SQL 选项卡。3. 在 SQL 选项卡显示的文本中,根据需要更改架构。该架构会在您进行更新时自动随项目一起保存。

版本 1.090

Page 97: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南清除转换后的架构

您对转换后架构的更改会在您进行更新时随项目一起存储。如果您刚从源数据库转换一个架构项目,并且已对该项目之前转换的架构进行了更新,则这些现有更新将替换为基于源数据库的新转换的架构项目。

清除转换后的架构在您将架构应用于目标数据库实例之前,AWS SCT 将转换后的架构仅存储在本地的项目中。您可以通过选择目标数据库实例的树状图节点,然后选择 Refresh from Database 来清除您项目中的计划架构。由于尚未向目标数据库实例中写入架构,从数据库刷新会删除 AWS SCT 项目中的计划架构元素,以便与目标数据库实例中的现有元素相匹配。

版本 1.091

Page 98: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南处理手动转换

在 AWS Schema Conversion Tool 中处理手动转换评估报告包含一系列无法自动转换为目标 Amazon RDS 数据库实例的数据库引擎的项。对于无法转换的每一项,Action Items 选项卡上都有一个操作项。

您可以按如下方式应对评估报告中的操作项:

• 修改您的源数据库架构。• 修改您的目标数据库架构。

修改您的源架构对于某些项目,将源数据库中的数据库架构修改为可自动转换的架构可能更容易。首先验证新更改与您的应用程序架构兼容,然后更新源数据库中的架构。最后,用更新的架构信息刷新您的项目。然后,您可以转换更新后的架构,并生成新的数据库迁移评估报告。对于在源架构中更改的项目,不再显示操作项。

此过程的优势是,当您从源数据库刷新时,更新后的架构始终可用。

版本 1.092

Page 99: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南修改您的目标架构

修改您的目标架构对于某些项目,更容易的方法可能是将转换后的架构应用于目标数据库,然后手动将无法自动转换的项目的等效架构项目添加到目标数据库。您可以编写所有可通过应用该架构自动转换为目标数据库实例的架构。有关更多信息,请参阅 保存和应用 AWS Schema Conversion Tool 中的转换后架构 (p. 94)。

写入到目标数据库实例的架构不包含无法自动转换的项目。在将架构应用于目标数据库实例后,您就可以在目标数据库实例中手动创建与源数据库中的架构等效的架构。数据库迁移评估报告中的操作项包含有关如何创建等效架构的建议。

Warning

如果您在目标数据库实例中手动创建构架,请保存所做的所有手动操作的副本。如果再次将您的项目的转换后架构应用于目标数据库实例,它将覆盖您所做的手动操作。

在某些情况下,您无法在目标数据库实例中创建等效架构。您可能需要重新架构一部分应用程序和数据库,以便将该数据库引擎的可用功能用于您的目标数据库实例。在其他情况下,您可以简单地忽略无法自动转换的架构。

更新和刷新 AWS Schema Conversion Tool 中的转换后架构

您可以更新 AWS Schema Conversion Tool 项目中的源架构和目标架构。

• 源 – 如果您更新源数据库的架构,AWS SCT 将用源数据库中的最新架构代替您的项目中的架构。如果您已对源数据库的架构进行了更改,则可使用此功能来更新项目。

• 目标 – 如果您更新目标 Amazon RDS 数据库实例的架构,AWS SCT 将用目标数据库实例中的最新架构代替您的项目中的架构。如果您尚未将任何架构应用于目标数据库实例,AWS SCT 将从您的项目中清除转换后的架构。然后,您可以转换源数据库中的架构,以获得干净的目标数据库实例。

您可以通过选择 Refresh from Database (从数据库刷新) 更新 AWS SCT 项目中的架构,如下所示。

版本 1.093

Page 100: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南保存和应用架构

保存和应用 AWS Schema Conversion Tool 中的转换后架构

当 AWS Schema Conversion Tool 生成转换后的架构(如 使用 AWS Schema Conversion Tool 转换架构 (p. 88) 中所示)后,不会立即将转换后的架构应用于目标数据库实例。而是会在本地将转换后的架构存储在项目中,直到您准备好将其应用于目标数据库实例。使用此功能,您可以使用无法自动转换为目标数据库引擎的架构项目。有关无法自动转换的项目的更多信息,请参阅使用 AWS Schema Conversion Tool 创建评估报告 (p. 72)。

您可以选择在将架构应用于目标数据库实例之前,让该工具将转换后的架构作为 SQL 脚本保存到文件中。此外,您还可以让该工具将转换后的架构直接应用于目标数据库实例。

将转换后的架构保存到文件中您可以将转换后的架构作为 SQL 脚本保存到一个文本文件中。使用此方法,您可以将 AWS SCT 中生成的SQL 脚本修改为该工具无法自动转换的地址项。然后,您可以在目标数据库实例上运行更新的脚本,将转换后的架构应用于目标数据库。

要将转换后的架构保存为 SQL 脚本,请打开架构元素的上下文(右键单击)菜单,然后选择 Save asSQL,如下所示。

版本 1.094

Page 101: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南应用转换后的架构

应用转换后的架构在您准备好将转换后的架构应用于目标 Amazon RDS 数据库实例后,请从项目的右侧面板中选择该架构元素。打开架构元素的上下文 (右键单击) 菜单,然后选择 Apply to database,如下所示。

版本 1.095

Page 102: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南扩展包架构

扩展包架构首次将转换后的架构应用于目标数据库实例时,AWS SCT 会向目标数据库实例添加一个额外的架构。该架构用于实现将转换后的架构写入到目标数据库实例时必需的源数据库的系统功能。该架构称为扩展包架构。

不要修改扩展包架构,否则,您可能会在写入到目标数据库实例的转换后架构中遇到意外结果。将架构完全迁移到目标数据库实例后,就不再需要 AWS SCT 了,您可以删除该扩展包架构。

扩展包架构按照您的源数据库命名,如下所示:

• Microsoft SQL Server: AWS_SQLSERVER_EXT• MySQL:AWS_MYSQL_EXT

• Oracle:AWS_ORACLE_EXT

• PostgreSQL: AWS_POSTGRESQL_EXT

有关更多信息,请参阅使用 AWS Lambda 扩展包中的 AWS SCT 函数 (p. 176)。

比较数据库架构如果您在迁移之后对源或目标架构进行了更改,则可以使用 AWS SCT 对两个数据库架构进行比较。您可以对与源架构相同或更早的版本的架构进行比较。

版本 1.096

Page 103: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南比较架构

支持以下架构比较:

• Oracle 与 Oracle,版本 12.1.0.2.0、11.1.0.7.0、11.2.0.1.0、10• SQL Server 与 SQL Server,版本 2016、2014、2012、2008 RD2、2008• PostgreSQL 与 PostgreSQL 和 与 PostgreSQL 兼容的 Aurora,版本 9.6、9.5.9、9.5.4• MySQL 与 MySQL,版本 5.6.36、5.7.17、5.5

您可以在 Project Settings (项目设置) 页的 Compare Schema (比较架构) 选项卡上指定架构比较的设置。

要比较架构,您可选择所需的架构,AWS SCT 会指示两个架构之间不同的对象和相同的对象。

比较两个架构

1. 打开一个现有的 AWS SCT 项目,或者创建一个项目并连接到源终端节点和目标终端节点。2. 选择要比较的架构。3. 打开上下文 (右键单击) 菜单并选择 Compare Schema (比较架构)。

AWS SCT 将通过在对象的图标上添加黑圈来指示两个架构之间不同的对象。

版本 1.097

Page 104: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南相关的已转换对象

您可以将架构比较结果应用于单个对象、单个对象类别或整个架构。选中要将结果应用于的类别、对象或架构旁边的框。

查找相关的已转换对象在架构转换之后,在某些情况下 AWS SCT 可能会为源数据库上的一个架构对象创建多个对象。例如,在执行 Oracle 到 PostgreSQL 的转换时,AWS SCT 会接受每个 Oracle 触发器并在 PostgreSQL 目标上将其转换为一个触发器和一个触发器函数。此外,在 AWS SCT 将 Oracle 包函数或过程转换为 PostgreSQL 时,它会创建一个等效函数和一个 INIT 函数(应在过程或函数可以运行之前作为 init 块运行)。

以下过程可让您查看在架构转换之后创建的所有相关对象。

查看在架构转换期间创建的相关对象

1. 在架构转换之后,在目标树视图中选择已转换对象。2. 选择 Related Converted Objects (相关的已转换对象) 选项卡。3. 查看相关目标对象的列表。

版本 1.098

Page 105: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南

使用 Amazon Redshift 将数据仓库架构转换为 AWS Schema ConversionTool

AWS Schema Conversion Tool 可自动完成从数据仓库架构到 Amazon Redshift 数据库架构的大部分转换过程。因为源数据库引擎和目标数据库引擎可以具有许多不同的特性和功能,所以 AWS SCT 会尝试尽可能在您的目标数据库中创建等效架构。如果无法直接转换,AWS SCT 会提供一个评估报告,其中包含可供您采取的操作的列表。使用 AWS SCT,您可以管理密钥,映射数据类型和对象以及创建手动转换。

AWS SCT 可以将以下数据仓库架构转换为 Amazon Redshift。

• Greenplum 数据库 (版本 4.3 及更高版本)• Microsoft SQL Server (版本 2008 及更高版本)• Netezza (版本 7.0.3 及更高版本)• Oracle (版本 10 及更高版本)• Teradata (版本 13 及更高版本)• Vertica (版本 7.2.2 及更高版本)

如果您要转换联机事务处理 (OLTP) 数据库架构,请参阅 使用 AWS Schema Conversion Tool 转换源数据库架构 (p. 85)。

要转换数据仓库架构,请执行以下步骤。

1. 指定优化策略和规则,并指定您希望 AWS SCT 使用的映射。您可以设置以下操作的规则:更改列数据类型、将对象从一个架构复制到另一架构,以及更改对象名称。

您可以在 Settings 中指定优化和映射。有关优化策略的更多信息,请参阅 选择 AWS SchemaConversion Tool 所用的优化策略和规则 (p. 100)。有关映射的更多信息,请参阅 在 AWS SchemaConversion Tool 中创建映射规则 (p. 102)

2. 提供有关您的源数据仓库的统计数据,以便 AWS SCT 可以优化数据仓库的转换方式。您可以直接从数据库收集统计数据,也可以上传现有的统计数据文件。有关提供数据仓库统计数据的更多信息,请参阅 收集或上传 AWS Schema Conversion Tool 的统计信息 (p. 100)。

3. 创建数据库迁移评估报告,详细介绍无法自动转换的架构元素。您可以使用此报告来确定需要在与源数据库兼容的目标数据库中的哪个位置手动创建架构。有关评估报告的更多信息,请参阅使用 AWS SchemaConversion Tool 创建评估报告 (p. 72)。

4. 转换架构。AWS SCT 可以创建本地版本的转换后架构以供您查看,但在您做好准备之前,不会将其应用于目标数据库。有关转换的更多信息,请参阅使用 AWS Schema Conversion Tool 转换架构 (p. 103)。

5. 转换架构后,您可以管理并编辑键。键管理是数据仓库转换的核心。有关管理密钥的更多信息,请参阅 在AWS Schema Conversion Tool 中管理和自定义键 (p. 107)。

6. 如果存在无法自动转换的架构元素,您有两种选择:更新源架构,然后再次转换;或者在目标数据库中创建等效的架构元素。有关手动转换架构元素的更多信息,请参阅 在 AWS Schema Conversion Tool 中处理手动转换 (p. 108)。有关更新源架构的更多信息,请参阅 更新和刷新 AWS Schema Conversion Tool中的转换后架构 (p. 109)。

7. 当您准备就绪后,可以将转换后的架构应用于目标数据库。有关保存和应用转换的架构的更多信息,请参阅 保存和应用 AWS Schema Conversion Tool 中的转换后架构 (p. 110)。

版本 1.099

Page 106: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南选择优化策略和规则

选择 AWS Schema Conversion Tool 所用的优化策略和规则

要优化 AWS Schema Conversion Tool 转换数据仓库架构的方式,您可以选择希望该工具使用的策略和规则。转换架构并查看建议的键后,您可以调整规则或更改策略,以获得想要的结果。

选择优化策略和规则

1. 选择 Settings (设置),然后选择 Project settings (项目设置)。随即出现 Current project settings 对话框。

2. 在左侧窗格中,选择 Optimization Strategies。优化策略将显示在右侧窗格中且已选定默认值。3. 对于 Strategy Sector,请选择您要使用的优化策略。可从以下选项中进行选择:

• 使用元数据,忽略统计信息 – 在此策略中,只将元数据的信息用于优化决策。例如,如果源表中有多个索引,则使用源数据库排序顺序,第一个索引将成为分配键。

 • 忽略元数据,使用统计信息 – 在此策略中,只通过统计信息做出优化决策。此策略仅适用于提供了

统计数据的表和列。有关更多信息,请参阅 收集或上传 AWS Schema Conversion Tool 的统计信息 (p. 100)。

 • 使用元数据与统计信息 – 在此策略中,优化决策同时使用元数据和统计数据。

 4. 选择优化策略后,您可以选择要使用的规则。可从以下选项中进行选择:

• 使用元数据选择分配键和排序键• 为排序规则选择事实数据表和适当的维度• 分析索引列的基数• 在 QueryLog 表中查找最常用的表和列

对于每个规则,您可以分别为排序键和分配键输入一个权重。AWS SCT 使用您在转换架构时选择的权重。稍后,当您查看建议的键时,如果您对结果不满意,可以返回此处更改您的设置。有关更多信息,请参阅 在 AWS Schema Conversion Tool 中管理和自定义键 (p. 107)。

收集或上传 AWS Schema Conversion Tool 的统计信息

要优化 AWS Schema Conversion Tool 转换数据仓库架构的方式,您可以提供该工具可使用的来自源数据库的统计数据。您可以直接从数据库收集统计数据,也可以上传现有的统计数据文件。

提供并查看统计数据

1. 打开您的并连接到源数据库。2. 从项目左侧面板中选择一个架构对象,然后打开该对象的上下文 (右键单击) 菜单。选择 Collect

Statistics 或 Upload Statistics,如下所示。

版本 1.0100

Page 107: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南收集或上传统计数据

3. 从项目左侧面板中选择架构对象,然后选择 Statistics 选项卡。您可以查看该对象的统计数据。

稍后,当您查看建议的键时,如果您对结果不满意,可以收集更多统计数据并重复此过程。有关更多信息,请参阅 在 AWS Schema Conversion Tool 中管理和自定义键 (p. 107)。

版本 1.0101

Page 108: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建映射规则

在 AWS Schema Conversion Tool 中创建映射规则使用 AWS Schema Conversion Tool 转换架构之前,您现在可以设置以下操作的规则:更改列数据类型、将对象从一个架构复制到另一架构,以及更改对象名称。例如,如果您的源架构中有一组名为test_TABLE_NAME 的表,则可以设置一个规则,以便在目标架构中将前缀 test_ 更改为前缀 demo_。

Note

您只能在源数据库引擎和目标数据库引擎不同时创建映射规则。

您可以创建执行以下任务的映射规则:

• 更改数据类型• 移动对象• 重命名对象• 前缀 - 添加前缀,删除前缀,替换前缀• 后缀 - 添加后缀,删除后缀,替换后缀

您可以为以下对象创建映射规则:

• Database• 架构• Table• 列

创建映射规则您可以创建映射规则并将规则另存为项目的一部分。打开项目,使用以下过程创建映射规则。

创建映射规则

1. 从 Settings 菜单中选择 Mapping Rules。随即出现 Mapping Rules 对话框。顶部窗格包含映射 (转换) 规则。

版本 1.0102

Page 109: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南查看对象的映射规则

2. 在 Tranformation Rules 窗格中,选择 Add new rule。3. 配置您的转换规则。

a. 对于 Name,请键入规则名称。b. 对于 For,请选择该规则适用的对象的类型。c. 对于 where,请键入在应用映射规则之前要应用于对象的筛选器。通过使用 LIKE 子句对 WHERE

子句进行评估。您可以输入一个确切名称以选择一个对象,也可以输入一种模式来选择多个对象。

适用于 where 子句的字段有所不同,具体取决于对象类型。例如,如果对象类型为架构,则只有一个字段可用于架构名称。

d. 对于 Actions,选择要创建的映射规则的类型。e. 根据规则类型,键入一个或两个其他值。例如,要重命名对象,请键入对象的新名称。要替换前

缀,请键入旧前缀和新前缀。4. 配置完映射规则后,请选择 Save 以保存您的规则。您也可以选择 Cancel 以取消所做更改。5. 添加、编辑和删除完规则后,选择 Save All 以保存您的所有更改。6. 选择 Close 以关闭 Mapping Rules 对话框。

您可以使用切换图标来关闭映射规则,而不将其删除。您可以使用复制图标来复制现有的映射规则。您可以使用删除图标来删除现有的映射规则。要保存对映射规则所做的所有更改,请选择 Save All。

查看对象的映射规则设置映射规则后,您可以在转换架构之前,查看这些规则对架构中特定对象的效果。在源架构树中,选择您感兴趣的对象。在主视图中,选择 Mapping 选项卡。Mapping 选项卡会打开并显示一个列表,其中包含应用于该对象的所有映射规则。您可以在源架构中查看对象的名称,在目标架构中查看对象的新名称。如果已设置数据类型规则,还可在源架构中查看列的数据类型,在目标架构中查看列的新数据类型。

导出映射规则如果您使用 AWS Database Migration Service (AWS DMS) 将数据从源数据库迁移到目标数据库,则可向AWS DMS 提供有关映射规则的信息。有关任务的更多信息,请参阅使用 AWS Database Migration Service复制任务。

导出映射规则

1. 在 AWS Schema Conversion Tool 的源架构树中,打开上下文(右键单击)菜单,然后选择 Exportscript for DMS (导出 DMS 的脚本)。此时显示保存对话框。

2. 浏览到要保存脚本的位置,然后选择 Save。您的映射规则另存为可由 AWS DMS 使用的 JSON 脚本。

使用 AWS Schema Conversion Tool 转换架构将项目连接到源数据库和目标数据库后,您的 AWS Schema Conversion Tool 项目会在左侧面板中显示源数据库中的架构。该架构以树状图格式显示,且树的每个节点均延迟加载。如果您选择树状图中的节点,AWSSCT 会在这个时候要求您的源数据库提供架构信息。

您可以从源数据库中选择架构项目,然后将该架构转换为目标数据库的数据库引擎的等效架构。您可以从源数据库中选择要转换的任何架构项目。如果您选择的架构项取决于父项,则 AWS SCT 还会为该父项生成架构。例如,如果您从表中选择一个要转换的列,则 AWS SCT 为该列、该列所在的表以及该表所在的数据库生成架构。

版本 1.0103

Page 110: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南转换架构

转换架构要转换源数据库的架构,请从项目的左侧面板中选择要转换的架构对象。打开该对象的上下文 (右键单击) 菜单,然后选择 Convert schema,如下所示。

转换完源数据库的架构后,您可以从项目左侧面板中选择架构项目,并在项目的中心面板中查看转换后的架构。中下方面板显示转换后架构的属性以及创建该架构所用的 SQL 命令,如下所示。

版本 1.0104

Page 111: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南编辑转换后的架构

转换完架构后,您可以保存您的项目。源数据库中的架构信息随您的项目一起保存。此功能意味着您可以离线工作,而无需连接到源数据库。如果对于源数据库选择 Refresh from Database (从数据库刷新),AWSSCT 会连接到您的源数据库,以更新项目中的架构。有关更多信息,请参阅 更新和刷新 AWS SchemaConversion Tool 中的转换后架构 (p. 109)。

您可以为无法自动转换的项目创建一个数据库迁移评估报告。该评估报告对于识别和解析无法自动转换的架构项目很有用。有关更多信息,请参阅使用 AWS Schema Conversion Tool 创建评估报告 (p. 72)。

当 AWS SCT 生成转换后的架构后,不会立即将其应用于目标数据库。而会将转换后的架构存储在本地,直到您准备好将其应用到目标数据库。有关更多信息,请参阅 应用转换后的架构 (p. 111)。

编辑转换后的架构您可以编辑转换后的架构,并将更改另存为项目的一部分。

编辑转换后的架构

1. 在显示源数据库架构的左侧面板中,选择要为其编辑转换后架构的架构项目。2. 在显示所选项目的转换后架构的中下方面板中,选择 SQL 选项卡。3. 在 SQL 选项卡显示的文本中,根据需要更改架构。该架构会在您进行更新时自动随项目一起保存。

版本 1.0105

Page 112: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南清除转换后的架构

您对转换后架构的更改会在您进行更新时随项目一起存储。如果您刚从源数据库转换一个架构项目,并且已对该项目之前转换的架构进行了更新,则这些现有更新将替换为基于源数据库的新转换的架构项目。

清除转换后的架构在您将架构应用到目标数据库之前,AWS SCT 仅在本地将转换后的架构存储在项目中。您可以通过选择目标数据库的树状图节点,然后选择 Refresh from Database 来清除您的项目中的计划架构。由于尚未向目标数据库中写入架构,从数据库刷新会删除 AWS SCT 项目中的计划架构元素,以便与目标数据库中的现有元素相匹配。

版本 1.0106

Page 113: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南管理和自定义键

在 AWS Schema Conversion Tool 中管理和自定义键

在使用 AWS Schema Conversion Tool 转换架构后,您可以管理并编辑键。键管理是数据仓库转换的核心。

要管理键,请在目标数据库中选择一个表,然后选择 Key Management 选项卡,如下所示。

版本 1.0107

Page 114: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南处理手动转换

左侧窗格包含键建议,以及每个建议的置信评级。您可以选择其中一个建议,也可以通过在右侧窗格中编辑来自定义键。

如果键的选择与预期不相符,您可以编辑优化策略,然后重试转换。有关更多信息,请参阅 选择 AWSSchema Conversion Tool 所用的优化策略和规则 (p. 100)。

在 AWS Schema Conversion Tool 中处理手动转换评估报告包含一系列无法自动转换到目标数据库的数据库引擎的项目。对于无法转换的每一项,Action Items选项卡上都有一个操作项。

您可以按如下方式应对评估报告中的操作项:

• 修改您的源数据库架构。• 修改您的目标数据库架构。

修改您的源架构对于某些项目,将源数据库中的数据库架构修改为可自动转换的架构可能更容易。首先验证新更改与您的应用程序架构兼容,然后更新源数据库中的架构。最后,用更新的架构信息刷新您的项目。然后,您可以转换更新后的架构,并生成新的数据库迁移评估报告。对于在源架构中更改的项目,不再显示操作项。

此过程的优势是,当您从源数据库刷新时,更新后的架构始终可用。

版本 1.0108

Page 115: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南修改您的目标架构

修改您的目标架构对于某些项目,更容易的方法可能是将转换后的架构应用于目标数据库,然后手动将无法自动转换的项目的等效架构项目添加到目标数据库。您可以编写所有可通过应用该架构自动转换到目标数据库的架构。有关更多信息,请参阅 保存和应用 AWS Schema Conversion Tool 中的转换后架构 (p. 110)。

写入到目标数据库中的架构不包含无法自动转换的项目。在将架构应用到目标数据库后,您就可以在目标数据库中手动创建与源数据库中的架构等效的架构。数据库迁移评估报告中的操作项包含有关如何创建等效架构的建议。

Warning

如果您在目标数据库中手动创建构架,请保存所做的所有手动操作的副本。如果再次将您的项目的转换后架构应用到目标数据库,它将覆盖您所做的手动操作。

在某些情况下,您无法在目标数据库中创建等效架构。您可能需要重新架构一部分应用程序和数据库,以便将该数据库引擎提供的功能用于您的目标数据库。在其他情况下,您可以简单地忽略无法自动转换的架构。

更新和刷新 AWS Schema Conversion Tool 中的转换后架构

您可以更新 AWS Schema Conversion Tool 项目中的源架构和目标架构。

• 源 – 如果您更新源数据库的架构,AWS SCT 将用源数据库中的最新架构代替您的项目中的架构。如果您已对源数据库的架构进行了更改,则可使用此功能来更新项目。

 • 目标 – 如果您更新目标数据库的架构,AWS SCT 将用目标数据库中的最新架构代替您的项目中的架构。

如果您尚未将任何架构应用到目标数据库,AWS SCT 将从您的项目中清除转换后的架构。然后,您可以转换源数据库中的架构,以获得干净的目标数据库。

 

您可以通过选择 Refresh from Database (从数据库刷新) 更新 AWS SCT 项目中的架构,如下所示。

版本 1.0109

Page 116: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南保存和应用架构

保存和应用 AWS Schema Conversion Tool 中的转换后架构

当 AWS Schema Conversion Tool 生成转换后的架构(如 使用 AWS Schema Conversion Tool 转换架构 (p. 103) 中所示)后,不会立即将转换后的架构应用到目标数据库。而会在本地将转换后的架构存储在项目中,直到您准备好将其应用到目标数据库。使用此功能,您可以使用无法自动转换到目标数据库引擎的架构项目。有关无法自动转换的项目的更多信息,请参阅使用 AWS Schema Conversion Tool 创建评估报告 (p. 72)。

您可以选择在将架构应用到目标数据库之前,让该工具将转换后的架构作为 SQL 脚本保存到文件中。此外,您还可以让该工具将转换后的架构直接应用到目标数据库。

将转换后的架构保存到文件中您可以将转换后的架构作为 SQL 脚本保存到一个文本文件中。使用此方法,您可以将 AWS SCT 中生成的SQL 脚本修改为该工具无法自动转换的地址项。然后,您可以在目标数据库上运行更新的脚本,将转换后的架构应用到目标数据库。

要将转换后的架构保存为 SQL 脚本,请打开架构元素的上下文(右键单击)菜单,然后选择 Save asSQL,如下所示。

版本 1.0110

Page 117: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南应用转换后的架构

应用转换后的架构在您准备好将转换后的架构应用到目标数据库后,请从项目的右侧面板中选择该架构元素。打开架构元素的上下文 (右键单击) 菜单,然后选择 Apply to database,如下所示。

版本 1.0111

Page 118: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南扩展包架构

扩展包架构首次将转换后的架构应用于目标数据库实例时,AWS SCT 会向目标数据库实例添加一个额外的架构。该架构用于实现将转换后的架构写入到目标数据库实例时必需的源数据库的系统功能。该架构称为扩展包架构。

不要修改扩展包架构,否则,您可能会在写入到目标数据库实例的转换后架构中遇到意外结果。将架构完全迁移到目标数据库实例后,就不再需要 AWS SCT 了,您可以删除该扩展包架构。

扩展包架构按照您的源数据库命名,如下所示:

• Greenplum:AWS_GREENPLUM_EXT

• Microsoft SQL Server: AWS_SQLSERVER_EXT• Netezza:AWS_NETEZZA_EXT

• Oracle:AWS_ORACLE_EXT

• Teradata:AWS_TERADATA_EXT

• Vertica:AWS_VERTICA_EXT

有关更多信息,请参阅使用 AWS Schema Conversion Tool 扩展包 (p. 174)。

版本 1.0112

Page 119: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南Python 库

Python 库要在 Amazon Redshift 中创建自定义函数,您可以使用 Python 语言。使用 AWS SCT 扩展包以安装Amazon Redshift 数据库的 python 库。有关更多信息,请参阅使用 AWS Schema Conversion Tool 扩展包 (p. 174)。

使用 Amazon Redshift 优化 AWS SchemaConversion Tool

您可以使用 AWS Schema Conversion Tool 优化 Amazon Redshift 数据库。使用 Amazon Redshift 数据库作为源,使用测试 Amazon Redshift 数据库作为目标,AWS SCT 建议通过排序键和分配键来优化您的数据库。

优化您的 Amazon Redshift 数据库使用以下过程优化您的 Amazon Redshift 数据库。

优化您的 Amazon Redshift 数据库

1. 对您的 Amazon Redshift 集群拍摄手动快照以作为备份。优化 Amazon Redshift 集群并对所做的任何更改进行测试后,您可以删除该快照。有关更多信息,请参阅 Amazon Redshift 快照。

2. 从项目左侧面板中选择一个要转换的架构对象。打开该对象的上下文 (右键单击) 菜单,然后选择 CollectStatistics。

AWS SCT 使用统计数据针对排序键和分配键提出建议。3. 从项目左侧面板中选择一个要优化的架构对象。打开该对象的上下文 (右键单击) 菜单,然后选择 Run

Optimization。

AWS SCT 针对排序键和分配键提出建议。4. 要查看建议,请在项目左侧面板的架构下方展开表节点,然后选择一个表。选择 Key Management 选项

卡,如下所示。

版本 1.0113

Page 120: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南优化您的 Amazon Redshift 数据库

左侧窗格包含键建议,以及每个建议的置信评级。您可以选择其中一个建议,也可以通过在右侧窗格中编辑来自定义键。

5. 您可以创建一个包含优化建议的报告。要创建该报告,请执行以下操作:

a. 从项目左侧面板中选择一个已经优化的架构对象。打开该对象的上下文 (右键单击) 菜单,然后选择Create Report。

该报告将在主窗口中打开,并显示 Summary 选项卡。报告将显示具有优化建议的对象的数量。b. 选择 Action Items 选项卡,以查看报告格式的密钥建议。c. 您可以将优化报告的本地副本另存为 PDF 文件或逗号分隔值 (CSV) 文件。CSV 文件仅包含操作项

信息。PDF 文件包含摘要和操作项信息。6. 要将建议的优化应用于数据库,请在项目右侧窗格中选择一个对象。打开对象的上下文 (右键单击) 菜

单,然后选择 Apply to database。

版本 1.0114

Page 121: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南

将 ETL 流程转换为 AWS Glue除了使用 AWS SCT 迁移架构和数据之外,您还可以迁移提取、转换和加载 (ETL) 流程。这种类型的迁移包括转换与 ETL 相关的业务逻辑(位于源数据仓库内或单独运行的外部脚本中)。迁移后,ETL 流程将在AWS Glue 中运行。您可以将 ETL 到 AWS Glue 的迁移作为转换数据定义语言 (DDL) 语句和数据过程中的单独项目运行。

目前,仅支持 Oracle ETL 和 Teradata BTEQ 到 AWS Glue 的转换。

版本 1.0115

Page 122: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南先决条件

主题• 先决条件 (p. 116)• 了解 AWS Glue 数据目录 (p. 116)• 使用 AWS Glue 进行转换的限制 (p. 116)• 在 AWS SCT UI 中使用 AWS Glue 进行转换 (p. 117)• 使用适用于 AWS Glue 的 Python API 进行转换 (p. 121)

先决条件开始之前,请执行以下操作:

• 迁移您打算迁移到 AWS 的任何源数据库。• 将目标数据仓库迁移到 AWS。• 收集 ETL 流程中涉及的所有代码的列表。• 收集每个数据库的所有必要连接信息的列表。

了解 AWS Glue 数据目录作为转换过程的一部分,AWS Glue 加载与源数据库和目标数据库相关的信息。它将这些信息分成不同的类别,并采用称为树 的结构。此结构包括以下内容:

• 连接 – 连接参数• 爬网程序 – 爬网程序的列表,每个架构对应一个爬网程序• 数据库 – 容纳表的容器• 表 – 表示表中数据的元数据定义• ETL 任务 – 执行 ETL 工作的业务逻辑• 触发器 – 用于控制 ETL 作业何时在 AWS Glue 中运行(是否按需、按计划或由作业事件触发)的逻辑

AWS Glue 数据目录 是数据的位置、架构和运行时指标的索引。当您结合使用 AWS Glue 与 AWS SCT时,AWS Glue 数据目录包含对在 AWS Glue 中用作 ETL 作业的源和目标的数据的引用。要创建数据仓库,您必须编录该数据。

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

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

使用 AWS Glue 进行转换的限制结合使用 AWS SCT 与 AWS Glue 进行转换时存在以下限制。

资源 默认限制

每个账户的数据库数量 10000

每个数据库的表数量 100000

版本 1.0116

Page 123: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南在 AWS SCT UI 中使用 AWS Glue 进行转换

每个表的分区数量 1000000

每个表的表版本数量 100000

每个账户的表数量 1000000

每个账户的分区数量 10000000

每个账户的表版本数量 1000000

每个账户的连接数量 1000

每个账户的爬网程序数量 25

每个账户的作业数量 25

每个账户的触发器数量 25

每个账户的并发作业运行数量 30

每个作业的并发作业运行数量 3

每个触发器的作业数量 10

每个账户的开发终端节点数量 5

开发终端节点一次使用的最大 DPU 数 5

角色一次使用的最大数据处理单元 (DPU) 数 100

数据库名称长度 无限

为了与其他元数据存储(如 Apache Hive)兼容,名称会更改为使用小写字符。

Note

如果您计划从 Athena 访问数据库,请提供只包含字母数字和下划线字符的名称。

连接名称长度 无限

爬网程序名称长度 无限

在 AWS SCT UI 中使用 AWS Glue 进行转换在以下部分中,您可以找到结合使用 AWS Glue 与 AWS SCT 转换 ETL 时可遵循的过程的概述。在本示例中,我们将 Oracle 数据库转换为 Amazon Redshift,并将 ETL 流程与源数据库和数据仓库结合使用。

主题• 步骤 1:创建新项目 (p. 117)• 步骤 2:创建 AWS Glue 作业 (p. 120)

步骤 1:创建新项目首先,启动新项目。为此,启动 AWS SCT,然后选择 File (文件) 和 New Project (新建项目)。提供名称和位置以保存您的新项目。

版本 1.0117

Page 124: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南步骤 1:创建新项目

选择 Data warehouse (OLAP) (数据仓库(OLAP) ),然后选择您的源和目标数据库引擎。

确保您已在项目设置中启用 Use AWS Glue (使用 AWS Glue)。要查看项目设置,选择 Settings (设置) 和Project Settings (项目设置)。

要完成准备导入您的 ETL,请建立到源和目标数据库引擎的连接。选择以字词 Connect to (连接到) 开头的菜单项。这些标签自定义为显示您在创建项目时已选择的数据库引擎。例如,如果您选择了 Oracle 和Amazon Redshift,菜单将显示选项 Connect to Oracle (连接到 Oracle) 和 Connect to Amazon Redshift (连接到 Amazon Redshift)。

版本 1.0118

Page 125: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南步骤 1:创建新项目

在您选择连接到源数据库的选项后,输入您的连接信息。当 SCT 显示数据库对象的列表时,您便知道连接已完成。

在您选择连接到目标数据库的选项后,请输入您的连接信息。接下来,选择显示的 AWS Glue 选项卡。对于 Copy from AWS profile (从 AWS 配置文件复制),选择要使用的配置文件。配置文件应自动填写 AWS访问密钥、私有密钥和 Amazon S3 存储桶文件夹。如果不是这样,请自行输入这些信息。选择 OK (确定)后,AWS Glue 分析对象并将元数据加载到 AWS Glue 数据目录中。以下屏幕截图显示了此屏幕内容的示例。在示例中,我们使用了 Amazon Redshift 作为目标数据库。

Note

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

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

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

版本 1.0119

Page 126: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南步骤 2:创建 AWS Glue 作业

当转换完成时,脚本将存储在 AWS Glue Data Catalog (AWS Glue 数据目录) 的 Scripts (脚本) 文件夹中的目标服务器上。您可以在屏幕右侧的源数据库窗格上查看此信息。要将脚本上传到 S3,请从其上下文(右键单击)菜单中选择 Save to S3 (保存至 S3)。

步骤 2:创建 AWS Glue 作业在将脚本保存到 S3 后,您可以选择它,然后选择 Configure AWS Glue Job (配置 AWS Glue 作业) 以打开向导来配置 AWS Glue 作业。此向导可让您更轻松地对其进行设置。

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

在向导的第二个步骤或选项卡中,您可以为您的作业命名,并直接配置 AWS Glue 的设置。在此屏幕上,您可以配置以下设置:

• IAM 角色• 脚本文件名和文件路径• 使用 Amazon S3 托管密钥 (SSE-S3) 通过服务器端加密来加密脚本• 临时目录• 生成的 Python 库路径• 用户 Python 库路径• 从属 .jars 路径(从属 .jar 文件的路径)• 引用的文件路径• 每个作业运行的并发 DPU 数量• 最大并发数量• 作业超时(分钟)• 延迟通知阈值(分钟)• 重试次数• 安全配置• 服务器端加密

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

配置完作业后,作业会显示在 AWS Glue 数据目录中的 ETL 作业下。如果您选择该作业,设置将显示,因此您可以查看或编辑它们。要在 AWS Glue 中创建新作业,请从作业的上下文(右键单击)菜单中选择 Create

版本 1.0120

Page 127: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南使用适用于 AWS Glue 的 Python API 进行转换

AWS Glue Job (创建 AWS Glue 作业)。执行此操作将应用架构定义。要刷新显示内容,请从上下文(右键单击)菜单中选择 Refresh from database (从数据库刷新)。

此时,您可以在 AWS Glue 控制台中查看您的作业。为此,登录 AWS 管理控制台并通过以下网址打开 AWSGlue 控制台:https://console.aws.amazon.com/glue/。

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

使用适用于 AWS Glue 的 Python API 进行转换在以下部分中,您可以找到在 Python 中调用 AWS Glue API 操作的转换的描述。有关更多信息,请参阅AWS Glue 开发人员指南 中的在 Python 中编写 AWS Glue ETL 脚本。

步骤 1:创建数据库第一步是使用 AWS 开发工具包 API 在 AWS Glue 数据目录中创建新数据库。当您在数据目录中定义表时,您将其添加到数据库。数据库用于组织 AWS Glue 中的表。

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

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:创建连接使用 AWS 开发工具包 API 在数据目录中创建新连接。

以下示例演示了如何使用适用于 AWS Glue 的 Python API 的 create_connection 方法。

response = client.create_connection( ConnectionInput={ 'Name': 'Redshift_abcde03.aabbcc112233.us-west-2.redshift.amazonaws.com_dev',

版本 1.0121

Page 128: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南步骤 3:创建 AWS Glue 爬网程序

'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 爬网程序接下来,您将创建一个 AWS Glue 爬网程序来填充 AWS Glue 目录。有关更多信息,请参阅 AWS Glue 开发人员指南中的使用爬网程序编录表。添加爬网程序的第一步是使用 AWS 开发工具包 API 在数据目录中创建新数据库。在开始之前,您必须先使用 delete_crawler 操作删除其先前的任何版本。

创建爬网程序时,请注意以下几点:

• 对于爬网程序名称,使用格式<redshift_node_name>_<redshift_database_name>_<redshift_shema_name>,例如:abcde03_dev_ora_glue

• 使用已存在的 IAM 角色。有关创建 IAM 角色的更多信息,请参阅 IAM 用户指南 中的创建 IAM 角色。• 请使用您在先前步骤中创建的数据库的名称。• 使用 ConnectionName 参数,这是必需的。• 对于 path 参数,使用 JDBC 目标的路径,例如:dev/ora_glue/%

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

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

response = client.create_crawler(

版本 1.0122

Page 129: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南步骤 3:创建 AWS Glue 爬网程序

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 数据类型将按照以下方式映射到 Glue 数据类型。

Amazon Redshift 数据类型 AWS Glue 数据类型

smalint smallint

integer int

bigint bigint

decimal decimal(18,0)

decimal(p,s) decimal(p,s)

real double

double precision double

布尔值 布尔值

版本 1.0123

Page 130: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南步骤 3:创建 AWS Glue 爬网程序

char 字符串

varchar 字符串

varchar(n) 字符串

date date

timestamp timestamp

timestamptz timestamp

版本 1.0124

Page 131: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 AWS SCT 复制代理与 AWS DMS 结合使用

将 AWS Schema Conversion Tool 与AWS Database Migration Service 结合使用将 AWS SCT 复制代理与 AWS DMS 结合使用

对于非常大的数据库迁移,您可以使用 AWS SCT 复制代理将本地数据库中的数据复制到 Amazon S3 或Amazon Snowball 设备。复制代理可与 AWS DMS 结合使用,在 AWS SCT 关闭的情况下,复制代理可以在后台工作。

当与 Amazon Snowball 结合使用时,AWS SCT 代理会将数据提取到 Amazon Snowball 设备。然后将该设备发送到 AWS,并将数据加载到 Amazon S3 存储桶。在这段时间内,AWS SCT 代理将继续运行。然后,该代理会在 Amazon S3 上接收数据,并将数据复制到目标终端节点。

有关更多信息,请参阅使用数据提取代理 (p. 126)。

将 AWS SCT 数据提取代理与 AWS DMS 结合使用AWS SCT 提供了数据提取代理,可简化从 Apache Cassandra 到 Amazon DynamoDB 的迁移。Cassandra和 DynamoDB 是 NoSQL 数据库,但它们具有不同的系统架构和数据表示形式。AWS SCT 提供了基于向导的 Cassandra 工作流程来自动执行 Cassandra 到 DynamoDB 的迁移过程,并与 AWS Database MigrationService (AWS DMS) 集成在一起来执行实际迁移。

有关更多信息,请参阅使用数据提取代理 (p. 126)。

版本 1.0125

Page 132: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将本地数据仓库中的数据迁移到 Amazon Redshift

使用数据提取代理在某些迁移方案中,源数据库和目标数据库大不相同,因此需要额外的数据转换。AWS SCT 是可扩展的,使您可以使用 代理 满足这些方案需求;该代理是一种外部程序,与 AWS SCT 集成在一起,但在其他位置(例如在 Amazon EC2 实例上)执行数据转换。—此外, AWS SCT 代理可代表您与其他 AWS 服务进行交互;例如,为您创建和管理 AWS Database Migration Service 任务。—

以下各主题更详细地描述了这些方案,并介绍了如何在迁移过程中使用 AWS SCT 代理。

主题• 将本地数据仓库中的数据迁移到 Amazon Redshift (p. 126)• 将 Apache Cassandra 中的数据迁移到 Amazon DynamoDB (p. 147)

将本地数据仓库中的数据迁移到 Amazon Redshift您可以使用 AWS SCT 代理提取本地数据仓库中的数据并将其迁移到 Amazon Redshift。该代理将提取您的数据,并将该数据上传到 Amazon S3 或 AWS Snowball 设备。然后,您可以使用 AWS SCT 将数据复制到Amazon Redshift。

Amazon S3 是一种存储和检索服务。要将数据元存储到 Amazon S3 中,请将要存储的文件上传到 AmazonS3 存储桶中。在上传文件时,您可以设置对象以及任何元数据的权限。

大型数据迁移可能包含很多 TB 的信息,并且可能会由于网络性能以及需要移动非常大的数据量而减慢速度。AWS Snowball 是一种 AWS 服务,使用 AWS 拥有的设备,以比网络更快的速度将数据传输到云中。一个 AWS Snowball 设备最多可容纳 80 TB 的数据,一个 AWS Snowball Edge 设备最多可容纳 100 TB的数据。它使用 256 位加密和行业标准的受信任平台模块 (TPM),以确保您的数据安全并形成完整的监管链。AWS SCT 同时适用于 AWS Snowball 设备和 AWS Snowball Edge 设备 (二者在本指南的其余部分中称作 AWS Snowball 设备)。

在使用 AWS SCT 和 AWS Snowball 设备时,可以将数据迁移过程分为两个阶段。首先,您使用 AWS SCT在本地处理数据,并将该数据移动到 AWS Snowball 设备中。之后,您可以使用 AWS Snowball 过程将设备寄送到 AWS,AWS 随后会自动将数据加载到 Amazon S3 存储桶中。接下来,当 Amazon S3 上提供数据时,您可以使用 AWS SCT 将数据迁移到 Amazon Redshift。当 AWS SCT 关闭时,数据提取代理可在后台工作。

下图显示了支持的方案。

版本 1.0126

Page 133: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将本地数据仓库中的数据迁移到 Amazon Redshift

以下源数据仓库当前支持数据提取代理:

• Greenplum 数据库 (版本 4.3 及更高版本)• Microsoft SQL Server (版本 2008 及更高版本)• Netezza (版本 7.0.3 及更高版本)• Oracle (版本 10 及更高版本)• Teradata (版本 13 及更高版本)• Vertica (版本 7.2.2 及更高版本)

如果您需要符合联邦信息处理标准安全要求,则可以连接到 Amazon Redshift 的 FIPS 终端节点。FIPS 终端节点在以下 AWS 区域可用:

• 美国东部(弗吉尼亚北部)地区 (redshift-fips.us-east-1.amazonaws.com)• 美国东部(俄亥俄)区域 (redshift-fips.us-east-2.amazonaws.com)• 美国西部(加利福利亚北部)区域 (redshift-fips.us-west-1.amazonaws.com)• 美国西部(俄勒冈)区域 (redshift-fips.us-west-2.amazonaws.com)

使用以下主题中的信息了解如何使用数据提取代理。

主题• Amazon S3 的先决条件设置和数据提取代理的安全性 (p. 128)• 安装提取代理 (p. 129)• 向 AWS Schema Conversion Tool 注册提取代理 (p. 132)• 隐藏和恢复 AWS SCT 代理的信息 (p. 133)• 在 AWS Schema Conversion Tool 中创建数据提取筛选条件 (p. 134)• 在使用 AWS SCT 进行迁移前对数据进行排序 (p. 134)

版本 1.0127

Page 134: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南先决条件设置

• 创建、运行和监视 AWS SCT 数据提取任务 (p. 135)• 使用 AWS Snowball 设备提取数据 (p. 137)• 数据提取任务输出 (p. 142)• 对 AWS Schema Conversion Tool 使用虚拟分区 (p. 143)• 将 LOB 迁移到 Amazon Redshift (p. 146)• 数据提取代理的最佳实践和故障排除 (p. 147)

Amazon S3 的先决条件设置和数据提取代理的安全性在使用数据提取代理之前,请存储 Amazon S3 存储桶信息并设置安全套接字层 (SSL) 信任和密钥存储。

Amazon S3 设置当代理提取数据后,它们会将其上传到 Amazon S3 存储桶。继续操作之前,您必须提供凭证以连接到您的AWS 账户和 Amazon S3 存储桶。将凭证和存储桶信息存储在全局应用程序设置的一个配置文件中,然后将该配置文件与 AWS SCT 项目进行关联。如有必要,请选择 Global Settings 以创建新的配置文件。有关更多信息,请参阅在 AWS Schema Conversion Tool 中使用 AWS 服务配置文件 (p. 12)。

安全设置AWS Schema Conversion Tool 和提取代理可通过安全套接字层 (SSL) 进行通信。要启用 SSL,请设置信任存储和密钥存储。

建立与提取代理的安全通信

1. 开始 AWS Schema Conversion Tool.2. 打开 Settings 菜单,然后选择 Global Settings。此时显示 Global settings 对话框。

选择 Security(安全)选项卡,如下所示。

版本 1.0128

Page 135: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南安装代理

3. 选择 Generate Trust and Key Store,或选择 Select existing Trust and Key Store。

如果您选择 Generate Trust and Key Store,则可为信任存储和密钥存储指定名称和密码,并为生成的文件指定位置路径。您会在后面的步骤中用到这些文件。

如果选择 Select existing Trust and Key Store,则为信任存储和密钥存储指定密码和文件名。您会在后面的步骤中用到这些文件。

4. 指定信任存储和密钥存储后,请选择 OK 以关闭 Global Settings 对话框。

安装提取代理我们建议您将多个提取代理安装在不同的计算机上,与运行 AWS Schema Conversion Tool 的计算机分开。

以下操作系统当前支持提取代理:

• macOS• Microsoft Windows• Red Hat Enterprise Linux (RHEL) 6.0• Ubuntu Linux (版本 14.04 及更高版本)

使用以下过程安装提取代理。对每台要安装提取代理的计算机重复此过程。

版本 1.0129

Page 136: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南安装代理

安装提取代理

1. 如果尚未下载 AWS SCT 安装程序文件,则按照 安装、验证和更新 AWS Schema ConversionTool (p. 4) 中的说明进行下载。包含 AWS SCT 安装程序文件的 .zip 文件还包含提取代理安装程序文件。

2. 在一个名为 agents 的子文件夹中查找提取代理的安装程序文件。对于每个计算机操作系统,用于安装提取代理的正确文件如下所示。

操作系统 文件名

macOS aws-schema-conversion-tool-extractor-1.0.build-number.dmg

Microsoft Windows aws-schema-conversion-tool-extractor-1.0.build-number.msi

RHEL aws-schema-conversion-tool-extractor-1.0.build-number.x86_64.rpm

Ubuntu Linux aws-schema-conversion-tool-extractor-1.0.build-number.deb

3. 要在另一台计算机上安装提取代理,请将安装程序文件复制到新计算机上。4. 运行安装程序文件。使用适合您的操作系统的说明,如下所示。

操作系统 安装说明

macOS 在查找工具中,打开 aws-schema-conversion-tool-extractor-1.0.build-number.dmg。

将 aws-schema-conversion-tool-extractor-1.0.build-number.dmg 拖到 Applications 文件夹中。

Microsoft Windows 双击该文件以运行安装程序。

RHEL 在下载或存储该文件的文件夹中运行以下命令:

sudo rpm -ivh aws-schema-conversion-tool-extractor-1.0.build-number.x86_64.rpm

Ubuntu Linux 在下载或存储该文件的文件夹中运行以下命令:

sudo dpkg -i aws-schema-conversion-tool-extractor-1.0.build-number.deb

5. 安装适用于您的源数据库引擎的 Java 数据库连接 (JDBC) 驱动程序。有关说明和下载链接,请参阅 安装所需的数据库驱动程序 (p. 8)。仅遵循适合源数据库引擎 (而不是目标数据库引擎) 的说明。

6. 复制您在之前过程中生成的 SSL 信任存储和密钥存储 (.zip 或各个文件)。如果您将 .zip 文件复制到新计算机,则从新计算机上的 .zip 文件中提取各个文件。

您可以将这些文件放在任何需要的位置。但是,请记下这些位置,因为在稍后的过程中,您需要告知代理在何处找到这些文件。

通过完成下一部分的过程,继续安装提取代理。

版本 1.0130

Page 137: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南安装代理

配置提取代理使用以下过程配置提取代理。对每台已安装提取代理的计算机重复此过程。

配置提取代理

• 在安装了代理的位置运行设置程序。对于 RHEL 和 Ubuntu,该文件名为 sct-extractor-setup.sh。对于 macOS 和 Microsoft Windows,该文件名为 AWS SCT Data Extractor Agent,您可以通过双击来运行该文件。

设置程序会提示您输入信息。对于每个提示,系统会显示默认值。您可以接受默认值,也可以键入一个新值。您指定以下信息:

• 数据仓库引擎。• 代理侦听的端口号。• 安装了 JDBC 驱动程序的位置。• 工作文件夹。您的提取数据将转入此位置的子文件夹中。工作文件夹可能与代理分别位于不同的计算

机,且单个工作文件夹可由不同计算机上的多个代理共享。• 密钥存储文件的位置。• 密钥存储的密码。• 信任存储文件的位置。• 信任存储的密码。

设置程序将更新提取代理的设置文件。设置文件名为 Settings.properties,位于安装了提取代理的位置。下面是一个设置文件示例。

port=8888vendor=ORACLEdriver.jars=<driver path>/Install/Drivers/ojdbc7.jarlocation=<output path>/dmt/8888/outextractor.log.folder=<log path>/dmt/8888/logextractor.storage.folder=<storage path>/dmt/8888/storageextractor.start.fetch.size=20000extractor.out.file.size=10485760ssl.option=OFF#ssl.option=ON#ssl.keystore.path=<key store path>/dmt/8888/vault/keystore#ssl.truststore.path=<trust store path>/dmt/8888/vault/truststore

启动提取代理使用以下过程启动提取代理。对每台已安装提取代理的计算机重复此过程。

提取代理充当侦听器。通过此过程启动代理时,代理将启动侦听以获得指示。在后面的部分中,您将发送代理指示,以从数据仓库提取数据。

启动提取代理

• 在安装了提取代理的计算机上,运行下列适用于您的操作系统的命令。

操作系统 启动命令

macOS 运行 StartAgent.command 文件。

Microsoft Windows 双击 StartAgent.bat 批处理文件。

版本 1.0131

Page 138: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南注册代理

操作系统 启动命令

RHEL 在安装了代理的文件夹的路径中运行以下命令:

sudo initctl start sct-extractor

Ubuntu Linux 在安装了代理的文件夹的路径中运行以下命令。使用适合您的 Ubuntu 版本的命令。

Ubuntu 14.04: sudo initctl start sct-extractor

Ubuntu 15.04 和更新版本: sudo systemctl start sct-extractor

要检查代理的状态,请运行同一命令,但将 start 替换为 status。

要停止代理,请运行同一命令,但将 start 替换为 stop。

向 AWS Schema Conversion Tool 注册提取代理您通过使用 AWS SCT 来管理提取代理。提取代理充当侦听器。当它们收到 AWS SCT 的指示时,就会从您的数据仓库中提取数据。

使用以下过程向您的 AWS SCT 项目注册提取代理。

注册提取代理

1. 启动 AWS Schema Conversion Tool,并打开一个项目。2. 打开 View 菜单,然后选择 Data Migration View。此时显示 Agents 选项卡。如果您之前已注册了代理,

它们会显示在选项卡顶部的网格中,如下所示。

3. 选择 Register。将显示 New Agent Registration (新代理注册) 对话框。

版本 1.0132

Page 139: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南隐藏和恢复 AWS SCT 代理的信息

Note

向 AWS SCT 项目注册代理后,您不能向另一个项目注册相同的代理。如果您不再在 AWSSCT 项目中使用代理,则可以将其取消注册。然后,您可以将其注册到其他项目。

4. 在 New Agent Registration 对话框中输入您的信息:

a. 对于 Description,请键入代理的描述。b. 对于 Host Name,请键入代理计算机的主机名称或 IP 地址。c. 对于 Port,请键入代理将要侦听的端口号。d. 选择 Register (注册) 可向您的 AWS SCT 项目注册代理。

5. 重复上述步骤,向您的 AWS SCT 项目注册多个代理。

隐藏和恢复 AWS SCT 代理的信息AWS SCT 代理会将大量的信息进行加密,例如用户密钥-信任存储的密码、数据库账户、AWS 账户信息和类似项。它使用一个名为 seed.dat 的特殊文件来进行加密。默认情况下,该代理将在首先配置该代理的用户的工作文件夹中创建此文件。

由于不同的用户可以配置和运行该代理,因此指向 seed.dat 的路径存储在{extractor.private.folder} 文件的 settings.properties 参数中。当该代理启动时,它可以使用此路径来查找 seed.dat 文件以访问要操作的数据库的密钥-信任存储信息。

在下列情况下,您可能需要恢复代理已存储的密码:

• 如果用户丢失 seed.dat 文件并且 AWS SCT 代理的位置和端口没有发生变化。• 如果用户丢失 seed.dat 文件并且 AWS SCT 代理的位置和端口发生了变化。在这种情况下,变化通常是

由于该代理迁移到其他主机或端口而导致的,seed.dat 文件中的信息将不再有效。

在这些情况下,如果代理在启动时没有使用 SSL,则它会启动并访问以前创建的代理存储。然后,它会进入Waiting for recovery (等待恢复) 状态。

但是,在这些情况下,如果代理在启动时使用了 SSL,则无法重新启动它。这是因为代理无法解密存储在settings.properties 文件中的证书的密码。对于这种类型的启动,该代理将无法启动。在日志中将会写入类似下面这样的错误:“The agent could not start with SSL mode enabled.Please reconfigure theagent.Reason: The password for keystore is incorrect.”(代理无法在启用 SSL 模式的情况下启动。请重新配置代理。原因: 密钥存储中的密钥不正确。)

要修复此问题,请创建一个新代理并将其配置为使用现有密码来访问 SSL 证书。为此,请使用以下过程。

在执行此过程之后,代理应会运行并进入 Waiting for recovery (等待恢复) 状态。AWS SCT 会向处于Waiting for recovery (等待恢复) 状态的代理自动发送所需的密码。当代理获得密码之后,它将重新启动所有任务。SCT 侧不需要任何进一步的用户操作。

重新配置代理并还原用于访问 SSL 证书的密码

1. 安装新的 AWS SCT 代理并运行配置。2. 将 agent.name 文件中的 instance.properties 属性更改为创建的存储所用于的代理的名称,以便

将新的代理用于现有的代理存储。

instance.properties 文件存储在代理的私有文件夹中,该文件夹使用以下命名约定:{output.folder}\dmt\{hostName}_{portNumber}\。

3. 将 {output.folder} 的名称更改为以前的代理的输出文件夹的名称。

此时,AWS SCT 仍将尝试访问旧的主机和端口上的旧提取器。结果,无法访问的提取器将获得“失败”状态。然后,您可以更改主机和端口。

版本 1.0133

Page 140: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建数据提取筛选条件

4. 通过使用 Modify 命令来修改旧代理的主机或/和端口,从而将请求流重定向到新代理。

当 AWS SCT 可以对新代理执行 ping 操作时,AWS SCT 将会从新代理接收到状态 Waiting for recovery (等待恢复)。随后,AWS SCT 将自动恢复代理的密码。

使用代理存储的每个代理将更新一个名为 storage.lck 的、位于{output.folder}\{agentName}\storage\ 的特殊文件。该文件包含代理的网络 ID 和存储锁定的结束时间。当代理使用代理存储时,它每 5 分钟便会更新 storage.lck 文件并将存储的租约延长 10 分钟。在租约过期之前,任何其他实例将无法使用此代理存储。

在 AWS Schema Conversion Tool 中创建数据提取筛选条件在使用 AWS Schema Conversion Tool 提取数据之前,您可以设置一些筛选条件以减少提取的数据量。您可以使用 WHERE 子句创建数据提取筛选条件,以减少提取的数据量。例如,您可以编写一个 WHERE 子句,以从单个表中选择数据。

您可以创建数据提取筛选条件,并将筛选条件另存为项目的一部分。打开项目,使用以下过程创建数据提取筛选条件。

创建数据提取筛选条件

1. 在 Settings 菜单中选择 Mapping Rules。此时显示 Mapping Rules 对话框。顶部窗格包含转换规则,底部窗格包含筛选规则。

2. 在 Filtering Rules 窗格中,选择 Add new rule。3. 配置您的筛选器:

a. 对于 Name,请键入筛选条件的名称。b. 对于 Where schema name like,请键入要应用于架构的筛选条件。在此筛选器中,通过使用

WHERE 子句对 LIKE 子句进行评估。您可以输入一个确切名称以选择一个架构,也可以输入一种模式来选择多个架构。

c. 对于 table name like,请键入要应用于表的筛选条件。在此筛选器中,通过使用 WHERE 子句对LIKE 子句进行评估。您可以输入一个确切名称以选择一个表,也可以输入一种模式来选择多个表。

d. 对于 Where clause,请键入一个 WHERE 子句以筛选数据。4. 配置完筛选器后,请选择 Save 以保存您的筛选器,或选择 Cancel 以取消您的更改。5. 添加、编辑和删除完筛选器后,选择 Save All 以保存所有更改,然后选择 Close。

要关闭筛选器而不删除它,请使用“切换”图标。要复制现有的筛选器,请使用“复制”图标。要删除现有筛选器,请使用“删除”图标。要保存对筛选条件所做的所有更改,请选择 Save All。

在使用 AWS SCT 进行迁移前对数据进行排序在使用 AWS SCT 进行迁移之前对数据进行排序提供了一些好处。如果您首先对数据进行排序,在发生故障后,AWS SCT 可以在最后一个保存点重启提取代理。此外,如果您正在将数据迁移到 Amazon Redshift 并且首先对数据进行了排序,AWS SCT 可以更快地将数据插入到 Amazon Redshift。

这些好处与 AWS SCT 如何创建数据提取查询有关。在某些情况下,AWS SCT 会在这些查询中使用DENSE_RANK 分析函数。但是,DENSE_RANK 可以使用许多时间和服务器资源对产生自提取的数据集进行排序,因此,如果 AWS SCT 可以在没有该数据集的情况下工作,它就会这样做。

在使用 AWS SCT 进行迁移之前对数据进行排序

1. 打开 AWS SCT 项目。

版本 1.0134

Page 141: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建、运行和监控 AWS SCT 任务

2. 打开该对象的上下文 (右键单击) 菜单,然后选择 Create Local Task。3. 选择 Advanced 选项卡,然后,对于 Sorting Strategy,选择选项:

• Never use sorting (绝不使用排序) – 提取代理不会使用 DENSE_RANK 分析功能,且如果发生故障,它将重新启动。

• Use sorting if possible (如果可能,使用排序) – 如果表有主键或唯一约束,提取代理将使用DENSE_RANK。

• Use sorting after first fail (recommended) (在首次失败后使用排序 (建议)) – 提取代理首先尝试在不使用 DENSE_RANK 的情况下获取数据。如果首次尝试失败,提取代理将使用 DENSE_RANK 重新构建查询并在发生故障时保留查询的位置。

4. 按下面所示设置其他参数,然后选择 Create 以创建您的数据提取任务。

创建、运行和监视 AWS SCT 数据提取任务使用以下过程创建、运行和监控数据提取任务。

将任务分配给代理并迁移数据

1. 在 AWS Schema Conversion Tool 中,转换完架构后,从项目的左侧面板中选择一个或多个表。

您可以选择所有表,但我们不建议这样做 (出于性能考虑)。我们建议您根据数据仓库中的表大小,为多个表创建多个任务。

版本 1.0135

Page 142: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建、运行和监控 AWS SCT 任务

2. 打开每个表的上下文 (右键单击) 菜单,然后选择 Create Task。此时会打开 Create Local Task 对话框,如下所示。

3. 对于 Task Name,请键入任务名称。4. 对于 Migration Mode,请选择下列选项之一:

• Extract Only (仅提取) – 提取您的数据,并将数据保存到您的本地工作文件夹。• Extract and Upload (提取并上传) – 提取您的数据,并将数据上传到 Amazon S3。• Extract, Upload and Copy (提取、上传和复制) – 提取您的数据,将数据上传到 Amazon S3,并将其

复制到您的 Amazon Redshift 数据仓库。5. 选择 Extract LOBs 以提取大型对象。如果您不需要提取大型对象,则可以清除该复选框。这样做可以减

少提取的数据量。6. 如果要查看有关任务的详细信息,请选择 Enable Task Logging。您可以使用任务日志来调试问题。

如果启用任务日志记录,请选择要查看的详细信息级别。级别如下所示,每个级别包含上一级别的所有消息:

• ERROR – 最小数量的详细信息。• WARNING

• INFO

• DEBUG

• TRACE – 最大数量的详细信息。7. 选择 Test Task (测试任务) 以验证是否可连接到您的工作文件夹、Amazon S3 存储桶和 Amazon

Redshift 数据仓库。验证取决于您选择的迁移模式。8. 选择 Create 创建任务。9. 重复之前步骤,为您要迁移的所有数据创建任务。

运行和监控任务

1. 对于 View (视图),选择 Data Migration View (数据迁移视图)。此时显示 Agents 选项卡。2. 选择 Tasks 选项卡。您的任务将显示在顶部网格中,如下所示。您可以在顶部网格中查看任务的状态,

并在底部网格中查看其子任务的状态。

版本 1.0136

Page 143: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南使用 AWS Snowball 设备提取数据

3. 在顶部网格中选择一个任务并将其展开。根据所选的迁移模式,您将看到该任务分为 Extract、Upload和 Copy。

4. 对任务选择 Start 以开始该任务。您可以监控任务工作时的状态。其子任务并行运行。提取、上传和复制操作也并行运行。

5. 如果启用了日志记录,当您设置任务时,可以查看日志:

a. 选择 Download Log。此时显示一条消息,其中包含存储该日志文件的文件夹的名称。关闭该消息。

b. Task details 选项卡中显示一个链接。选择该链接以打开包含日志文件的文件夹。

您可以关闭 AWS SCT,而您的代理和任务可以继续运行。稍后可以重新打开 AWS SCT,以检查任务状态并查看任务日志。

使用 AWS Snowball 设备提取数据使用 AWS SCT 和 AWS Snowball 的过程包含几个步骤。该迁移包含一个本地任务 (AWS SCT 使用数据提取代理将数据移动到 AWS Snowball 设备) 和一个中间操作 (AWS 将数据从 AWS Snowball 设备复制到Amazon S3 存储桶)。此过程以 AWS SCT 将数据从 Amazon S3 存储桶加载到 Amazon Redshift 而结束。

该概述后面的部分提供了每个任务的分步指南。此过程假定您已安装 AWS SCT,并且您已在专用计算机上配置和注册数据提取代理。

需要执行以下步骤以使用 AWS Snowball 将数据从本地数据存储迁移到 AWS 数据存储。

1. 使用 AWS Snowball 控制台创建一个 AWS Snowball 任务。有关更多信息,请参阅 AWS Snowball 文档中的创建导入任务。

2. 使用本地专用 Linux 计算机解锁 AWS Snowball Edge 设备。3. 使用已注册的数据提取代理在 AWS SCT 中创建一个新项目。4. 在安装了数据提取器的专用计算机上安装源数据库的数据库驱动程序。

版本 1.0137

Page 144: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南使用 AWS Snowball 设备提取数据

5. 创建要使用的 Amazon S3 存储桶并设置权限。6. 在 SCT 中创建本地和 DMS 任务 (Local & DMS Task)。7. 在 SCT 中运行并监控本地和 DMS 任务 (Local & DMS Task)。8. 在 SCT 中运行 AWS SCT 任务并监控进度。

使用 AWS SCT 和 AWS Snowball 迁移数据的分步过程以下部分提供了有关迁移步骤的详细信息。

步骤 1:创建 AWS Snowball 任务按照 AWS Snowball 文档的 AWS Snowball Edge 入门:您的第一个任务部分中概述的步骤创建 AWSSnowball 任务。

步骤 2:解锁 AWS Snowball Edge 设备您应该运行相应的命令,以从安装 DMS 代理的计算机中解锁 Snowball Edge 设备并为其提供凭证。这样,您就可以确保 DMS 代理调用连接到 AWS Snowball Edge 设备。有关解锁 AWS Snowball Edge 设备的更多信息,请参阅解锁 Snowball Edge。

例如,以下命令列出设备使用的 Amazon S3 存储桶。

aws s3 ls s3://<bucket-name> --profile <Snowball Edge profile> --endpoint http://<Snowball IP>:8080 --recursive

步骤 3:创建新的 AWS SCT 项目接下来,您创建一个新 AWS SCT 项目。

在 AWS SCT 中创建新项目

1. 启动 AWS SCT,然后为 File 选择 New Project。将显示 New Project 对话框。2. 添加以下项目信息。

对于此参数 执行该操作

Project Name 为您的项目键入一个名称,该项目本地存储在您的计算机上。

位置 键入您的本地项目文件的位置。

OLTP 选择 Transactional Database (OLTP)。

Source DB Engine 选择源数据存储。

Target DB Engine 选择目标数据存储。

3. 选择 OK 以创建 AWS SCT 项目。4. (可选) 测试连接。

步骤 4:在 Linux 计算机上安装 DMS 代理的源数据库驱动程序要成功进行迁移,DMS 代理必须能够连接到源数据库。要做到这一点,您需要安装源数据库的数据库驱动程序。所需的驱动程序因数据库而异。

版本 1.0138

Page 145: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南使用 AWS Snowball 设备提取数据

要在安装数据库驱动程序后重新启动 DMS 代理,请将工作目录更改为 <product_dir>/bin,然后执行下面为每个源数据库列出的步骤。

cd <product_dir>/bin./arep.ctl stop./arep.ctl start

在 Oracle 上安装

安装 Oracle Instant Client for Linux (x86-64) 11.2.0.3.0 或更高版本。

此外,如果您的系统中尚未包含符号链接,您需要在 $ORACLE_HOME\lib 目录中创建一个。该链接的名称应该为 libclntsh.so,并且应指向该文件的特定版本。例如,在 Oracle 12c 客户端上:

lrwxrwxrwx 1 oracle oracle 63 Oct 2 14:16 libclntsh.so -> /u01/app/oracle/home/lib/libclntsh.so.12.1

此外,LD_LIBRARY_PATH 环境变量应附加 Oracle lib 目录,并且应将其添加到安装的 lib 文件夹下面的 site_arep_login.sh 脚本中。如果尚无该脚本,请进行添加。

vi cat <product dir>/bin/site_arep_login.sh

export ORACLE_HOME=/usr/lib/oracle/12.2/client64; export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

在 Microsoft SQL Server 上安装

安装 Microsoft ODBC 驱动程序

使用以下代码更新 site_arep_login.sh。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/microsoft/msodbcsql/lib64/

Simba ODBC 驱动程序

安装 Microsoft ODBC 驱动程序

按如下方式编辑 simba.sqlserverodbc.ini 文件

DriverManagerEncoding=UTF-16ODBCInstLib=libodbcinst.so

在 SAP Sybase 上安装

应安装 SAP Sybase ASE ODBC 64 位客户端

如果安装目录是 /opt/sap,请将 site_arep_login.sh 更新为

export SYBASE_HOME=/opt/sapexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SYBASE_HOME/ DataAccess64/ODBC/lib:$SYBASE_HOME/DataAccess/ODBC/ lib:$SYBASE_HOME/OCS-16_0/lib:$SYBASE_HOME/OCS-16_0/

版本 1.0139

Page 146: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南使用 AWS Snowball 设备提取数据

lib3p64:$SYBASE_HOME/OCS-16_0/lib3p

/etc/odbcinst.ini 应包含以下条目

[Sybase]Driver=/opt/sap/DataAccess64/ODBC/lib/libsybdrvodb.soDescription=Sybase ODBC driver

在 MySQL 上安装

安装 MySQL Connector/ODBC for Linux 5.2.6 或更高版本

确保 /etc/odbcinst.ini 文件包含 MySQL 条目,如以下示例中所示

[MySQL ODBC 5.2.6 Unicode Driver]Driver = /usr/lib64/libmyodbc5w.so UsageCount = 1

在 PostgreSQL 上安装

安装 postgresql94-9.4.4-1PGDG.<OS Version>.x86_64.rpm。这是包含 psql 可执行文件的软件包。

例如,postgresql94-9.4.4-1PGDG.rhel7.x86_64.rpm 是 Red Hat 7 所需的软件包。

安装适用于 Linux 的 ODBC 驱动程序 postgresql94-odbc-09.03.0400-1PGDG.<OS version>.x86_64 或更高版本,其中 <OS version> 是代理计算机的操作系统。

例如,postgresql94-odbc-09.03.0400-1PGDG.rhel7.x86_64 是 Red Hat 7 所需的客户端。

确保 /etc/odbcinst.ini 文件包含 PostgreSQL 条目,如以下示例中所示

[PostgreSQL]Description = PostgreSQL ODBC driverDriver = /usr/pgsql-9.4/lib/psqlodbc.soSetup = /usr/pgsql-9.4/lib/psqlodbcw.soDebug = 0CommLog = 1UsageCount = 2

步骤 5:配置 AWS SCT 以访问 Amazon S3 存储桶

有关配置 Amazon S3 存储桶的信息,请参阅 Amazon S3 文档中的使用 Amazon S3 存储桶。

步骤 6:创建本地和 DMS 任务

接下来,您创建一个端到端迁移任务。该任务包含两个子任务。一个子任务将数据从源数据库迁移到 AWSSnowball 设备。另一个子任务提取该设备加载到 Amazon S3 存储桶的数据,并将其迁移到目标数据库。

创建端到端迁移任务

1. 启动 AWS SCT,选择 View,然后选择 Database Migration View (Local & DMS)。

版本 1.0140

Page 147: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南使用 AWS Snowball 设备提取数据

2. 在显示源数据库架构的左侧面板中,选择一个要迁移的架构对象。打开该对象的上下文 (右键单击) 菜单,然后选择 Create Local & DMS Task。

3. 添加您的任务信息。

对于此参数 执行该操作

Task Name 为任务键入名称。

代理 选择 DMS Agent。

Replication Instance 选择要使用的 AWS DMS 复制实例。

迁移类型 选择所需的迁移类型。

选择 Migrate existing data 以迁移所选的架构内容。该过程在 AWS DMS 中称为完全加载。

选择 Migrate existing data and replicate ongoing changes以迁移所选的架构内容,并捕获对数据库的所有持续更改。该过程在 AWS DMS 中称为完全加载和 CDC。

目标表准备模式 选择要使用的准备模式。

Truncate – 截断表,而不会影响表元数据。

Drop tables on target – 删除表并在其位置创建新表。

Do nothing – 不更改目标表的数据和元数据。

IAM 角色 选择有权访问 Amazon S3 存储桶和目标数据库的预定义IAM 角色。有关访问 Amazon S3 存储桶所需的权限的更多信息,请参阅Amazon S3 设置 (p. 128)。

版本 1.0141

Page 148: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南数据提取任务输出

对于此参数 执行该操作

日志系统 选择 Enable 以让 AWS CloudWatch 创建迁移日志。该服务将向您收取费用。有关 AWS CloudWatch 的更多信息,请参阅 Amazon CloudWatch 的工作方式。

描述 键入任务的说明。

Use Snowball 选中该复选框以使用 Snowball。

Job Name 选择您创建的 AWS Snowball 任务名称。

Snowball IP 键入 AWS Snowball 设备的 IP 地址。

端口 键入 AWS Snowball 设备的端口值。

Local AWS S3 Access key 键入用于迁移的账户的 AWS 访问密钥。

Local AWS S3 Secret key 键入用于迁移的账户的 AWS 私有密钥。

4. 选择 Create 创建任务。

步骤 7:运行和监控 SCT 任务

在成功建立到终端节点的所有连接后,您可以启动本地和 DMS 任务。这意味着成功建立了本地任务的所有连接 (包括从 DMS 代理到源数据库、暂存 Amazon S3 存储桶和 AWS Snowball 设备的连接) 以及 DMS 任务的连接 (包括从暂存 Amazon S3 存储桶到 AWS 上的目标数据库的连接)。

您可以选择 Show Log 以监控 DMS 代理日志。日志详细信息包含代理服务器 (Agent Log) 和本地运行任务(Task Log) 日志。由于终端节点连接是由服务器建立的 (因为本地任务未运行并且没有任务日志),因此,将在 Agent Log 选项卡下面列出连接问题。

数据提取任务输出迁移任务完成后,您的数据便准备就绪。使用以下信息确定如何根据所选的迁移模式和数据位置继续操作。

迁移模式 数据位置

Extract, Uploadand Copy

数据已在您的 Amazon Redshift 数据仓库中。您可以验证数据是否存在,并开始使用它。有关更多信息,请参阅通过客户端工具和代码连接到集群。

Extract andUpload

提取代理已将您的数据以文件形式保存在 Amazon S3 存储桶中。您可以使用 AmazonRedshift COPY 命令将数据加载到 Amazon Redshift。有关更多信息,请参阅 AmazonRedshift 文档中的从 Amazon S3 加载数据。

您的 Amazon S3 存储桶中包含多个文件夹,与您设置的提取任务对应。将数据加载到Amazon Redshift 时,请指定每个任务所创建的清单文件的名称。清单文件显示在 S3 存储桶的任务文件夹中,如下所示。

版本 1.0142

Page 149: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南使用虚拟分区

迁移模式 数据位置

Extract Only 提取代理已将您的数据以文件形式保存在工作文件夹中。手动将数据复制到 Amazon S3存储桶,然后按照 Extract and Upload (提取并上传) 的说明继续操作。

对 AWS Schema Conversion Tool 使用虚拟分区通常,您可以通过创建子任务 (使用筛选规则创建表数据的虚拟分区) 来最有效地管理大型未分区表。在AWS SCT 中,您可以为已迁移的数据创建虚拟分区。有三种可与特定数据类型搭配使用的分区类型:

• RANGE 分区类型,可与数字以及日期和时间数据类型搭配使用。• LIST 分区类型,可与数字、字符以及日期和时间数据类型搭配使用。• DATE AUTO SPLIT 分区类型,可与日期和时间数据类型搭配使用。

AWS SCT 会验证您为创建分区提供的值。例如,如果您尝试对具有数据类型 NUMERIC 的列进行分区但提供了其他数据类型的值,则 AWS SCT 会引发错误。

创建虚拟分区时的限制以下是创建虚拟分区的限制:

版本 1.0143

Page 150: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南使用虚拟分区

• 您只能对未分区的表使用虚拟分区。• 您只能在数据迁移视图中使用虚拟分区。• 您无法对虚拟分区使用选项 UNION ALL VIEW。

RANGE 分区类型RANGE 分区类型基于针对数字以及日期和时间数据类型的一系列值对数据进行分区。此分区类型将创建一个 WHERE 子句,您将为每个分区提供值范围。您在框 Values 中为已分区的列指定一个值列表。您可以使用 .csv 文件加载值信息。

例如,您可以基于您提供的值范围创建多个分区。在以下示例中,指定了 LO_TAX 的分区值以创建多个分区。

Partition1: WHERE LO_TAX <= 10000.9Partition2: WHERE LO_TAX > 10000.9 AND LO_TAX <= 15005.5Partition3: WHERE LO_TAX > 15005.5 AND LO_TAX <= 25005.95

创建 RANGE 虚拟分区

1. 打开 AWS SCT 应用程序。2. 选择 Data Migration View 模式。3. 选择要在其中设置虚拟分区的表。打开该表的上下文 (右键单击) 菜单,并选择 Add Virtual

Partitioning。4. 在 Add Virtual Partitioning 对话框中,输入如下信息。

选项 操作

Partition Type 选择 RANGE。根据您选择的类型,对话框 UI 将发生更改。

列名称 选择要分区的列。

Column Type 在该列中选择值的数据类型。

值 通过在 New Value 框中键入各个值来添加新值,然后选择加号以添加相应值。

Load From File (可选) 键入包含分区值的 .csv 文件的名称。

5. 选择 OK。

LIST 分区类型LIST 分区类型基于一个数字、字符以及日期和时间数据类型的列值对数据进行分区。此分区类型将创建一个 WHERE 子句,您将为每个分区提供值。您在字段 Values 中为已分区的列指定一个值的列表。您可以使用 .csv 文件加载值信息。

例如,您可以基于您提供的值创建多个分区。在以下示例中,指定了 LO_ORDERKEY 的分区值以创建多个分区。

Partition1: WHERE LO_ORDERKEY = 1Partition2: WHERE LO_ORDERKEY = 2Partition3: WHERE LO_ORDERKEY = 3…

版本 1.0144

Page 151: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南使用虚拟分区

PartitionN: WHERE LO_ORDERKEY = USER_VALUE_N

您还可以为未包含在指定的分区中的值创建默认分区。

创建 LIST 虚拟分区

1. 打开 AWS SCT 应用程序。2. 选择 Data Migration View 模式。3. 选择要在其中设置虚拟分区的表。打开该表的上下文 (右键单击) 菜单,并选择 Add Virtual

Partitioning。4. 在 Add Virtual Partitioning 对话框中,输入如下信息。

选项 操作

Partition Type 选择 LIST。根据您选择的类型,对话框 UI 将发生更改。

列名称 选择要分区的列。

New Value 在此处键入一个值以将其添加到分区值集。

Include Other Values 选择此选项可创建一个默认分区,不满足分区条件的所有值都将存储在该分区中。

Load From File (可选) 键入包含分区值的 .csv 文件的名称。

5. 选择 OK。

DATE AUTO SPLIT 分区类型DATE AUTO SPLIT 分区类型基于介于给定开始日期和结束日期之间的指定间隔对日期和时间数据类型的数据进行分区。您可以指定数据范围和间隔 (日、周、月或年)。如果您不指定开始日期或结束日期,这些值将默认为当前日期。

例如,您可以基于您提供的日期范围创建多个分区。在以下示例中,指定了 LO_ORDERDATE 的分区值范围以创建多个分区。

Partition1: WHERE LO_ORDERDATE >= ‘1954-10-10’ AND LO_ORDERDATE < ‘1954-10-24’Partition2: WHERE LO_ORDERDATE >= ‘1954-10-24’ AND LO_ORDERDATE < ‘1954-11-06’Partition3: WHERE LO_ORDERDATE >= ‘1954-11-06’ AND LO_ORDERDATE < ‘1954-11-20’…PartitionN: WHERE LO_ORDERDATE >= USER_VALUE_N AND LO_ORDERDATE <= ‘2017-08-13’

创建 DATE AUTO SPLIT 虚拟分区

1. 打开 AWS SCT 应用程序。2. 选择 Data Migration View 模式。3. 选择要在其中设置虚拟分区的表。打开该表的上下文 (右键单击) 菜单,并选择 Add Virtual

Partitioning。4. 在 Add Virtual Partitioning 对话框中,输入如下信息。

选项 操作

Partition Type 选择 DATE AUTO SPLIT。根据您选择的类型,对话框 UI 将发生更改。

版本 1.0145

Page 152: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南使用 LOB

选项 操作

列名称 选择要分区的列。

开始日期 键入开始日期。

结束日期 键入结束日期。

Interval 键入间隔单位,然后选择该单位的值。

5. 选择 OK。

将 LOB 迁移到 Amazon RedshiftAmazon Redshift 不支持存储大型二进制对象 (LOB)。但是,如果您需要将一个或多个 LOB 迁移到 AmazonRedshift,AWS SCT 可以执行该迁移。为此,AWS SCT 使用 Amazon S3 存储桶来存储 LOB 并将该 S3 存储桶的 URL 写入到 Amazon Redshift 中存储的已迁移数据。

将 LOB 迁移到 Amazon Redshift

1. 打开 AWS SCT 项目。2. 对于 Actions (操作),选择 Create Local Task (创建别名)。3. 选择 Advanced 选项卡。4. 对于 S3 bucket LOBs folder,键入要在其中存储 LOB 的 S3 存储桶中的文件夹的名称。

版本 1.0146

Page 153: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南最佳实践和故障排除

5. 选择 Create 创建任务。

数据提取代理的最佳实践和故障排除以下是一些关于使用提取代理的最佳实践和故障排除建议。

问题 问题排查建议

性能低下 为了提高性能,我们建议执行以下操作:

• 安装多个代理。• 在靠近数据仓库的计算机上安装代理。• 请勿对单个代理任务运行所有表。

争用延迟 避免有太多代理同时访问您的数据仓库。

代理暂时关闭 如果某代理关闭,其每个任务在 AWS SCT 中的状态显示为失败。如果等待,某些情况下,该代理可以恢复。在这种情况下,其任务的状态会在 AWS SCT 中更新。

代理永久关闭 如果运行代理的计算机永久关闭,而该代理正运行一个任务,您可以替换新的代理以继续该任务。仅当原始代理的工作文件夹与原始代理不位于同一台计算机时,您才可以使用新代理进行替换。要替换新的代理,请执行以下操作:

• 在新计算机上安装代理。• 对新代理进行配置,以便与原始代理具有相同设置,包括端口号和

工作文件夹。• 启动该代理。代理启动后,该任务发现新的可用代理并继续在新代

理上运行。

将 Apache Cassandra 中的数据迁移到 AmazonDynamoDB

您可以使用 AWS SCT 数据提取代理提取 Apache Cassandra 中的数据并将其迁移到 Amazon DynamoDB。该代理在 Amazon EC2 实例上运行,它在此提取 Cassandra 中的数据,将其写入本地文件系统,并将其上传到 Amazon S3 存储桶。然后,您可以使用 AWS SCT 将数据复制到 DynamoDB。

Amazon DynamoDB 是一项 NoSQL 数据库服务。要将数据存储在 DynamoDB 中,您将需要创建数据库表,然后将数据上传到这些表。Cassandra 的 AWS SCT 提取代理可自动执行如下过程:创建与其Cassandra DynamoDB 对应部分相匹配的表,然后用 Cassandra 中的数据填充这些 DynamoDB 表。

提取数据的过程可能会大幅增加 Cassandra 群集的开销。因此,请勿直接对行 Cassandra 中的生产数据运行提取代理。为避免干扰生产应用程序,AWS SCT 会帮助您创建一个克隆数据中心,它是要迁移到DynamoDB 的 Cassandra 数据的一个独立副本。—这样,代理便可从该克隆读取数据并将其提供给 AWSSCT,而不会影响生产应用程序。

当数据提取代理运行时,它从克隆数据中心读取数据并将其写入 Amazon S3 存储桶。AWS SCT 随后从Amazon S3 读取数据并将其写入 Amazon DynamoDB。

下图显示了支持的方案:

版本 1.0147

Page 154: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将 Apache Cassandra 中的数据迁移到 Amazon DynamoDB

如果您是初次使用 Cassandra,请注意以下重要术语:

• 节点,运行 Cassandra 软件的单个计算机(物理或虚拟)。• 服务器,一个由 256 个节点组成的逻辑实体。• 机架,表示一个或多个服务器。• 数据中心,机架的集合。• A 群集,数据中心的集合。

有关更多信息,请转至 Apache Cassandra 的 Wikipedia 页面。

版本 1.0148

Page 155: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南从 Cassandra 迁移到 DynamoDB的先决条件

通过以下主题中的信息可了解如何将数据从 Apache Cassandra 迁移到 Amazon DynamoDB:

主题• 从 Cassandra 迁移到 DynamoDB的先决条件 (p. 149)• 创建新 AWS SCT 项目 (p. 150)• 创建克隆数据中心 (p. 153)• 安装、配置和运行数据提取代理 (p. 160)• 将克隆数据中心中的数据迁移到 Amazon DynamoDB (p. 163)• 迁移后活动 (p. 167)

从 Cassandra 迁移到 DynamoDB的先决条件在开始之前,您需要执行几项迁移前任务,如本部分中所述。

支持的 Cassandra 版本AWS SCT 支持以下 Apache Cassandra 版本:

• 3.11.2• 3.1.1• 3.0• 2.2• 2.1.20 或更高版本

不支持其他版本的 Cassandra。

Amazon S3 设置当 AWS SCT 数据提取代理运行时,它从克隆数据中心读取数据并将其写入 Amazon S3 存储桶。在继续操作之前,您必须提供凭证以连接到您的 AWS 账户和 Amazon S3 存储桶。将凭证和存储桶信息存储在全局应用程序设置的一个配置文件中,然后将该配置文件与 AWS SCT 项目进行关联。如有必要,请选择 GlobalSettings 以创建新的配置文件。有关更多信息,请参阅在 AWS Schema Conversion Tool 中使用 AWS 服务配置文件 (p. 12)。

克隆数据中心的 Amazon EC2 实例在迁移过程中,您将需要创建现有 Cassandra 数据中心的克隆。此克隆将在提前预配置的 Amazon EC2 实例上运行。该实例将运行独立的 Cassandra 安装,用于将克隆数据中心与现有 Cassandra 数据中心分开托管。

新 Amazon EC2 实例必须满足以下各项要求:

• 操作系统:Ubuntu 或 CentOS。• 必须安装有 Java JDK 8。(不支持其他版本。)

要启动新实例,请转至 https://console.aws.amazon.com/ec2/ 上的 Amazon EC2 管理控制台。

安全设置AWS SCT 使用安全套接字层 (SSL) 与数据提取代理进行通信。要启用 SSL,请设置信任存储和密钥存储:

版本 1.0149

Page 156: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建新 AWS SCT 项目

1. 启动 AWS SCT。2. 从 Settings (设置) 菜单中,选择 Global Settings (全局设置)。3. 选择 Security (安全) 选项卡,如下所示:

4. 选择 Generate Trust and Key Store,或选择 Select existing Trust and Key Store。

如果您选择 Generate Trust and Key Store,则可为信任存储和密钥存储指定名称和密码,并为生成的文件指定位置路径。您会在后面的步骤中用到这些文件。

如果选择 Select existing Trust and Key Store,则为信任存储和密钥存储指定密码和文件名。您会在后面的步骤中用到这些文件。

5. 指定信任存储和密钥存储后,请选择 OK 以关闭 Global Settings 对话框。

创建新 AWS SCT 项目执行了从 Cassandra 迁移到 DynamoDB的先决条件 (p. 149)中的步骤后,您即可创建一个新的 AWS SCT项目来进行迁移。按照以下步骤操作:

1. 从 File (文件) 菜单中,选择 New Project (新建项目)。

版本 1.0150

Page 157: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建新 AWS SCT 项目

添加以下信息:

对于此参数 执行该操作

Project Name 为您的项目键入一个名称,该项目本地存储在您的计算机上。

位置 键入您的本地项目文件的位置。

NoSQL database (NoSQL 数据库) 选择 NoSQL database (NoSQL 数据库)。

Source Database Engine (源数据库引擎)

选择 Cassandra。

Target Database Engine (目标数据库引擎)

选择 Amazon DynamoDB。

选择 OK (确定) 以创建您的 AWS SCT 项目。2. 在菜单栏中,选择 Connect to Cassandra (连接到 Cassandra)。

版本 1.0151

Page 158: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建新 AWS SCT 项目

添加以下信息:

对于此参数 请执行该操作

服务器名称 键入 Cassandra 群集的主机名或 IP 地址。

Server port 键入 Cassandra 正在侦听连接请求的端口号。例如:9042

用户名 键入连接到 Cassandra 群集的有效用户名。

密码 键入与该用户名关联的密码。

3. 选择 OK (确定)。AWS SCT 会测试连接,确保它可以访问 Cassandra 群集。4. 在菜单栏中,选择 Connect to Amazon DynamoDB (连接到 Amazon DynamoDB)。

版本 1.0152

Page 159: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建克隆数据中心

添加以下信息:

对于此参数 请执行该操作

Copy from AWS profile (从 AWS 配置文件复制)

如果您已设置 AWS 凭证,请选择现有配置文件的名称。

AWS access key (AWS 访问密钥) 键入您的 AWS 访问密钥。

AWS secret key (AWS 私有密钥) 键入与您的 AWS 访问密钥关联的私有密钥。

区域 选择一个 AWS 区域。AWS SCT 会将数据迁移到该区域中的 Amazon DynamoDB。

5. 选择 OK (确定)。AWS SCT 会测试连接,确保它可以访问 DynamoDB。

创建克隆数据中心为避免干扰使用 Cassandra 群集的生产应用程序,AWS SCT 将创建一个克隆数据中心并将生产数据复制到其中。克隆数据中心充当暂存区域,使 AWS SCT 能够使用克隆而不是生产数据中心执行进一步的迁移活动。

要开始克隆过程,请按照以下过程操作:

1. 在 AWS SCT 窗口左侧(源),展开 Datacenters (数据中心) 节点并选择您的某个现有 Cassandra 数据中心。

版本 1.0153

Page 160: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建克隆数据中心

2. 从 Actions (操作) 菜单中,选择 Clone Datacenter for Extract (克隆要提取的数据中心)。

版本 1.0154

Page 161: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建克隆数据中心

版本 1.0155

Page 162: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建克隆数据中心

3. 阅读介绍性文字,然后选择 Next (下一步) 继续。4. 在 Clone Datacenter for Extract (克隆要提取的数据中心) 窗口中,添加以下信息:

对于此参数 请执行该操作

Private IP:SSH port (私有 IP:SSH 端口) 键入 Cassandra 群集中任意节点的私有 IP 地址和 SSH 端口。例如:172.28.37.102:22

Public IP:SSH port (公有 IP:SSH 端口) 键入节点的公有 IP 地址和 SSH 端口。例如:41.184.48.27:22

OS User (操作系统用户) 键入连接到节点的有效用户名。

OS Password (操作系统密码) 键入与该用户名关联的密码。

Key path (密钥路径) 如果您有此节点的 SSH 私有密钥(.pem 文件),请选择Browse (浏览)导航至存储该私有密钥的位置。

Passphrase (密码) 如果您的 SSH 私有密钥受密码保护,请在此处键入该密码。

JMX 用户 键入访问 Cassandra 群集的 JMX 用户名。

JMX password (JMX 密码) 键入与 JMX 用户关联的密码。

选择 Next (下一步) 继续。AWS SCT 会连接到 Cassandra 节点,在其中运行 nodetool status 命令。

5. 在 Source Cluster Parameters (源群集参数) 窗口中,接受默认值并选择 Next (下一步) 继续。6. 在 Node Parameters (节点参数) 窗口中,验证源群集中所有节点的连接详细信息。AWS SCT 会自动填

写其中的一些详细信息;但是,您必须提供所有缺失的信息。

Note

不必在此输入所有数据,您可以批量上传数据。为此,请选择 Export (导出) 以创建一个 .csv文件。然后,您可以编辑此文件,请为群集中的每个节点添加一个新行。完成后,选择 Upload(上传)。AWS SCT 将读取该 .csv 文件,并使用它来填充 Node parameters (节点参数) 窗口。

选择 Next (下一步) 继续。AWS SCT 会验证节点配置是否有效。7. 在 Configure Target Datacenter (配置目标数据中心) 窗口中,查看默认值。具体而言,请注意

Datacenter suffix (数据中心后缀) 字段:当 AWS SCT 创建克隆数据中心时,它的命名方式将与源数据中心类似,但带有您所提供的后缀。例如,如果源数据中心命名为 my_datacenter,则后缀 _tgt 将会导致克隆被命名为 my_datacenter_tgt。

8. 当仍在 Configure Target Datacenter (配置目标数据中心) 窗口中时,选择 Add new node (添加新节点):

版本 1.0156

Page 163: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建克隆数据中心

版本 1.0157

Page 164: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建克隆数据中心

9. 在 Add New Node (添加新节点) 窗口中,添加连接到克隆数据中心的 Amazon EC2 实例 (p. 149)中创建的 Amazon EC2 实例所需的信息。

根据需要进行设置后,选择 Add (添加)。此时节点会显示在列表中:

版本 1.0158

Page 165: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建克隆数据中心

版本 1.0159

Page 166: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南安装、配置和运行数据提取代理

10. 选择 Next 以继续。将出现以下确认框:

选择 OK (确定) 继续。AWS SCT 会重启源数据中心,一次重启一个节点。11. 查看 Datacenter Synchronization (数据中心同步) 窗口中的信息。如果群集运行的是 Cassandra 版本

2,AWS SCT 会将所有数据复制到克隆数据中心。如果群集运行的是 Cassandra 版本 3,您可以选择要将哪些密钥空间复制到克隆数据中心。

12. 当您准备好开始将数据复制到克隆数据中心时,选择 Start (开始)。

数据复制将立即开始。AWS SCT 会显示一个进度条,使您可以监控复制过程。请注意,复制可能需要很长时间,具体取决于源数据中心中的数据量。如果您需要在复制完全完成之前取消操作,请选择Cancel (取消)。

当复制完成时,选择 Next (下一步) 继续。13. 在“Summary (汇总)”窗口中,AWS SCT 会显示 Cassandra 群集的状态以及后续步骤。

查看此报告中的信息,然后选择 Finish (完成) 完成向导。

安装、配置和运行数据提取代理现在您已克隆数据中心,可以随时开始使用 Cassandra 的 AWS SCT 数据提取代理。此代理作为 AWS SCT分发包的一部分提供(有关更多信息,请参阅安装、验证和更新 AWS Schema Conversion Tool (p. 4))。

Note

我们建议您在 Amazon EC2 实例上运行该代理。EC2 实例必须满足以下各项要求:

• 操作系统:Ubuntu 或 CentOS。• 至少 8 个虚拟 CPU。• 至少 16GB 的 RAM。

如果您的 Amazon EC2 实例尚不满足这些要求,请转至 Amazon EC2 管理控制台 (https://console.aws.amazon.com/ec2/),然后启动一个新实例以继续。

按照以下过程安装、配置和运行 Cassandra 的 AWS SCT 数据提取代理:

1. 登录 Amazon EC2 实例。2. 验证是否正在运行已安装的 Java 1.8.x:

java -version

3. 安装 sshfs 程序包:

版本 1.0160

Page 167: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南安装、配置和运行数据提取代理

sudo yum install sshfs

4. 安装 expect 程序包:

sudo yum install expect

5. 编辑 /etc/fuse.conf 文件,并取消字符串 user_allow_other 的注释:

# mount_max = 1000user_allow_other

6. Cassandra 的 AWS SCT 数据提取代理作为 AWS SCT 分发包的一部分提供(有关更多信息,请参阅安装、验证和更新 AWS Schema Conversion Tool (p. 4))。您可以在 agents 目录的 .zip 文件中找到该代理,该文件包含 AWS SCT 安装程序文件。该代理的以下内部版本可供使用:

文件名 操作系统

aws-cassandra-extractor-n.n.n.deb Ubuntu

aws-cassandra-extractor-n.n.n.x86_64.rpm CentOS

选择适合 Amazon EC2 实例的文件。使用 scp 实用程序将该文件上传到 Amazon EC2 实例。7. 安装 Cassandra 的 AWS SCT 数据提取代理。(将 n.n.n 替换为内部版本号。)

• 对于 Ubuntu:

sudo dpkg -i aws-cassandra-extractor-n.n.n.deb

• 对于 CentOS:

sudo yum install aws-cassandra-extractor-n.n.n.x86_64.rpm

在安装过程中,系统会要求您选择要使用的 Cassandra 版本。根据需要选择版本 3 或 2。8. 在安装完成后,查看以下目录以确保它们已成功创建:

• /var/log/cassandra-data-extractor/—,用于提取代理日志。• /mnt/cassandra-data-extractor/—,用于装载主文件夹和数据文件夹。• /etc/cassandra-data-extractor/—,用于代理配置文件 (agent-settings.yaml)。

9. 要允许代理与 AWS SCT 进行通信,您必须提供密钥存储和信任存储。(您已在安全设置 (p. 149)中创建这些存储。) 使用 scp 实用程序将这些文件上传到 Amazon EC2 实例。

配置实用程序(请参阅下一步)要求您指定密钥存储和信任存储,因此您需要提供这些存储。10. 运行配置实用程序:

sudo java -jar /usr/share/aws-cassandra-extractor/aws-cassandra-extractor.jar --configure

版本 1.0161

Page 168: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南安装、配置和运行数据提取代理

该实用程序将提示您输入多个配置值。您可将以下示例作为指南,替换您自己的值:

Enter the number of data providers nodes [1]: 1Enter IP for Cassandra node 1: 34.220.73.140Enter SSH port for Cassandra node <34.220.73.140> [22]: 22Enter SSH login for Cassandra node <34.220.73.140> : centosEnter SSH password for Cassandra node <34.220.73.140> (optional):Is the connection to the node using a SSH private key? Y/N [N] : YEnter the path to the private SSH key for Cassandra node <34.220.73.140>: /home/centos/my-ec2-private-key.pemEnter passphrase for SSH private key for Cassandra node <34.220.73.140> (optional):Enter the path to the cassandra.yaml file location on the node <34.220.73.140>: /etc/cassandra/conf/Enter the path to the Cassandra data directories on the node <34.220.73.140>: /u01/cassandra/data===== Mounting process started =====Node [34.220.73.140] mounting started.Will be executed command:sudo sshfs [email protected]:/etc/cassandra/ /mnt/aws-cassandra-data-extractor/34.220.73.140_node/conf/ -p 22 -o allow_other -o StrictHostKeyChecking=no -o IdentityFile=/home/ubuntu/dbbest-ec2-oregon_s.pem > /var/log/aws-cassandra-data-extractor/dmt-cassandra-v3/conf_34.220.73.140.log 2>&1Will be executed command:sudo sshfs [email protected]:/u01/cassandra/data/ /mnt/aws-cassandra-data-extractor/34.220.73.140_node/data/data -p 22 -o allow_other -o StrictHostKeyChecking=no -o IdentityFile=/home/ubuntu/dbbest-ec2-oregon_s.pem > /var/log/aws-cassandra-data-extractor/dmt-cassandra-v3/data_34.220.73.140.log 2>&1===== Mounting process was over =====Enable SSL communication Y/N [N] : YPath to key store: /home/centos/Cassandra_keyKey store password:123456Re-enter the key store password:123456Path to trust store: /home/centos/Cassandra_trustTrust store password:123456Re-enter the trust store password:123456Enter the path to the output local folder: /home/centos/out_data=== Configuration aws-agent-settings.yaml successful completed === If you want to add new nodes or change it parameters, you should edit the configuration file /etc/aws-cassandra-data-extractor/dmt-cassandra-v3/aws-agent-settings.yaml

Note

当配置实用程序完成时,您可能会看到以下消息:Change the SSH private keys permission to 600 to secure them. You canalso set permissions to 400.可使用 chmod 命令更改权限,如以下示例所示:

chmod 400 /home/centos/my-ec2-private-key.pem

11. 配置实用程序完成后,查看以下目录和文件:

• /etc/cassandra-data-extractor/agent-settings.yaml—,代理的设置文件。• $HOME/out_data—,提取输出文件的目录。• /mnt/cassandra-data-extractor/34.220.73.140_node/conf—,一个空 Cassandra 主文

件夹。(将 34.220.73.140 替换为您的实际 IP 地址。)• /mnt/cassandra-data-extractor/34.220.73.140_node/data/data—,一个空

Cassandra 数据文件。(将 34.220.73.140 替换为您的实际 IP 地址。)

版本 1.0162

Page 169: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将克隆数据中心中的数据迁移到 Amazon DynamoDB

如果这些目录未装载,请使用以下命令装载它们:

sudo java -jar /usr/share/aws-cassandra-extractor/aws-cassandra-extractor.jar -mnt

12. 装载 Cassandra 主目录和数据目录:

sudo java -jusr/share/cassandra-extractor/rest-extraction-service.jar -mnt

安装过程完成后,请查看 Cassandra 主文件夹和 Cassandra 数据文件目录,如以下示例所示。(将34.220.73.140 替换为您的实际 IP 地址。)

ls -l /mnt/cassandra-data-extractor/34.220.73.140_node/confls -l /mnt/cassandra-data-extractor/34.220.73.140_node/data/data

13. 启动 Cassandra 的 AWS SCT 数据提取代理:

sudo systemctl start aws-cassandra-extractor

Note

默认情况下,该代理在端口 8080 上运行。可通过编辑 agent-settings.yaml 文件更改此设置。

将克隆数据中心中的数据迁移到 Amazon DynamoDB您现在可以随时使用 AWS SCT 执行从克隆数据中心到 Amazon DynamoDB 的迁移。AWS SCT 管理Cassandra、AWS Database Migration Service (AWS DMS) 和 DynamoDB 的 AWS SCT 数据提取代理之间的工作流程。您完全在 AWS SCT 接口内执行迁移过程,AWS SCT 会代表您管理所有外部组件。

要迁移您的数据,请按照以下过程过程:

1. 从 View (查看) 菜单中,选择 Data migration view (数据迁移查看)。2. 选择 Agents (代理) 选项卡。3. 如果您尚未注册 AWS SCT 数据提取代理,您将看到以下消息:

选择 Register。4. 在 New agent registration (新代理注册) 窗口中,添加以下信息:

版本 1.0163

Page 170: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将克隆数据中心中的数据迁移到 Amazon DynamoDB

对于此参数 执行该操作

描述 键入此代理的简短描述。

Host name 键入用于安装、配置和运行数据提取代理 (p. 160)的Amazon EC2 实例的主机名

端口 键入该代理的端口号。(默认端口号为 8080。)

密码 如果您使用的是 SSL,请将此字段留空;否则,键入用于登录到主机的密码。

Use SSL 如果您使用的是 SSL,请选择此选项以激活 SSL 选项卡。

如果您使用的是 SSL,请选择 SSL 选项卡,然后添加以下信息:

对于此参数 请执行该操作

Trust store (信任存储) 选择安装、配置和运行数据提取代理 (p. 160)中配置的信任存储。

Key store (密钥存储) 选择安装、配置和运行数据提取代理 (p. 160)中配置的密钥存储。

根据需要完成设置后,选择 Register (注册)。AWS SCT 将尝试连接 Cassandra 的 AWS SCT 数据提取代理。

5. 在 AWS SCT 窗口左侧,选择创建克隆数据中心 (p. 153)中创建的 Cassandra 数据中心。6. 从 Actions (操作) 菜单中,选择 Create Local & DMS Task (创建本地和 DMS 任务)。7. 在 Create Local & DMS Task (创建本地和 DMS 任务) 窗口中,输入以下信息:

对于此参数 执行该操作

任务名称 键入要创建的 AWS DMS 任务的短名称。

复制实例 选择要使用的 AWS DMS 复制实例。

迁移类型 选择 Migrate existing data and replication ongoing changes(迁移现有数据并复制持续更改)。这会将 Cassandra 克隆数据中心中的表迁移到 DynamoDB,并捕获所有持续更改。此过程在 AWS DMS 中称为完全加载和 CDC。

Target table preparation mode 如果您在 DynamoDB 中已有相应的表,希望在迁移之前将其删除,请选择 Drop tables on target (删除目标上的表)。否则,保留该设置的默认值(Do nothing (不执行任何操作))。

IAM 角色 选择有权访问 Amazon S3 存储桶和目标数据库 (AmazonDynamoDB) 的预定义 IAM 角色。有关访问 Amazon S3 存储桶所需的权限的更多信息,请参阅

版本 1.0164

Page 171: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将克隆数据中心中的数据迁移到 Amazon DynamoDB

对于此参数 执行该操作当 AWS SCT 数据提取代理运行时,它从克隆数据中心读取数据并将其写入 Amazon S3 存储桶。在继续操作之前,您必须提供凭证以连接到您的 AWS 账户和 Amazon S3 存储桶。将凭证和存储桶信息存储在全局应用程序设置的一个配置文件中,然后将该配置文件与 AWS SCT 项目进行关联。如有必要,请选择 Global Settings 以创建新的配置文件。有关更多信息,请参阅在 AWS Schema Conversion Tool中使用 AWS 服务配置文件 (p. 12)。 (p. 149)。

Logging level (日志记录级别) 选择迁移任务适当的日志记录级别。

描述 键入任务的说明。

数据加密 选择 Enable (启用) 或 Disable (禁用)。

Delete files from the local directory (从本地目录删除文件)

选择此选项可在将数据文件加载到 Amazon S3 后从代理的本地目录中删除这些文件。

S3 bucket 键入您具有其写入权限的 Amazon S3 存储桶的名称。

根据需要进行设置后,选择 Create。8. 选择 Tasks (任务) 选项卡,在其中您应看到已创建的该任务。要启动该任务,请选择 Start (开始)。

您可以监控任务进度,如以下屏幕截图所示:

版本 1.0165

Page 172: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南将克隆数据中心中的数据迁移到 Amazon DynamoDB

版本 1.0166

Page 173: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南迁移后活动

迁移后活动如果您已完成迁移并且希望删除迁移任务,请执行以下操作:

1. 选择 Tasks 选项卡。2. 如果该任务当前正在运行,请选择 Stop (停止)。3. 要删除该任务,请选择 Delete (删除)。

如果您不再需要使用 Cassandra 的 AWS SCT 数据提取代理,请执行以下操作:

1. 选择 Agents (代理) 选项卡。2. 选择您不再需要的代理。3. 选择 Unregister (注销)。

版本 1.0167

Page 174: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南转换应用程序 SQL 概述

使用 AWS Schema Conversion Tool转换应用程序 SQL

当您将数据库架构从一个引擎转换到另一个引擎时,还需要更新应用程序中的 SQL 代码,以便与新数据库引擎 (而非旧引擎) 进行交互。您可以查看、分析、编辑和保存转换后的 SQL 代码。

您可以使用 AWS Schema Conversion Tool (AWS SCT) 通过 C++、C#、Java 或其他应用程序代码转换SQL 代码。对于 Oracle 到 PostgreSQL 转换,您可以使用 AWS SCT 将 SQL*Plus 代码转换为 PSQL。

转换应用程序 SQL 概述要转换应用程序中的 SQL 代码,请执行以下简要步骤:

• 创建一个应用程序转换项目 – 应用程序转换项目是数据库架构转换项目的子级。每个数据库架构转换项目都可以有一个或多个子应用程序转换项目。有关更多信息,请参阅 在 AWS Schema Conversion Tool 中创建应用程序转换项目 (p. 168)。

• 分析和转换 SQL 代码 – AWS SCT 可以分析您的应用程序,提取 SQL 代码,并创建一个本地版本的转换后 SQL,以便您查看和编辑。在您做好准备之前,该工具不会更改您的应用程序中的代码。有关更多信息,请参阅使用 AWS Schema Conversion Tool 分析和转换您的 SQL 代码 (p. 171)。

• 创建应用程序评估报告 – 应用程序评估报告可提供关于将应用程序 SQL 代码从源数据库架构转换到目标数据库架构的重要信息。有关更多信息,请参阅创建和使用评估报告 (p. 172)。

• 编辑、应用更改并保存转换后的 SQL 代码 – 评估报告包含无法自动转换的 SQL 代码项的列表。对于这些项目,您可以手动编辑 SQL 代码以执行转换。有关更多信息,请参阅 使用 AWS Schema ConversionTool 编辑和保存转换后的 SQL 代码 (p. 173)。

在 AWS Schema Conversion Tool 中创建应用程序转换项目

在 AWS Schema Conversion Tool 中,应用程序转换项目是数据库架构转换项目的子级。每个数据库架构转换项目都可以有一个或多个子应用程序转换项目。使用以下过程创建应用程序转换项目。

创建应用程序转换项目

1. 在 AWS Schema Conversion Tool 中,从 Applications (应用程序) 菜单中选择 New Application (新建应用程序)。

随即出现 New application conversion project 对话框。

版本 1.0168

Page 175: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建应用程序转换项目

2. 添加以下项目信息。

对于此参数 请执行该操作

Application Project Name 键入您的应用程序转换项目的名称。每个数据库架构转换项目都可以有一个或多个子应用程序转换项目,因此如果您在事后添加更多项目的话,请选择一个有意义的名称。

位置 键入您的应用程序源代码的位置。

Project language 选择以下选项之一:

• JAVA• C++• C#• 任何

SQL parameter style for targetdatabase

选择以下选项之一:

• Same as in source• Positional (?)• Indexed (:1)

版本 1.0169

Page 176: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建应用程序转换项目

对于此参数 请执行该操作• Indexed ($1)• Named (@name)• Named (:name)

Select source database schema 在源树状图中,选择您的应用程序代码所用的架构。

3. 选择 OK 以创建应用程序转换项目。

随即打开项目窗口。

4. 在您首次创建应用程序转换项目时,项目窗口会自动打开。要打开现有应用程序转换项目,请选择源树状图中的项目节点,打开上下文 (右键单击) 菜单,然后选择 Manage application。

版本 1.0170

Page 177: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南分析和转换您的 SQL 代码

5. 您可以添加更多应用程序转换项目,方法是:从 Applications 菜单中选择 New Application,或者选择源树状图中的 Applications 节点、打开上下文 (右键单击) 菜单,然后选择 Add application。

使用 AWS Schema Conversion Tool 分析和转换您的 SQL 代码

使用 AWS Schema Conversion Tool 按照以下过程来分析和转换 SQL 代码。

分析和转换您的 SQL 代码

1. 在应用程序转换项目中,选择 Analyze。

AWS SCT 会分析您的应用程序代码并提取 SQL 代码。所有提取的 SQL 代码的列表会显示在窗口底部的 Parsed SQL Scripts 窗格中。列表中所选项目还会显示在 Extracted SQL script 窗格中。

2. 您可以分析列表中每个 SQL 代码项,并且在准备就绪后选择 Convert,将 SQL 转换为目标数据库的SQL。

Note

您可以在后续步骤中编辑转换后的 SQL 代码。

版本 1.0171

Page 178: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南创建和使用评估报告

创建和使用评估报告应用程序评估报告可提供关于将应用程序 SQL 代码从源数据库架构转换到目标数据库架构的重要信息。该报告详细列出了从应用程序中提取的所有 SQL、经过转换的所有 SQL,以及无法转换的 SQL 的操作项目。此外,该报告还包含:手动转换无法自动转换的 SQL 代码所需付出的工作量的估算。

创建应用程序评估报告使用以下过程创建应用程序评估报告。

创建应用程序评估报告

1. 在应用程序转换项目窗口中,从 Actions 菜单中选择 Create Report。

系统会创建报告,并在应用程序转换项目窗口中打开该报告。2. 查看 Summary 选项卡。

如下所示的 Summary 选项卡显示了应用程序评估报告中的摘要信息。它显示了已自动转换的 SQL 代码项目及未自动转换的项目。

3. 选择 SQL Conversion Actions 选项卡,并检查信息。

SQL Conversion Actions 选项卡包含无法自动转换的 SQL 代码项目的列表。此外,还有针对手动转换SQL 代码的方法的建议。您可以在后面的步骤中编辑转换后的 SQL 代码。有关更多信息,请参阅 使用AWS Schema Conversion Tool 编辑和保存转换后的 SQL 代码 (p. 173)。

版本 1.0172

Page 179: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南编辑和保存转换后的 SQL 代码

4. 您可以将应用程序评估报告的本地副本另存为 PDF 文件或逗号分隔值 (CSV) 文件。该 PDF 文件包含摘要和操作项目信息。CSV 文件仅包含操作项信息。

使用 AWS Schema Conversion Tool 编辑和保存转换后的 SQL 代码

评估报告包含无法自动转换的 SQL 代码的列表。对于无法转换的每一项,SQL Conversion Actions 选项卡上都有一个操作项。对于这些项目,您可以手动编辑 SQL 代码以执行转换。

按照以下过程编辑转换后的 SQL 代码、应用更改,然后进行保存。

编辑、应用更改并保存转换后的 SQL 代码

1. 直接在 Target SQL script 窗格中编辑转换后的 SQL 代码。如果未显示转换后的代码,您可以单击窗格并开始键入。

2. 编辑完转换后的 SQL 代码,请选择 Apply。此时,更改便会保存在内存中,但尚未写入您的文件。3. 选择 Save 将更改保存到文件中。

Important

当您选择 Save 时,会覆盖您的原始文件。在保存之前复制您的原始文件,以便记录原始应用程序代码。

版本 1.0173

Page 180: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南使用扩展包数据库架构

使用 AWS Schema Conversion Tool扩展包

AWS SCT 扩展包是一个附加模块,用于模拟源数据库中存在的特定函数(将对象转换为目标数据库时需要)。您需要先转换数据库架构,然后才能安装 AWS SCT 扩展包。

AWS SCT 扩展包中包含以下组件:

• 数据库架构 – 包含 SQL 函数、过程和表,用于模拟一些 OLTP 和 OLAP 对象(如序列)或源数据库中不受支持的内置函数。此架构以格式 aws_<database engine name>_ext 命名。

• 自定义 Python 库(针对选定的 OLAP 数据库) – 包含一组用于模拟不受支持的内置数据库功能的 Python函数。当您从其中一个受支持的数据库迁移到 Amazon Redshift 时,请使用此库。

有关此库的更多信息,请参阅 使用 AWS SCT 扩展包的自定义 Python 库 (p. 175)。• AWS Lambda 函数(针对选定的 OLTP 数据库)– 包含用于模拟任务安排和电子邮件发送等复杂数据库功

能的 AWS Lambda 函数。

下面几节将讨论 AWS SCT 扩展包。

主题• 使用扩展包架构 (p. 174)• 使用 AWS SCT 扩展包的自定义 Python 库 (p. 175)• 使用 AWS Lambda 扩展包中的 AWS SCT 函数 (p. 176)

您可以通过以下两种方式应用 AWS SCT 扩展包:

• 当您通过从上下文菜单中选择 ApplyToTarget 来应用目标数据库脚本时,AWS SCT 会自动应用扩展包。在 AWS SCT 应用所有其他架构对象之前,它会应用扩展包。

• 要手动应用扩展包,请选择目标数据库,然后从上下文菜单中选择 Apply Extension Pack。对于大多数情况,自动应用已足够。但是,您在意外删除扩展包后可能希望应用它。

每次将 AWS SCT 扩展包应用于目标数据存储时,组件都会被覆盖。每个组件都有一个版本号,如果当前组件版本早于应用的组件版本,AWS SCT 会向您发出警告。您可以在 Settings 的 Global Settings 部分的Notification Settings 中控制这些通知。

使用扩展包架构转换数据库或数据仓库架构时,AWS SCT 会向您的目标数据库添加一个额外的架构。该架构用于实现将转换后的架构写入到目标数据库时必需的源数据库的 SQL 系统功能。此额外架构称为扩展包架构。

OLTP 数据库的扩展包架构按照源数据库命名,如下所示:

• Microsoft SQL Server: AWS_SQLSERVER_EXT• MySQL:AWS_MYSQL_EXT

• Oracle:AWS_ORACLE_EXT

• PostgreSQL: AWS_POSTGRESQL_EXT

版本 1.0174

Page 181: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南扩展包的自定义 Python 库

OLAP 数据仓库应用程序的扩展包架构按照源数据存储命名,如下所示:

• Greenplum:AWS_GREENPLUM_EXT

• Microsoft SQL Server: AWS_SQLSERVER_EXT• Netezza:AWS_NETEZZA_EXT

• Oracle:AWS_ORACLE_EXT

• Teradata:AWS_TERADATA_EXT

• Vertica:AWS_VERTICA_EXT

使用 AWS SCT 扩展包的自定义 Python 库在某些情况下,AWS Schema Conversion Tool 无法将源数据库功能转换为等效的 Amazon Redshift 功能。AWS SCT 扩展包包含一个自定义 Python 库,该库可模拟 Amazon Redshift 上的一些源数据库功能。

如果您要转换事务型数据库,请参阅 使用 AWS Lambda 扩展包中的 AWS SCT 函数 (p. 176)。

在以下两种情况下,您可能需要手动安装扩展包:

• 您意外删除了目标数据库中的扩展包架构。• 您要上传自定义 Python 库以模拟数据库功能。

使用 AWS 服务上传自定义 Python 库AWS SCT 扩展包向导可帮助您安装自定义 Python 库。

应用扩展包使用以下过程应用扩展包。

应用扩展包

1. 在 AWS Schema Conversion Tool 的目标数据库树中,打开上下文(右键单击)菜单,然后选择 ApplyExtension Pack (应用扩展包)。

扩展包向导随即出现。2. 查看 Welcome 页面,然后选择 Next。3. 在 AWS Services Settings 页面上,执行以下操作:

• 如果您只要重新安装扩展包架构,则选择 Skip this step for now,然后选择 Next。

版本 1.0175

Page 182: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南扩展包中的 Lambda 函数

• 如果您要上传 Python 库,则提供凭证以连接到您的 AWS 账户。如果您已安装 AWS Command LineInterface,则可以使用 AWS CLI (AWS CLI) 凭证。您也可以使用之前存储在全局应用程序设置的配置文件中且与项目关联的凭证。如有必要,请选择 Navigate to Project Settings,将一个不同的配置文件与项目关联。如有必要,请选择 Global Settings 以创建新的配置文件。有关更多信息,请参阅在AWS Schema Conversion Tool 中使用 AWS 服务配置文件 (p. 12)。

4. 在 Python Library Upload 页面上,执行以下操作:

• 如果您只要重新安装扩展包架构,则选择 Skip this step for now,然后选择 Next。• 如果您要上传 Python 库,则提供 Amazon S3 路径,然后选择 Upload Library to S3 (将库上传到

S3)。

完成后,选择 Next 。5. 在 Functions Emulation 页面上,选择 Create Extension Pack。此时显示包含扩展包操作状态的消息。

完成后,选择 Finish。

使用 AWS Lambda 扩展包中的 AWS SCT 函数AWS Schema Conversion Tool 扩展包包含 Lambda 函数,这些函数为 Amazon EC2 平台上托管的数据库提供电子邮件、作业调度和其他功能。

使用 AWS Lambda 函数模拟数据库功能在某些情况下,数据库功能无法转换为等效的 Amazon RDS 功能。例如,Oracle 发送使用 UTL_SMTP 的电子邮件调用,Microsoft SQL Server 可以使用作业计划程序。如果您在 Amazon EC2 上托管并自行管理数据库,则可通过替代 AWS 服务来模拟这些功能。

AWS SCT 扩展包向导可帮助您安装、创建和配置 Lambda 函数,以模拟电子邮件、作业调度和其他功能。

应用扩展包使用以下过程应用扩展包。

Important

AWS 服务模拟功能仅适用于 Amazon EC2 上安装和自管理的数据库。如果目标数据库位于Amazon RDS 数据库实例上,请勿安装服务模拟功能。

应用扩展包

1. 在 AWS Schema Conversion Tool 的目标数据库树中,打开上下文(右键单击)菜单,然后选择 ApplyExtension Pack (应用扩展包)。

版本 1.0176

Page 183: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南应用扩展包

扩展包向导随即出现。2. 查看 Welcome 页面,然后选择 Next。3. 在 AWS Services Settings 页面上,执行以下操作:

• 如果您只要重新安装扩展包架构,则选择 Skip this step for now,然后选择 Next。• 如果您要安装 AWS 服务,则提供凭证以连接到您的 AWS 账户。如果您已安装 AWS Command Line

Interface,则可以使用 AWS CLI (AWS CLI) 凭证。您也可以使用之前存储在全局应用程序设置的配置文件中且与项目关联的凭证。如有必要,请选择 Navigate to Project Settings,将一个不同的配置文件与项目关联。如有必要,请选择 Global Settings 以创建新的配置文件。有关更多信息,请参阅 在AWS Schema Conversion Tool 中使用 AWS 服务配置文件 (p. 12)。

4. 在 Email Sending Service 页面上,执行以下操作:

• 如果您只要重新安装扩展包架构,则选择 Skip this step for now,然后选择 Next。• 如果您要安装 AWS 服务,并且拥有一个现有的 Lambda 函数,则可提供该函数。否则,向导将为您

创建该函数。完成后,选择 Next 。5. 在 Job Emulation Service 页面上,执行以下操作:

• 如果您只要重新安装扩展包架构,则选择 Skip this step for now,然后选择 Next。• 如果您要安装 AWS 服务,并且拥有一个现有的 Lambda 函数,则可提供该函数。否则,向导将为您

创建该函数。完成后,选择 Next 。6. 在 Functions Emulation 页面上,选择 Create Extension Pack。此时显示包含扩展包操作状态的消息。

完成后,选择 Finish。

版本 1.0177

Page 184: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南常规内存管理和性能选项

针对 AWS Schema Conversion Tool的最佳实践

您可以在下面查找关于使用 AWS Schema Conversion Tool 的最佳实践和选项的信息。

常规内存管理和性能选项您可以为 AWS Schema Conversion Tool 配置不同的内存性能设置。提高内存性能可以提高转换速度,但会占用台式计算机的更多内存资源。

要设置您的内存管理选项,请从 Settings 菜单中选择 Global Settings,然后选择 Performance and Memory选项卡。请选择以下任一选项:

• 转换速度快,但内存消耗大 – 此选项可以优化转换速度,但可能需要更多内存作为对象引用缓存。• 内存消耗低,但转换速度较慢 – 此选项能够最大程度地减少内存使用量,但会降低转换速度。如果您的台

式计算机内存容量有限,请使用此选项。• 在速度与内存消耗之间实现平衡 – 此选项在内存使用量和转换速度之间实现了最佳平衡。

配置额外的内存为了转换大型数据库架构,例如含有 3500 个存储过程的数据库,您可以配置供 AWS Schema ConversionTool 使用的内存容量。

修改 AWS SCT 使用的内存量

1. 找到该配置文件所在的文件夹 (C:\Program Files\AWS Schema Conversion Tool\App)。2. 用记事本或喜欢的文本编辑器打开配置文件 AWS Schema Conversion Tool.cfg。3. 编辑 JVMUserOptions 部分以设置最小和最大可用内存。以下示例将最小值设置为 4 GB,最大值设置

为 40 GB。

[JVMUserOptions]-Xmx48960m -Xms4096m

版本 1.0178

Page 185: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南无法从 Oracle 源数据库加载对象

解决 AWS Schema Conversion Tool方面的问题

您可以在下面找到有关解决 AWS Schema Conversion Tool (AWS SCT) 方面的问题的信息。

无法从 Oracle 源数据库加载对象当您尝试从 Oracle 数据库加载架构时,您可能会遇到以下错误之一。

Cannot load objects tree.

ORA-00942: table or view does not exist

引发这些错误的原因是,您用其 ID 连接到 Oracle 数据库的用户没有 AWS SCT 所要求的读取架构的足够权限。

您可以向用户授予 select_catalog_role 权限以及访问数据库中任何词典的权限,从而解决此问题。这些权限提供对 AWS SCT 所需的视图和系统表的只读访问。以下示例会创建一个名为 min_privs 的用户ID,并向持有此 ID 的用户授予转换 Oracle 源数据库中架构所需的最小权限。

create user min_privs identified by min_privs;grant connect to min_privs;grant select_catalog_role to min_privs; grant select any dictionary to min_privs;

版本 1.0179

Page 186: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发行说明 – 635

AWS Schema Conversion Tool 的发布说明

此部分包含 AWS Schema Conversion Tool 从版本 1.0.611 开始的发布说明。

AWS Schema Conversion Tool 内部版本 635 的发行说明

对于 AWS Schema Conversion Tool 1.0.633 和 1.0.634 版本的更改将合并到 AWS Schema ConversionTool 1.0.635 版本中。

下表显示 AWS Schema Conversion Tool 版本 1.0.635 的功能和错误修复。

源 目标 新增功能、增强或修复

ALL ALL SCT UI - AWS Glue。作业构造常见任务

ALL Amazon Redshift JDBC 驱动程序更新到 1.2.36.1060。对于 CREATE TABLE 的改进。支持具有此选项的列:GENERATED BY DEFAULT ASIDENTITY。

ALL AuroraPostreSQL 11

现在支持将 Aurora PostreSQL 11 作为目标

ALL Microsoft SQLServer

现在支持 WAIT FOR DELAY。

ALL Oracle 修复:TO_CHAR(数字) 函数现在返回正确的结果。

ALL PostgreSQL 修复:带有有序集的分析函数 (PERCENTILE_CONT) 现在正确转换。

Micorosft AzureSQL/MicrosoftSQL Server

PostgreSQL/AuroraPostgreSQL

支持在 DDL 指令之后确定模式名称。

Greenplum Amazon Redshift 以下项目的 DDL 和存储代码改进。CREATE TEMPORARYTABLE。函数中的 TRUNCATE TABLE。PERFORM 运算符。审核并降低 AI 的“手动解决预计时间”和严重程度级别。SELECT 中的NEXTVAL。修复:VARCHAR 类型的某些列上错误的 AI 14006。对于 AI 14014 的更好描述。

Microsoft SQLServer

AWS Glue(Python shell)

以下项目的存储代码改进。运算符。SET 语句。DECLARE语法。CREATE PROCEDURE。转换为 Python 的内置函数。具有混合操作数类型的算术表达式。流量控制语言:IF/ELSE、WHILE、RETURN、CASE、WAITFOR。使用序列。过程错误处理。

Microsoft SQLServer

PostgreSQL/AuroraPostgreSQL

带日期的扩展算术运算。模拟 TOP (表达式) WITH TIES。

版本 1.0180

Page 187: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发行说明 – 635

源 目标 新增功能、增强或修复

Netezza Amazon Redshift 存储代码改进。CREATE TABLE AS、CREATE VIEW AS。数据类型映射审核和改进。修复:更正了 OBFUSCATE 过程标志和 AI15089。

Netezza Amazon Redshift 以下项目的存储代码改进。DDL 语句改进。DROP 对象。SET 系统参数。AppConversion 可解析。DML 语句。数据类型映射。日期时间内置函数。支持系统功能和间隔。

Oracle Amazon Redshift 以下项目的存储代码改进。标准 Oracle 软件包。游标循环中的INSERT 语句。

Oracle AWSGlue(Spark 模式)

支持数据类型映射到 Python 数据类型。改进了 SparkSQL 字符串构造。改进了 pg8000 SQL 字符串构造。

Oracle PostgreSQL/AuroraPostgreSQL

改进了关联数组和全局嵌套表逻辑。改进了全局集合的初始化流程。支持 TO_TIMESTAMP 函数、dbms_lock 优化、锁定模式/超时。

Oracle PostgreSQL/AuroraPostgreSQL

在用于嵌套过程/函数的过程/函数中实现声明局部/全局变量。支持将参数/变量作为显式游标参数传递。修复:本地游标转换问题。修复:包变量在目标 init 函数中排序。

Oracle PostgreSQL/AuroraPostgreSQL

以下项目的改进:IS NULL/SET NULL 转换。包记录类型变量转换。NUMBER 变量的自定义类型映射设置。关联数组和本地嵌套表逻辑。视图中的 OVER。全局集合的默认值。全局临时表触发器。现在支持 ANYDATA。现在支持多个插入。

PostgreSQL Microsoft SQLServer

修复:带有联接的更新和删除现在正确执行

PostrgreSQL Microsoft SQLServer

修复:SCT 不再忽略 RANK OVER 查询中的 DESC 排序关键字。

SAP ASE PostgreSQL/AuroraPostgreSQL

改进了对以下项目的支持:带有 3 个参数的 CONVERT(char(x),varchar,0)。SELECT VAR = 表达式/ SELECT VAR= (SELECT ...FROM...)。临时表上的索引。查询提示。ROLLBACK TRIGGER/ROLLBACK TRIGGER WITHRAISEERROR。HAVING,具有不在 GROUP BY 子句中的列。HAVING,无 GROUP BY。使用参数和生成的 refcursor 的过程调用转换现在是正确的。SET 当前会话处理。修复:Sybase 外部联接到 ANSI 标准外部联接。模拟系统对象、host_id()、host_name()、SQLGET_APPCONTEXT、@@SPID、SUSER_NAME 函数。修复:正确解析临时表的列。

SAP ASE PostgreSQL/AuroraPostgreSQL

改进了对当前会话使用 SET 的支持。

SQL Server PostgreSQL 修复:VARCHAR 不再转换为 VARCHAR(1)。

SQL Server PostgreSQL 修复:SQL Server DATEDIFF 函数现在正常工作。

Sybase PostgreSQL 改进了 UPDATE 语句的转换。

Teradata Amazon Redshift 现在转换 EXECUTE IMMEDIATE。现在支持的分配方式 =AUTO。

版本 1.0181

Page 188: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发行发说明 – 632

源 目标 新增功能、增强或修复

Teradata AWSGlue(Spark 模式)

一般转换改进。改进了 SparkSQL 字符串构造和 pg8000 SQL 字符串构造。

已解决:

• 项目向导 - 允许在实例级别运行• 对于 Teradata 的转换问题的修复

AWS Schema Conversion Tool 内部版本 632 的发行说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.632 的功能和错误修复。

源 目标 新增功能、增强或修复

ALL ALL SCT UI – 添加了新的选项卡,以显示应用脚本时发生的错误。

SAP-ASE ALL 现在可以将源树另存为 SQL。

Oracle PostgreSQL或 AuroraPostgreSQL

• 现在可将任意位置的空字符串文字转换为 NULL:对象元数据、可解析语句、脚本、应用程序源代码中的 SQL 语句等。

• REPLACE 现在在 Oracle 和 PostgreSQL 中具有相同的行为。• 现在接受的参数超过 100 个,默认情况下函数和程序不允许使用

这些参数。• 函数 aws_oracle_ext.instr 不再返回错误的结果。• 函数 LEAST 和 GREATEST 现在作用相同。• 在视图中,不应再使用 Extpack 函数 immutable_concat_ws

代替 standard concat_ws。• 实现了不可变的 concat extpack 函数。• 现在视图中的公共同义词更长。• 添加了对 dbms_application_info.set_module 的支持。• 现在支持错误代码以前不兼容的数字类型变量。• 现在支持 FETCH BULK COLLECT INTO。• 现在在函数中支持 SAVEPOINT, ROLLBACK TO SAVEPOINT。• 现在 SELECT...INTO... 支持光标。• 现在支持软件包的集合变量作为例程输入参数的 DEFAULT 值。• 参数或变量的类型声明基于系统的视图列 %TYPE。• 现在支持 %ROWTYPE 的全局嵌套表。• 支持具有 %TYPE 子类型的软件包。• 修复:向集合元素字段中插入值导致转换器错误。

SAP ASE PostgreSQL或 AuroraPostgreSQL

• 现在支持使用未解决的临时表正确转换多表 UPDATE 语句。• 当未指定 Schema 名称或仅使用数据库名称时,解决正确对象。• 现在支持 CONVERT 函数(扩展包)。

版本 1.0182

Page 189: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 631

源 目标 新增功能、增强或修复

Netezza Redshift • 存储的代码。改进了事务控制支持 (COMMIT/ROLLBACK)。• 将未解决的 AI 15028 的严重性从“严重”更改为“高”。在查询中添

加了运算符 /=/ 处理。• 缩短 AI 15001、15002 和 15003 的“手动解决估计时间”。• 在 sql 语句中转换 /=/ 运算符。• 带引号数据类型的数据类型映射(例如 "VARCHAR"、"TIME",

等等)改进。

Amazon RDS forOracle

Redshift 修复:针对在任何日语环境操作系统上使用 SCT 数据提取代理从 RDS Oracle 加载到 Redshift 时发生的复制命令错误。在提取数据之前,为 Oracle 添加了命令“ALTER SESSION SETNLS_DATE_LANGUAGE = 'ENGLISH”。

已解决:

• 修复:当前项目设置菜单中的错别字• 修复:无法使用映射规则转换为大写(当 PostgreSQL 为转换目标时)

AWS Schema Conversion Tool 内部版本 631 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.631 的功能和错误修复。

源 目标 新增功能、增强或修复

Oracle 和OracleDW

全部 添加了对计数机制和 SQL 代码行计数的支持

Oracle MariaDB(10.2/10.3/10.3SQLMODE=ORACLE)

使用 Oracle CONNECT BY 语法的分层查询将传输到通用表表达式(WITH RECURSIVE)

Oracle MariaDB

MySQL

MySQL (Aurora)

修复了复杂联接,使表出现在联接的两侧

SAP ASE MySQL 支持 CONVERT 函数

SAP ASE MySQL

MySQL (Aurora)

修复:使用多表 SELECT 实现来转换 INSERT 以及使用临时表实现来转换多表 UPDATE 语句

Microsoft SQLServer

MySQL

MySQL (Aurora)

修复:当您调用对象且未指定模式时,模式和对象定义不正确

没有模式的系统对象现在按原样转换。

SAP ASE MySQL

MySQL (Aurora)

修复:使用多表 SELECT 不正确地转换 INSERT

版本 1.0183

Page 190: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 631

源 目标 新增功能、增强或修复

Microsoft SQLServer

PostgreSQL 现在,try/catch 块中的注释传输到目标

改进了对具有默认值的存储过程参数的支持

修复:当使用 ALTER TABLE 和 ENABLE / DISABLE TRIGGERALL 时,从 proc 中删除整个代码

SAP ASE PostgreSQL 支持 CONVERT 函数

Oracle PostgreSQL 支持 ProC 到 ECPG 代码转换

改进了对 RAWTOHEX/HEXTORAW/UTL_RAW 转换的支持

改进了对全局游标的支持,以在单独的存储例程中允许 OPEN和FETCH 命令。通过此改进,可以在一个过程中打开游标,在另一个过程中获取游标,然后在第三个过程中关闭游标。

在 PostgreSQl 11 的过程和功能之间切换的选项

DBMS_XMLGEN 和 DBMS_XMLQUERY

为存储过程创建公共同义词

Microsoft SQLServer

PostgreSQL

PostgreSQL(Aurora)

改进了在过程调用仅指定数据库名称时模式和对象定义的准确性

没有模式的系统对象现在按原样转换

版本 1.0184

Page 191: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 631

源 目标 新增功能、增强或修复

Oracle PostgreSQL

PostgreSQL(Aurora)

改进了对全局游标的支持,以在单独的存储例程中允许 OPEN和FETCH 命令。通过此改进,可以在一个过程中打开游标,在另一个过程中获取游标,然后在第三个过程中关闭游标。

子查询中的列别名现在正确转换。

支持 REVERSE 函数

支持匿名数据块中的参数

添加了选项以将 ROWID 作为 varchar(36) 转换。使用此新选项,您可以为MyRowid 创建 DOMAIN 以作为 varchar(36) NOTNULL,然后转换 ROWID 数据类型和列 AS MyRowid,最后为每个列创建一个 SEQUENCE 并将其默认为 NEXTVAL()。系统视图模拟

支持 FORALL MERGE

使用 %TYPE 类型的参数支持全局游标。从 Oracle 转换时的改进:

使用 %TYPE 类型的参数支持全局游标。使用 %TYPE 类型的参数支持全局游标

支持为无变量的包创建初始化函数

具有 100 多个参数的例程上引发了 AI

具有 NULL 的情况下正确转换 DECODE 到 CASE

如果需要除连接列以外的其他列,则针对递归 SQL 进行转换。

本地显式游标的 %FOUND 和 %NOTFOUND 属性的用法

使用命名符号调用具有集合类型结果的函数

具有集合类型和默认参数值的结果的函数

版本 1.0185

Page 192: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 631

源 目标 新增功能、增强或修复

Greenplum Redshift FUNCTION 声明 (DROP/CREATE PROCEDURE)

变量和常量声明

变量赋值和表达式

控制流语言。FOR

游标

动态 SQL v1。(使用 AI 的拒绝)

数据类型映射 Greenplum PL/pgSql- Redshift PL/pgSQL

PL/pgSQL 结构(BEGIN...END、子数据块、标签)

注释

控制流语言。RETURN / RETURN NEXT

控制流语言。IF-THEN-ELSE

控制流语言。循环中的 EXIT / CONTINUE

控制流语言。简单循环

控制流语言。WHILE

常见语句。调用另一个过程/UDF

RETURNS SETOF 导致 Redshift 函数 (plpythonu)

将 VOID 值返回到 Redshift (plythonu)

Microsoft SQLServer

Redshift 支持 CLR 存储过程

改进了存储代码中对事务控制的支持(COMMIT、ROLLBACK)

Netezza Redshift Netezza 过程不再转换为 python 函数

支持赋值、SELECT 到变量、过程注释和其他附加情况。

Oracle Redshift 改进了对 PL/SQL 程序包的支持

改进了存储代码中对事务控制的支持(COMMIT、ROLLBACK)

Teradata Redshift 支持存储代码中的事务控制(COMMIT、ROLLBACK)。

执行存储过程和函数

返回结果集游标

诊断语句

对 CREATE TABLE 和 CREATE VOLATILE TABLE 的 DDL 语句支持

已解决:

版本 1.0186

Page 193: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 630

• 修复:无法将 SQL Server SYSDATETIMEOFFSET 函数转换为 PG• 修复:Amazon ETL 服务的服务配置文件测试连接失败 (SCT 626)• 修复:将 Teradata 表转换为 Redshift 时出现问题• 修复:Amazon ETL 服务的全局服务配置文件测试连接失败• 修复:SCT 评估报告无法将多字节字符另存为 PDF• 修复:DMS 独立代理现在支持 S3 作为 DMS 本地任务的目标• 修复:您现在可以在对象树中查看 SAP ASE 系统表。• 修复:在从 SQL Server 到 PostgreSQL 的转换中,SCT 现在支持 try/catch 块中的注释。

AWS Schema Conversion Tool 内部版本 630 的发布说明

AWS Schema Conversion Tool 1.0.630 版本已合并到 AWS Schema Conversion Tool 1.0.631 版本中。有关合并在一起的更改,请参阅 AWS Schema Conversion Tool 内部版本 631 的发布说明 (p. 183)。

AWS Schema Conversion Tool 内部版本 611 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.629 的功能和错误修复。

新功能或增强功能 描述

   

Redshift 对于从 Netezza 进行的转换,存储代码支持以下内容:

• 存储过程

对于从 Microsoft SQL Server 进行的转换:

• 添加了打印源代码 CLR 存储过程的功能• OBJECT_ID

对于从 Oracler 进行的转换,存储代码支持以下内容:

• PL/SQL 软件包

对于从 Teradata 进行的转换:

• 异常处理• 条件处理• DDL 语句• DDL 语句:CREATE 其他对象• DML 语句:改进的支持

SAP ASE 支持将 SAP ASE 12.5 作为源

版本 1.0187

Page 194: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 628

新功能或增强功能 描述

DynamoDB 对于从 Cassandra 进行的转换:

• 迁移改进和错误修复• 用于元组和冻结的集合类型提取

MySQL 8 对于从 Oracle 进行转换,增加了对使用 Oracle CONNECT BY 的分层查询的支持,现在将语法转换为包括 RECURSIVE 修饰符的 WITH 查询(CTE)。

MySQL 和 Aurora MySQL 对于从 SAP ASE 进行的转换:

• 支持将用户定义的消息添加到系统表 sysusermessages 中以供任意应用程序使用。使用 sp_addmessage 以将消息添加到sysusermessages;使用 sp_getmessage 检索消息,以供 print和 raiserror 使用。

• 更正 RAISERROR 的错误转换。

PostgreSQL 对于从 Oracle 进行的转换,支持以下内容:

• 忽略禁用触发器和约束的选项• 数组的分配操作或者嵌套记录的全局嵌套表• EXTRACT、EXTRACTVALUE 函数• 本地和全局应用程序上下文与扩展包,包括对象树和规则中的额外类

别。• XMLSEQUENCE、XMLELEMENT 和 XMLTYPE 方法• 改进了全局光标,支持在单独的存储例程中转换 OPEN 和 FETCH 命

令。现在,光标可以在一个步骤中打开,在另一个步骤中提取,然后在第三个步骤中关闭。

• 修复:再选择的列别名不会被错误转换• 修复了 SCT Transformer 错误,复杂的联接不再在联接两端显示表。

对于从 Microsoft SQL Server 进行的转换,支持以下动态 SQL

PostgreSQL 和 AuroraPostgreSQL

对于从 Oracle 进行的转换,dbms_application_info.set_action可由扩展包模拟。此外,在 SQL%bulk_exceptions 引用导致出现转换器错误时,这些异常现在应被 AI 拒绝。

已解决:

• 触发器和步骤现在可以从 SQL Server 转换到 MySQL• 现在,SCT 能够在从 SQL Server 转换到 Aurora PostgreSQL 时转换具有 6000 个步骤的架构• 修复了无法在弗吉尼亚北部区域使用 AWS Glue• SQL Server 源过程在架构转换期间不会再卡顿• 一般缺陷修复和改进。

AWS Schema Conversion Tool 内部版本 628 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.628 的功能和错误修复。

版本 1.0188

Page 195: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 628

新功能或增强功能 描述

服务替代 对于从 DB2 转换为 Aurora MySQL:

• 电子邮件发送模拟• 文件支持模拟• 作业模拟

对于从 DB2 转换为 Aurora PostgreSQL:

• 电子邮件发送模拟• 文件支持模拟• UTL_File 程序包模拟

对于从 Microsoft SQL Server 转换为 MySQL、PostgreSQL、AuroraMySQL 或 Aurora PostgreSQL:

• SQL Server Scheduler 模拟

对于从 Oracle 转换为 MySQL 或 Aurora MySQL:

• 文件支持模拟• OWA_ 程序包模拟• Oracle 排队模拟• HTP/HTF/OWA_* 程序包模拟

对于从 Oracle 转换为 PostgreSQL 或 Aurora PostgreSQL:

• 文件支持模拟• OWA_ 程序包模拟• Oracle 排队模拟• UTL_FILE 程序包模拟

Redshift 对于从 Microsoft SQL Server 进行的转换,存储代码支持以下内容:

• 存储过程和动态 SQL

对于从 Oracler 进行的转换,存储代码支持以下内容:

• 过程中的游标• MERGE

• 过程中支持 EXECUTE IMMEDIATE 并改进了动态 SQL 中的支持• 过程中的嵌套子程序

对于从 Teradata 进行的转换,存储代码支持以下内容:

• 过程中的游标• MERGE

• QUALIFY

• DECLARE 和 SET 变量

版本 1.0189

Page 196: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 628

新功能或增强功能 描述

SAP ASE 15.0 支持 SAP ASE 15.0 作为源

DynamoDB 对于从 Cassandra 进行的转换,支持以下内容:

• 集合类型 (SET, LIST, MAP) 提取• 常规改进和修复

MySQL 8 对于从 DB2 或 SAP ASE 进行的转换,支持区分大小写的实例

PostgreSQL 11 对于从 DB2 进行的转换,支持以下内容:

• 支持 SQL 存储过程的嵌入式事务和 CALL。在由 CALL 命令以及匿名代码块(DO 命令)调用的过程中,可以使用命令 COMMIT 和 ROLLBACK结束事务。在使用这些命令结束一个事务之后,将自动启动一个新事务,因此没有单独的 START TRANSACTION 命令。(请注意,在 PL/pgSQL 中,BEGIN 和 END 有不同的含义。)

对于从 Microsoft SQL Server 进行的转换,支持以下内容:

• 支持动态 T-SQL。支持在动态查询中通过使用 CALL 调用存储过程。

对于从 Oracle 进行的转换,支持以下内容:

• 支持 SQL*Plus 转换,包括过程和动态 SQL。动态查询中的存储过程CALL。

• 增加了选项,用于更改具有 PK 和 FK(后者引用修改后的 PK)的列的默认数据类型映射。例如,您可以将具有小数位数和精度的数字转换为 bigint,以实现性能改进。以前,从 Oracle 迁移数值数据类型到 PostgreSQL 时,SCT 在 PostgreSQL 中默认为转换为数值。如果Oracle 中使用的数字具有小数位数和精度,则此转换没有问题。但是,如果它是一个整数,在列上具有 PK 索引,则在 PostgreSQL 中将其转换为数值可能导致性能问题。

• 支持将 %TYPE 转换为内置数据类型。SCT 根据类型映射规则,使用新数据类型替换 %TYPE。

• 替换了函数和过程参数的默认映射,因此 NUMBER 转换为 NUMERIC 而不是 DOUBLE PRECISION

对于从 SAP ASE 进行的转换,支持以下内容:

• CREATE PROCEDURE with RETURN

• 支持在动态查询中通过使用 CALL 调用存储过程。• 支持分区表上的 FOREIGN KEY。PostgreSQL 11 仅支持从一个分区表

到一个(非分区)表的外键。• 支持分区表上的索引。对主表编制索引之后,PostgreSQL 在现有子表

以及以后的分区表上自动创建配置相同的索引。• 支持分区表上的 PRIMARY KEY。在版本 11 中,您可以将主键添加

到主表。执行此操作将在现有子表和以后的分区表上创建 PRIMARYKEY。如果添加了 PARTITION,则无需手动创建主键。

• 支持分区表上的触发器。在主表上创建触发器之后,PostgreSQL 将自动在所有子表上创建触发器(此行为类似于索引的情况)。

版本 1.0190

Page 197: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 627

新功能或增强功能 描述

PostgreSQL 和 AuroraPostgreSQL

对于从 Sybase 进行的转换,UDT 转换为 DOMAIN

已解决:

• 添加了对创建 SCT 报告以及在 WQF 中创建逻辑组件的支持。• 修复:WQF 报告包含提取失败操作项的问题• 修复:SCT 没有为 Aurora PostgreSQL 自动选取 DMS 终端节点的问题• 修复:Apply to database (应用到数据库) 对多个架构灰显的问题• 一般缺陷修复和改进。

AWS Schema Conversion Tool 内部版本 627 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.627 的功能和错误修复。

新功能或增强功能 描述

支持转换为 Amazon Redshift中的存储过程

改进了在将存储过程从 Microsoft SQL Server Server 转换为 AmazonRedshift 时对下列功能的支持:

• 改进了 DDL 支持• 临时表• PROCEDURE 声明• 过程错误处理• SET 语句• 控制流语言• 运算符• CURSORS

• 具有混合操作数类型的算术表达式

PostgreSQL 11 对转换为 PostgreSQL 的改进包括以下内容。

• 对于 DB2 源:• DEFAULT 分区功能存储不映射到任何其他分区的元组。在

PostgreSQL 11 之前,这些行将导致出错。未映射到任何分区表的行将插入到默认分区中。

• 现在可使用 CREATE INDEX 的 INCLUDE 子句创建覆盖索引• CREATE PROCEDURE 定义新的过程。CREATE OR REPLACEPROCEDURE 将创建一个新的过程,或者替换现有定义。用户必须具有语言的 USAGE 权限才能定义过程。

• 一旦在主表上创建触发器,它将自动在所有子表上创建触发器(此行为类似于索引的情况)。

• 一旦在主表上创建索引,它将自动在所有现有子分区上创建具有相同配置的索引,并且还会负责处理未来的所有分区表。

• Postgres 11 仅支持从一个分区表到一个(非分区)表的外键。

版本 1.0191

Page 198: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 627

新功能或增强功能 描述• 在版本 11 中,可以将 PRIMARY KEY 添加到主表,这会在所有

现有子表以及未来的分区表上创建 PRIMARY KEY。将添加 IFPARTITION,无需手动创建主键

• 对于 Microsoft SQL Server 源:• 现在可使用 CREATE INDEX 的 INCLUDE 子句创建覆盖索引• 在由 CALL 命令以及匿名代码块(DO 命令)调用的过程中,可以

使用命令 COMMIT 和 ROLLBACK 结束事务。在使用这些命令结束一个事务之后,将自动启动一个新事务,因此没有单独的 STARTTRANSACTION 命令。(请注意,在 PL/pgSQL 中,BEGIN 和 END有不同的含义。)

• SQL 存储过程的 CALL 语法• CREATE PROCEDURE 定义新的过程。CREATE OR REPLACEPROCEDURE 将创建一个新的过程,或者替换现有定义。用户必须具有语言的 USAGE 权限才能定义过程。

• 一旦在主表上创建触发器,它将自动在所有子表上创建触发器(此行为类似于索引的情况)。

• 一旦在主表上创建索引,它将自动在所有现有子分区上创建具有相同配置的索引,并且还会负责处理未来的所有分区表。

• Postgres 11 仅支持从一个分区表到一个(非分区)表的外键。• 在版本 11 中,可以将 PRIMARY KEY 添加到主表,这会在所有

现有子表以及未来的分区表上创建 PRIMARY KEY。将添加 IFPARTITION,无需手动创建主键。

• 对于 Oracle 源:• 在由 CALL 命令以及匿名代码块(DO 命令)调用的过程中,可以

使用命令 COMMIT 和 ROLLBACK 结束事务。在使用这些命令结束一个事务之后,将自动启动一个新事务,因此没有单独的 STARTTRANSACTION 命令。(请注意,在 PL/pgSQL 中,BEGIN 和 END有不同的含义。)

• SQL 存储过程的 CALL 语法• CREATE PROCEDURE 定义一个新的过程。CREATE OR

REPLACE PROCEDURE 将创建一个新的过程,或者替换现有定义。用户必须具有语言的 USAGE 权限才能定义过程。

• 对于 SAP ASE 源:• SQL 存储过程的 CALL 语法• 在由 CALL 命令以及匿名代码块(DO 命令)调用的过程中,可以

使用命令 COMMIT 和 ROLLBACK 结束事务。在使用这些命令结束一个事务之后,将自动启动一个新事务,因此没有单独的 STARTTRANSACTION 命令。(请注意,在 PL/pgSQL 中,BEGIN 和 END有不同的含义。)

• CREATE PROCEDURE 定义新的过程。CREATE OR REPLACEPROCEDURE 将创建一个新的过程,或者替换现有定义。用户必须具有语言的 USAGE 权限才能定义过程。

• 更改分区键列的UPDATE 语句现在会导致受影响的行移至相应的分区• PostgreSQL 11 DEFAULT 分区功能存储不映射到任何其他分区的元

组。在 PostgreSQL 11 之前,这些行将导致出错。未映射到任何分区表的行将插入到默认分区中。

• 一旦在主表上创建索引,它将自动在所有现有子分区上创建具有相同配置的索引,并且还会负责处理未来的所有分区表。

版本 1.0192

Page 199: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 627

新功能或增强功能 描述• 散列分区 – 该表通过为各个分区指定模数和余数来分区。每个分区保

存以下行:其分区键的散列值除以指定的模数将得到指定的余数

版本 1.0193

Page 200: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 627

新功能或增强功能 描述

MySQL 8 SCT 现在支持转换自 Oracle、Microsoft SQLServer、Azure、PostgreSQL 和 MySQL 的区分大小写的实例。SCT 现在提供了选项,可用来创建和使用小写的数据库、表和触发器名称。

对转换为 MySQL 的改进包括以下内容。

• 对于 DB2 源:• MySQL 现在支持降序索引:不再忽略索引定义中的 DESC,而是导致

按照降序存储键值。以前,可以按照反向扫描索引,但性能会下降。降序索引可以正向扫描,这更高效。降序索引还让优化程序可以在最有效的扫描顺序对于一些列是升序,而对于另一些列是降序时,使用多列索引

• MySQL 现在支持创建功能索引键部分,该部分索引表达式值而不是列值。功能键部分可以索引其他方式无法索引的值,例如 JSON 值

• MySQL 现在支持 CTE 和递归 CTE WITH(公用表表达式)• 派生表现在可在前面添加 LATERAL 关键字,指定该表允许引用(依

赖于)相同 FROM 子句中之前表的列。横向派生表会使得某些 SQL操作可能无法在无横向派生表上完成,或者需要较低效的解决方法

• 多个现有的聚合函数现在可用作窗口函数。• AVG()

• BIT_AND()

• BIT_OR()

• BIT_XOR()

• COUNT()

• JSON_ARRAYAGG()

• JSON_OBJECTAGG()

• MAX()

• MIN()

• STDDEV_POP()

• STDDEV()

• STD()

• STDDEV_SAMP()

• SUM()

• VAR_POP()

• VARIANCE()

• VAR_SAMP()

• MySQL 支持窗口函数,对于查询的每一行,这些函数使用与该行相关的行执行计算。• CUME_DIST()

• DENSE_RANK()

• FIRST_VALUE()

• LAG()

• LAST_VALUE()

• LEAD()

• NTH_VALUE()

• NTILE()

• PERCENT_RANK()

版本 1.0194

Page 201: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 627

新功能或增强功能 描述• RANK()

• ROW_NUMBER()

• 对于 Microsoft SQL Server 和 Azure SQL DB 源:• 多个现有的聚合函数现在可用作窗口函数。

• AVG()

• BIT_AND()

• BIT_OR()

• BIT_XOR()

• COUNT()

• JSON_ARRAYAGG()

• JSON_OBJECTAGG()

• MAX()

• MIN()

• STDDEV_POP()

• STDDEV()

• STD()

• STDDEV_SAMP()

• SUM()

• VAR_POP()

• VARIANCE()

• VAR_SAMP()

• WITH(公用表表达式)– MySQL 支持 CTE 和递归 CTE• MySQL 支持窗口函数,对于查询的每一行,这些函数使用与该行相

关的行执行计算。• CUME_DIST()

• FIRST_VALUE()

• LAG()

• LAST_VALUE()

• LEAD()

• 横向派生表• MySQL 现在支持降序索引:不再忽略索引定义中的 DESC,而是导致

按照降序顺序存储键值。以前,可以按照反向扫描索引,但性能会下降。降序索引可以正向扫描,这更高效。降序索引还让优化程序可以在最有效的扫描顺序对于一些列是升序,而对于另一些列是降序时,使用多列索引

• MySQL 现在支持在数据类型规格中使用表达式作为默认值。这包括使用表达式作为 BLOB、TEXT、GEOMETRY 和 JSON 数据类型的默认值,而以前这些数据类型无法分配默认值。

• 对于 Oracle 源:• 派生表现在可在前面添加 LATERAL 关键字,指定该表允许引用(依

赖于)相同 FROM 子句中之前表的列。横向派生表会使得某些 SQL操作可能无法在非横向派生表上完成,或者需要较低效的解决方法

• InnoDB 支持 NOWAIT 和 SKIP LOCKED 选项以及 SELECT ...FOR SHARE 和 SELECT ... FOR UPDATE 锁定读取语句。在请求的行由其他事务锁定时,NOWAIT 会使得语句立即返回。SKIPLOCKED 从结果集中删除锁定的行。

版本 1.0195

Page 202: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 627

新功能或增强功能 描述• WITH(公用表表达式)– MySQL 支持 CTE 和递归 CTE• 多个现有的聚合函数现在可用作窗口函数。

• AVG()

• BIT_AND()

• BIT_OR()

• BIT_XOR()

• COUNT()

• JSON_ARRAYAGG()

• JSON_OBJECTAGG()

• MAX()

• MIN()

• STDDEV_POP()

• STDDEV()

• STD()

• STDDEV_SAMP()

• SUM()

• VAR_POP()

• VARIANCE()

• VAR_SAMP()

• MySQL 实施正则表达式支持如下所示。• NOT REGEXP

• REGEXP

• REGEXP_INSTR()

• REGEXP_LIKE()

• REGEXP_REPLACE()

• REGEXP_SUBSTR()

• RLIKE

• MySQL 支持窗口函数,对于查询的每一行,这些函数使用与该行相关的行执行计算。• CUME_DIST()

• DENSE_RANK()

• FIRST_VALUE()

• LAG()

• LAST_VALUE()

• LEAD()

• NTH_VALUE()

• NTILE()

• PERCENT_RANK()

• RANK()

• ROW_NUMBER()

• 对于 SAP ASE 源:• MySQL 现在支持降序索引:不再忽略索引定义中的 DESC,而是导致

按照降序顺序存储键值。以前,可以按照反向扫描索引,但性能会下降。降序索引可以正向扫描,这更高效。降序索引还让优化程序可以

版本 1.0196

Page 203: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 626

新功能或增强功能 描述在最有效的扫描顺序对于一些列是升序,而对于另一些列是降序时,使用多列索引

• MySQL 现在支持创建功能索引键部分,该部分索引表达式值而不是列值。功能键部分可以索引其他方式无法索引的值,例如 JSON 值

• MySQL 现在支持在数据类型规格中使用表达式作为默认值。这包括使用表达式作为 BLOB、TEXT、GEOMETRY 和 JSON 数据类型的默认值,而以前这些数据类型无法分配默认值。

AWS Glue 对转换为 AWS Glue 的改进包括以下内容。

• 改进了过程参数的转换。• 能够为 AWS Glue 脚本的特殊字符添加引号。• 修复、改进和完善了从 Teradata BTEQ 向 AWS Glue 的转换。• 改进和修复了从 Oracle 向 AWS Glue 的转换。

DynamoDB 针对从 Cassandra 迁移到 DynamoDB 的迁移改进和修复。

Oracle SCT 现在支持 Oracle 源中的 INTERVAL 分区。

已解决:

• 增加了对将 MySQL 8 作为 AWS SCT 中的目标的支持。• 增加了对 WQF 中 Windows 身份验证的支持。• AWS DMS 代理不再需要用户名/密码字段。• 修复:选择了整个架构时,SCT 现在能够读取所有数据库对象(Oracle 到 Amazon Aurora

PostgreSQL)。• 修复:在您从 CSV/JSON 文件加载物理/逻辑组件时,WQF 中现在支持指向 AWS SCT 统计信息文件的物

理路径。• 修复:从 SQL Server 转换为 Aurora MySQL 时,复合键 (b,a) 不再更改为 (a,b)。• 修复:视图转换错误(SQL Server 到 PostgreSQL)。• 修复:对于从 SAP ASE 进行的转换,增加了在服务器连接上指定字符集的功能。

AWS Schema Conversion Tool 内部版本 626 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.626 的功能和错误修复。

新功能或增强功能 描述

PostgreSQL 11 现在支持 PostgreSQL 11 作为目标。主要功能包括以下方面:

• 为没有自动适合现有分区的行创建“default”分区。• 创建从分区表到非分区表的外键。• 在主表上创建唯一索引。此索引管理现有子表和未来分区表上具有相同

配置的索引。• 当您在主表上创建触发器时,它会自动在所有子表上创建触发器。• 当您 UPDATE 分区键列使其现在适合不同分区时,该行移动到相应的分

区。

版本 1.0197

Page 204: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 626

新功能或增强功能 描述• 通过指定要应用到分区键的模数来使用 HASH 分区。模数的剩余部分用

于确定该行的分区。

MySQL 8.0 现在支持 MySQL 8.0 作为目标。主要功能包括以下方面:

• 在索引定义中现在使用 DESC 以降序存储键值。以前,反向扫描这些索引会导致性能下降。现在可以高效地扫描降序索引(向前移动,而不是反向移动)。降序索引还让优化程序可以在最有效的扫描顺序对于一些列是升序,而对于另一些列是降序时,使用多列索引。

• 在数据类型规格中使用表达式作为默认值。这包括BLOB、TEXT、GEOMETRY 和 JSON 数据类型。

• 创建功能索引键部分,该部分索引表达式值而不是列值。功能键部分可以索引其他方式无法索引的值,例如 JSON 值。

SAP ASE 15.5 现在支持 SAP ASE 15.7 作为源。

AzureSQL/MSSQL 到MySQL/AuroraMySQL

现在,您可以在临时表和表值函数中使用身份列。

现在,您可以为具有身份列的表使用 INSERT INTO。

Cassandra 到 DynamoDB 迁移改进和缺陷修正。

在向导中添加了压缩过程。

在向导中使用 netcat 更换了实用程序 telnet。

DB2 到 MariaDB 10.3 (SQL MODE=ORACLE) 现在支持模块例程和变量引用。

DB2 到 MySQL/AuroraMySQL

服务替换 - 文件支持。

Netezza 到 Redshift 包含 DEFAULT 'now(0)' 的表列现在设置为 DEFAULT SYSDATE。

Oracle 到 MariaDB 10.3 (SQL MODE=ORACLE) 现在支持模块例程、变量引用和使用序列。

Oracle 到 MySQL/AuroraMySQL

服务替换 - 文件支持。

Oracle 到 AWS Glue 现在支持 FORMAT MODELS 集的内置函数。

SAP ASE 到 MySQL /AuroraMySQL

现在支持全局变量。

SAP ASE 到 PostgreSQL /Aurora PostgreSQL

现在支持全局变量。

Teradata BTEQ 到 AWS Glue 现在支持内置函数 BITBYTE 和 PERIOD 集。

已解决的问题:

• 修复了将 SQL Server 迁移到 MySQL 的内部转换器错误。• 修复了应用程序转换评估报告中的问题。• 修复了 Oracle 间隔分区的问题。• 修复和改进了向 AWS Glue 的转换。• 一般缺陷修复和改进。

版本 1.0198

Page 205: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 625

AWS Schema Conversion Tool 内部版本 625 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.625 的功能和错误修复。

新功能或增强功能 描述

Teradata BTEQ 转换 您现在可以将 Teradata BTEQ 脚本转换到 AWS Glue。

DB2 到 MariaDB 10.3 您现在可以结合使用光标与参数。

DB2 到 MariaDB 10.3 (SQLMODE=ORACLE)

对于使用 SQL MODE=ORACLE 从 DB2 到 MariaDB 10.3 的转换,现支持以下内容:

• %TYPE 和 %ROWTYPE 变量• 局部光标中的 ROW 结构变量• 声明标量变量• 声明默认变量值• 将模块转换到程序包。• CREATE PROCEDURE p1 (param OUT INT)

• CREATE PROCEDURE p1 (a IN OUT INT)

• 在函数正文前使用 AS• 在函数正文前使用 IS。

Oracle 到 MariaDB 10.3 对于从 Oracle 到 MariaDB 10.3 的转换,您可以使用 %TYPE 和%ROWTYPE 变量。

Oracle 到 MariaDB 10.3 (SQLMODE=ORACLE)

对于使用 SQL MODE=ORACLE 从 Oracle 到 MariaDB 10.3 的转换,现支持以下内容:

• %TYPE 和 %ROWTYPE 变量• 程序包例程(程序和函数)• SELECT UNIQUE

• GLOBAL CURSORS

• 程序包初始化数据块 BEGIN..END• 不带正文的程序包• 局部变量和常量• 全局变量和常量

MS SQL Server 到 MySQL/AuroraMySQL

对于从 MS SQL Server 到 MySQL/AuroraMySQL 的转换,现支持以下内容:

• sp_prepexec()(带动态 SQL)• sp_execute()(带动态 SQL)• sp_unprepare()(带动态 SQL)

SAP ASE 15.7 现在支持 SAP ASE 15.7。

已解决的问题:

• 增加了当您关闭项目时可能会丢失数据代理连接的通知。

版本 1.0199

Page 206: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 624

• 已解决从 Oracle 到 PostgreSQL 的转换问题。• 已解决从 SCT Oracle 到 PostgreSQL 的问题 - to_date 问题。• 常规错误修复和性能改进。

AWS Schema Conversion Tool 内部版本 624 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.624 的功能和错误修复。

新功能或增强功能 描述

将 Oracle ETL 转换到 AWSGlue

您现在可以将 Oracle ETL 作业转换到基于 AWS Glue 的 ETL 以便与Amazon Redshift 结合使用。

Microsoft SQLServer、Oracle 和 IBM Db2LUW 到 Amazon RDS forMariaDB 的转换

添加了对 RDS for MariaDB 10.2 和 10.3 作为目标的支持。

SAP ASE 到 RDS for MySQL和具有 MySQL 兼容性的Amazon Aurora 的转换

添加了对 SAP ASE 转换到 MySQL 数据库对象的支持。

在 Oracle 转换到 PostgreSQL期间对 Orafce 扩展的支持

您现在可以在 Oracle 兼容模式下转换到 PostgreSQL 时使用 Orafce 扩展作为目标。

已解决的问题:

• 修复了在北京和宁夏区域在 AWS SCT 中使用 AWS 配置文件时的一个问题。• 修复了在 SQL Server 到 RDS for PostgreSQL 和 Aurora PostgreSQL 的转换中,当转换存储过程时 SCT

不返回的问题。• 修复了内部版本 623 的数据提取器代理中的一个虚拟分区错误。• 常规错误修复和性能改进。

AWS Schema Conversion Tool 内部版本 623 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.623 的功能和错误修复。

Note

在下表中,同时将“PostgreSQL”解释为 PostgreSQL 和 Amazon Aurora PostgreSQL。

新功能或增强功能 描述

SAP ASE 到 PostgreSQL 的转换

添加了 SAP ASE 作为源数据库。

版本 1.0200

Page 207: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 623

新功能或增强功能 描述

用于转换到 PostgreSQL 的Oracle 函数 NLSSORT 模拟

NLSSORT 函数用于将字符串替换为由语言排序机制使用的等效排序字符串。如果是二进制排序,排序字符串与输入字符串相同。在语言排序中,字符串中的每个字符都替换为某些其他二进制值。

用于转换到 PostgreSQL 的Oracle 函数 DBTIMEZONE 模拟

Oracle/PLSQL DBTIMEZONE 函数将数据库时区返回为时区偏移(采用以下格式:“[+|-]TZH:TZM”)或时区区域名称。

用于转换到 PostgreSQL 的Oracle 函数 LNNVL 模拟

Oracle/PLSQL LNNVL 函数用在 SQL 语句的 WHERE 子句中,以便在其中一个操作数可能包含 NULL 值时评估条件。

用于转换到 PostgreSQL的 Oracle 函数TO_SINGLE_BYTE 模拟

Oracle/PLSQL TO_SINGLE_BYTE 函数通过将所有多字节字符转换为单字节字符来返回字符值。要使用此函数,您的数据库字符集应同时包含单字节和多字节字符。

用于转换到 PostgreSQL的 Oracle 函数TO_MULTI_BYTE 模拟

Oracle/PLSQL TO_MULTI_BYTE 函数通过将所有单字节字符转换到多字节字符来返回字符值。要使用此函数,您的数据库字符集应同时包含单字节和多字节字符

用于转换到 PostgreSQL 的Oracle 函数 ROUND(date [;fmt ]) 模拟

Oracle/PLSQL ROUND 函数返回四舍五入到特定度量单位的日期。

用于转换到 PostgreSQL 的Oracle 函数 MEDIAN 模拟

Oracle/PLSQL MEDIAN 函数返回表达式的中值。

用于转换到 PostgreSQL 的Oracle 函数 LISTAGG 模拟

Oracle/PLSQL LISTAGG 函数根据 order_by_clause 为每个 GROUP 联接measure_column 的值。

用于转换到 PostgreSQL 的Oracle 函数 NANVL 模拟

借助 Oracle/PLSQL NANVL 函数,当遇到 NaN(不是数字)值时,您可以将值替换为浮点数(如 BINARY_FLOAT 或 BINARY_DOUBLE)。这最常用于将 NaN 值转换到 NULL 或 0。

用于转换到 PostgreSQL 的Oracle 函数 INSTRB 模拟

Oracle/PLSQL INSTRB 函数返回子字符串在字符串中的位置(使用字节而不是字符作为单位)。

用于转换到 PostgreSQL 的Oracle 函数 SUBSTRB 模拟

Oracle/PLSQL SUBSTRB 函数从字符串中的指定位置开始返回此字符串的一部分。函数 SUBSTRB 计算要返回的长度(以字节为单位)。

用于转换到 PostgreSQL 的Oracle 函数 LENGTHB 模拟

Oracle/PLSQL LENGTHB 函数返回指定字符串的长度(使用字节而不是字符作为单位)。

MSSQL:将脚本转换到PostgreSQL

将 T-SQL 脚本、DML 和 DDL 转换到等效的代码或组件。

MSSQL:用于转换到 PostgreSQL 的OBJECT_NAME(@@PROCID)模拟

MS SQL Server OBJECT_NAME(@@PROCID) 函数返回当前 T-SQL 模块的对象标识符 (ID)。

MSSQL:用于转换到 PostgreSQL 的OBJECT_SCHEMA_NAME(@@PROCID) 模拟

Microsoft SQL Server OBJECT_SCHEMA_NAME(@@PROCID) 函数返回架构作用域内的对象的数据库架构名称。

版本 1.0201

Page 208: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 622

新功能或增强功能 描述

MSSQL:用于转换到MySQL、Aurora MySQL 或MariaDB 的 Sysobject 视图模拟

Ext.Pack 可以在从 MS SQL Server 转换到 MySQL、Aurora MySQL 或MariaDB 的过程中模拟 sysobject 视图。

修改了 PostgreSQL 的 DDL复制模块的 SCT“比较模式”

当您将两个 PostgreSQL 架构与 SCT 比较时,您不再需要部署服务架构。

改进了 Redshift 的“小型表”规则 (DISTSTYLE=ALL)

小型表规则考虑表中的行数而不是其大小。

改进了 ZSTD 压缩控制 根据设置不同,SCT 将在 SortKey(DistKey - 可选)未包含的所有列中设置默认 ZSTD 压缩。

已解决的问题:

• 修复了从 Netezza 迁移到 Redshift 时数据提取器中双 UTF-8 编码的问题。• 修复了 Cassandra 配置文件中不安全的 YAML 反序列化的问题。• 从 Microsoft SQL Server 转换到 PostgreSQL 的改进措施。• 修复了当版本为 2.1.20 时与 Cassandra 集群的连接发生故障的问题。SCT 现在支持从 Cassandra 2.1.20

进行迁移。

AWS Schema Conversion Tool 内部版本 622 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.622 的功能和错误修复。

新功能或增强功能 描述

适用于 AWS SCT 的 AWSDMS 代理

如果您使用本地 AWS DMS 代理将数据迁移到 AWS Snowball Edge 设备或 Amazon S3,请注意以下几点:

• 如果您有使用本地 DMS 代理版本 2.4.1 运行的现有任务,则应将这些任务迁移到 DMS 代理的最新版本。

• 在升级 DMS 代理之前,请不要升级 AWS Schema Conversion Tool。• 以下组件必须使用相同的复制引擎版本号:

• 本地 DMS 代理。• 远程任务的 DMS 实例。

Microsoft SQL Server 到PostgreSQL:脚本转换

当您使用 SQL Server 作为源时,源窗格中将出现一个新项:“SQL 脚本”。如果您从 AWS SCT 菜单中选择“Actions | Load Scripts (操作 | 加载脚本)”,则可选择要转换的一个或多个 .sql 文件。在转换期间,AWSSCT 将重写用于 PostgreSQL 的脚本。结果将显示在目标窗格中:“SQL脚本”。

AWS SCT 评估报告强调了在转换脚本时遇到的任何问题。

数据提取器允许 NULL 值替换 COPY 命令可将 NULL 替换为其他值:

• COPY … FROM … NULL AS 'MyReplacementValue' …

版本 1.0202

Page 209: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 621

新功能或增强功能 描述• CREATE EXTERNAL TABLE … USING (REMOTESOURCE …NULLVALUE 'MyReplacementValue' …)

支持 Redshift 中的 ZSTD 压缩

能够为表列选择 ZSTD 压缩。用于选择转换选项的新项目设置:

• 请不要使用 ZSTD 压缩。• 对所有列使用 ZSTD 压缩。• 对除 Distkey 和 Sortkey 之外的所有列使用 ZSTD 压缩。

Oracle 数据仓库:在脚本生成期间支持多个文件

用于保存 SQL 脚本的新项目设置:

• 单个文件 - 所有 SQL 都将生成到单个文件中。• 多个文件 - 每个文件包含多个 SQL 语句,其中包括 ID 和阶段名称。脚

本将按 ID 顺序一次运行一个。

Workload QualificationFramework

Workload Qualification Framework (WQF) 是 AWS Database MigrationService (AWS DMS) 的一部分。它帮助您分析和规划到 AWS 数据库服务的迁移。有关更多信息,请参阅使用 Workload Qualification Framework创建迁移报告 (p. 76)。

已解决的问题

• Microsoft SQL Server:无法为指定实例创建评估报告。• Oracle 到 PostgreSQL:错误消息错误地指出不支持具体化视图。• Microsoft SQL Server 到 PostgreSQL:Dynamic SQL 转换错误。• 评估报告:无法保存包含多字节字符的 PDF 文件。• Microsoft SQL Server 到 PostgreSQL:转换失败,出现 NullPointerException。• OLAP 数据提取器:虚拟分区的错误修复。(有关更多信息,请参阅 https://aws.amazon.com/blogs/

database/use-virtual-partitioning-in-the-aws-schema-conversion-tool。)• 在 AWS DMS 中使用 AWS SCT 创建任务:错误修复。如果您需要运行 AWS DMS 任务,我们建议升级

到 AWS SCT 内部版本 622。

AWS Schema Conversion Tool 内部版本 621 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.621 的功能和错误修复。

新功能或增强功能 描述

Microsoft SQL Server 到MySQL:增强功能

AWS SCT 扩展包支持以下日期和时间函数:DATETIMEFROMPARTS、DATETIME2FROMPARTS 和TIMEFROMPARTS。

CHECKSUM 函数现在也受支持。

Microsoft SQL Server 到PostgreSQL:增强功能

AWS SCT 扩展包支持 OBJECT_ID 函数。

在 SQL Server 中,您可以在查询中指定 ELEMENTS XSINIL 以生成XML 元素,即使对于结果集中的 NULL 值也是如此。从 SQL Server 转换

版本 1.0203

Page 210: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 620

新功能或增强功能 描述为 PostgreSQL 时,AWS SCT 识别 XSINIL 指令,并根据 PostgreSQL语义对其进行转换。

AWS SCT 支持在保存的 SQL 脚本中使用 NEWID 函数。要启用此行为:

• 从 AWS SCT 菜单栏中,选择 Settings (设置) | Project settings (项目设置)。

• 选择 Save as SQL and Apply (另存为 SQL 并应用)。• 对于 Source database uses "newid()" function (源数据库使

用“newid()”函数),选择 Yes (是)。• 选择 OK。

保存 SQL 以创建源树 您可以保存 AWS SCT 为创建源树而生成的 SQL 语句。在此版本中,现在支持以下数据库引擎:MySQL、PostgreSQL 和 Azure。

支持 Amazon AuroraPostgreSQL 10 作为目标

兼容 PostgreSQL 的 Amazon Aurora 现在支持 PostgreSQL 主要版本10.4。AWS SCT 完全支持使用此新版本作为目标。

将 Netezza 用作源:增强功能 AWS SCT 识别 Netezza 中的 EXTERNAL 表。这允许 AWS SCT 访问外部数据,就好像这些数据本机存储在 Netezza 中一样。

为了提高性能,AWS SCT 在从 Netezza 读取数据时使用并行压缩。

AWS SCT 提取代理使用 Redshift COPY 命令将数据从 Netezza 复制到Redshift。您可以使用以下参数控制 COPY 命令行为:

• extractor.redshift.copying.thread.pool.size — 代理可以同时运行的 COPY 命令的数量。默认值为 1,表示代理将按顺序运行所有 COPY 命令。

• extractor.redshift.copy.command.count.threshold — 可以同时运行的最大 COPY 命令数。默认值是 5。

当提取代理从单个大型表中读取数据时,它会将数据写入 AmazonRedshift 中的多个较小的表。在迁移结束时,这些临时表将合并到Redshift 中的单个大表中。要限制 Redshift 中允许的临时表数,可以修改extractor.redshift.staging.table.count.threshold 参数。默认值是 100。

(有关如何设置这些参数的更多信息,请参阅配置提取代理 (p. 131)。)

已解决的问题:

• Microsoft SQL Server 到 MySQL:AWS SCT 支持使用混合类型操作数的算术运算。• AWS SCT 虚拟分区完全支持包含 NULL 数据的列。有关更多信息,请参阅对 AWS Schema Conversion

Tool 使用虚拟分区 (p. 143)。

AWS Schema Conversion Tool 内部版本 620 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.620 的功能和错误修复。

版本 1.0204

Page 211: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 619

新功能或增强功能 描述

在 SQL 脚本中保存 CREATE语句

AWS SCT 允许您保存用于创建数据库对象的 SQL 语句(CREATETABLE、CREATE VIEW、CREATE FUNCTION 等)。您可以将所有语句保存在一个 SQL 脚本中,也可以将每个语句保存在单独的 SQL 脚本中,即,将每个语句保存在它自己的 SQL 脚本中。

要修改此行为,请从 AWS SCT 菜单栏中选择 Settings (设置) | Project(项目) 设置,然后选择 Save as SQL and Apply (另存为 SQL 并应用)。

Microsoft SQL Server到 MySQL:支持CHECKSUM、ISNUMERIC和 NEWSEQUENTIALID 函数

AWS SCT 扩展包支持这些函数。

Oracle 到 MySQL:MERGE支持

Oracle MERGE 语句用于插入、更新或删除行,具体取决于表中当前是否存在这些相同的行。(此操作有时称为“upsert”。) MySQL 不支持MERGE 语句;但是,AWS SCT 可以将 MERGE 语句迁移到与 MySQL兼容的 INSERT、UPDATE 和 DELETE 语句。

Microsoft SQL Server 到MySQL:TIMESTAMP 数据类型

AWS SCT 可以将 TIMESTAMP 数据类型从 SQL Server 迁移到MySQL。

Microsoft SQL Server 到PostgreSQL:OPENXML 函数

AWS SCT 可以将 OPENXML 函数从 SQL Server 迁移到 MySQL。

Oracle 到 MySQL:全局游标 Oracle 支持全局游标,即,在一个程序单元(存储过程、函数或触发器)中定义的游标可以在定义它的程序单元之外访问。MySQL 不支持全局游标;但是,AWS SCT 可通过修改 MySQL 目标上的程序单元代码来提供相同的功能。

Oracle 到 MySQL:空间数据 AWS SCT 可以将空间数据、对象和函数从 Oracle 迁移到 MySQL。

Oracle 到 MySQL:TIMESTAMP WITH TIMEZONE

AWS SCT 扩展包支持此数据类型。

AWS Snowball 中用户定义的LOB 大小

现在,您可以在使用 AWS SCT DMS 代理和 AWS Snowball 时定义大对象 (LOB) 的最大大小。

已解决的问题

• Oracle 到 PostgreSQL:修复了一些小的转换问题。• 分区不再删除空值。

AWS Schema Conversion Tool 内部版本 619 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.619 的功能和错误修复。

版本 1.0205

Page 212: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 618

新功能或增强功能 描述

支持从 Apache Cassandra 迁移到 Amazon DynamoDB

您可以将 AWS SCT 与 AWS 数据提取代理结合使用,以便从 ApacheCassandra 迁移到 Amazon DynamoDB。有关更多信息,请参阅将Apache Cassandra 中的数据迁移到 Amazon DynamoDB (p. 147)。

支持 Vertica 9 作为迁移源 现在,您可以使用 Vertica 版本 9 作为迁移源。有关更多信息,请参阅 将Vertica 用作 AWS Schema Conversion Tool 的源 (p. 67)。

从 Microsoft SQL Server迁移到 MySQL:存储过程RETURN 值支持

MySQL 不支持存储过程中的 RETURN 关键字;但是,支持 OUT 参数。

支持 Azure SQL 数据库作为源

现在,您可以从 Azure SQL 数据库迁移到 MySQL、PostgreSQL 或Amazon Aurora(与 MySQL 或 PostgreSQL 兼容)。

已解决的问题

• 从 Microsoft SQL Server 迁移至 PostgreSQL:AWS SCT 支持算术运算与混合类型的操作数。• 迁移到 Amazon RDS for Oracle 时,支持 Oracle Advanced Queuing (AQ)。

AWS Schema Conversion Tool 内部版本 618 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.618 的功能和错误修复。

新功能或增强功能 描述

字符串文本表示的 DynamicSQL

您可以在 Transact-SQL 批处理或下列模块之一中执行命令字符串或字符串:系统存储过程、用户定义的存储过程、CLR 存储过程、标量值用户定义的函数或扩展存储过程。EXECUTE 语句可用于将直通命令发送到链接的服务器。此外,可以显式设置用于执行字符串或命令的上下文。可以使用 WITH RESULT SETS 选项定义结果集的元数据。

MS SQL Server 到PostgreSQL:空间数据

AWS SCT 支持将空间数据从 MS SQL Server 转换到 PostgreSQL。

MS SQL Server 到 MySQL:空间数据

AWS SCT 支持将空间数据从 MS SQL Server 转换到 MySQL。

MS SQL Server到 PostgreSQL:@@ROWCOUNT

AWS SCT 支持将 Microsoft SQL Server @@ROWCOUNT 函数从 MSSQL Server 转换到 PostgreSQL。

Oracle 到 MySQL:转换函数TO_CHAR 的格式化字符串

Oracle TO_CHAR 函数接受一系列广泛的格式化字符。AWS SCT 支持将这些格式化字符串从 Oracle 转换到 MySQL。

Oracle 到 MySQL: WITH 子句支持 INSERT 和 UPDATE 语句

AWS SCT 支持 INSERT 和 UPDATE 语句(它们使用 WITH 子句)从Oracle 转换到 MySQL。

Oracle 到 MySQL:转换函数TO_NUMBER 的格式化字符串

Oracle TO_NUMBER 函数接受各种各样的格式化字符。AWS SCT 支持将这些格式化字符串从 Oracle 转换到 MySQL。

版本 1.0206

Page 213: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 617

新功能或增强功能 描述

MS SQL Server 到 MySQL:sp_sequence_get_range

Microsoft SQL Server sp_sequence_get_range 函数从一个序列对象返回一系列序列值。AWS SCT 支持此函数从 MS SQL Server 转换到MySQL。

MS SQL Server 到PostgreSQL:PARSE

AWS SCT 支持将 Microsoft SQL Server PARSE 函数从 MS SQL Server转换到 PostgreSQL。

MS SQL Server - 保存 SQL以创建源树

您可以保存 AWS SCT 为创建源树而生成的 SQL 语句。

已解决的问题

• SCT 数据提取器现在为 Redshift 发出 COPY 命令。• Redshift:count(distinct) 开窗函数需要重新写入到 Redshift DENSE_RANK。• 使用 Oracle FROM_TZ 和 EXTRACT 函数的查询转换现在已通过 extract 和 convert_timezone 正确转换为

基于 Redshift 的等效项。• 评估报告不一致地报告源数据库上的代码对象数目。• 对于更多案例,将 Oracle INSTR 函数重写到 Redshift 内置函数。• 已添加 PostgreSQL 9.x - PostgreSQL 10 架构比较支持。

AWS Schema Conversion Tool 内部版本 617 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.617 的功能和错误修复。

新功能或增强功能 描述

Oracle 到 Amazon RDS forOracle - Oracle 服务器级别对象

AWS SCT 增加了对用户配置文件、用户角色、事件计划等内容的支持。有关更多信息,请参阅 将 Oracle 转换为 Amazon RDS forOracle (p. 37)。

SQL Server 到 Amazon RDSfor SQL Server - 评估报告包含额外指标

AWS SCT 评估报告包含有关 Amazon RDS 数据库实例以及源数据库正在使用的 SQL Server 服务的信息。有关更多信息,请参阅 将 SQLServer 转换为 Amazon RDS for SQL Server (p. 47)。

Oracle 到 Amazon RDS forOracle - 评估报告包含额外指标

AWS SCT 评估报告包含有关 Amazon RDS 数据库实例以及源数据库正在使用的 Oracle 服务的信息。有关更多信息,请参阅 将 Oracle 转换为Amazon RDS for Oracle (p. 37)。

Oracle 到 PostgreSQL 10 - 不带时区列的时间戳

AWS SCT 支持不带时区列的时间戳。

Oracle 到 PostgreSQL 10 - 行ID 列

您可以将 ROWID 伪列转换为数据列。有关更多信息,请参阅 将 OracleROWID 转换为 PostgreSQL (p. 31)。

SQL Server 到 PostgreSQL -合并语句模拟

当迁移到 PostgreSQL 时,AWS SCT 将转换 MERGE 语句。有关更多信息,请参阅 将 Microsoft SQL Server 用作 AWS Schema ConversionTool 的源 (p. 39)。

版本 1.0207

Page 214: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 616

新功能或增强功能 描述

Oracle 到 MySQL - SELECT和 WITH 子句

当迁移到 MySQL 时,AWS SCT 将转换 WITH 子句。有关更多信息,请参阅 将 Oracle 转换为 Amazon RDS for MySQL 或 Amazon Aurora(MySQL) (p. 33)。

SQL Server 到 MySQL - 扩展包

AWS SCT 扩展包将模拟多个功能,包括ISDATE、FORMAT、PATINDEX 和 CONVERT。

SQL Server 到 PostgreSQL -用户定义的表类型

您可以使用用户定义的表类型指定表结构。有关更多信息,请参阅 将Microsoft SQL Server 用作 AWS Schema Conversion Tool 的源 (p. 39)。

Oracle - 保存 SQL 以创建源树

您可以保存 AWS SCT 为创建源树而生成的 SQL 语句。

已解决的问题

• 改进了服务器级别对象的评估报告。• 修复了以 END 块结尾的对象的错误处理。• 在 PDF 文件中增加了评估报告生成日期。• 在“Save as SQL (另存为 SQL)”选项上为多个文件增加了脚本生成的逻辑。

AWS Schema Conversion Tool 内部版本 616 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.616 的功能和错误修复。

新功能或增强功能 描述

SQL Server 到 PostgreSQL –SUSER_SNAME 支持

AWS SCT 添加了对于转换 SUSER_SNAME 的支持。有关更多信息,请参阅 将 SQL Server 转换为 PostgreSQL (p. 44)。

SQL Server 到 PostgreSQL –表值函数支持

AWS SCT 添加了对于转换表值函数的支持。有关更多信息,请参阅 将SQL Server 转换为 PostgreSQL (p. 44)。

Oracle 到 Amazon RDS forOracle - Oracle 作业

AWS SCT 添加了对于 Amazon RDS for Oracle 中许多类型的 Oracle 作业的支持。

Oracle 到 Amazon RDS forOracle - Oracle RAC

Amazon RDS for Oracle 不支持 Oracle RAC。考虑在 Amazon RDS 实例中使用多可用区部署以获得高可用性。

Oracle 到 Amazon RDS forOracle - Oracle Data Guard和 Active Data Guard

Amazon RDS for Oracle 不支持 Oracle Data Guard 和 Active DataGuard。考虑在 Amazon RDS 实例中使用多可用区部署以获得高可用性。

Oracle 到 Amazon RDS forOracle - 持续复制

Amazon RDS for Oracle 不支持持续复制。如果您需要向 Amazon RDS中的目标进行持续复制,可以使用 AWS Database Migration Service。

Oracle 到 Amazon RDS forOracle - 审核

Amazon RDS for Oracle 不支持 Oracle Unified Auditing。Amazon RDSfor Oracle 支持传统审核和精细审核(DBMS_FGA 程序包)。

Oracle 到 Amazon RDS forOracle - 计划对象

AWS SCT 支持在迁移至 Amazon RDS for Oracle 时转换 OracleDBMS_SCHEDULER 对象。

版本 1.0208

Page 215: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 615

新功能或增强功能 描述

SQL Server 到 MySQL – 表值函数

MySQL 不支持多语句表值函数。AWS SCT 在转换期间通过创建临时表来模拟表值函数。有关更多信息,请参阅 将 Microsoft SQL Server 用作AWS Schema Conversion Tool 的源 (p. 39)。

AWS SCT 评估报告更新 AWS SCT 评估报告更新包括以下内容:

• 显示 Amazon RDS 数据库实例上的数据库大小• 显示 Amazon RDS 数据库实例上使用的存储量• 显示 Amazon RDS 数据库实例上的数据库数量• 如果迁移中包含的数据库是否已用于复制

SQL Server 到 Amazon RDSfor SQL Server - 服务代理和终端节点

Amazon RDS 当前不支持服务代理或其他使用 CREATE ENDPOINT 命令的 T-SQL 终端节点。有关更多信息,请参阅 将 Microsoft SQL Server 用作 AWS Schema Conversion Tool 的源 (p. 39)。

Db2 LUW 到 PostgreSQL 10– 分区表

AWS SCT 可将 Db2 LUW 表转换为 PostgreSQL 10 中的分区表。

已解决的问题

• Db2 LUW 到 Amazon RDS for MySQL 或 Amazon Aurora (MySQL)。添加了为若干个已转换的相关对象显示目标 SQL 的功能。

• Db2 LUW 到 Amazon RDS for PostgreSQL 或 Amazon Aurora (PostgreSQL)。添加了为若干个已转换的相关对象显示目标 SQL 的功能。

• MySQL 到 Amazon RDS for PostgreSQL 或 Amazon Aurora (PostgreSQL)。添加了为若干个已转换的相关对象显示目标 SQL 的功能。

• OLAP。添加了为若干个已转换的相关对象显示目标 SQL 的功能。• MySQL 到 MySQL 转换中出现的 AWS SCT 问题已解决。

AWS Schema Conversion Tool 内部版本 615 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.615 的功能和错误修复。

新功能或增强功能 描述

SQL Server 到 MySQL - 对MERGE 语句的支持

MySQL 不支持 MERGE 语句,但 AWS SCT 可通过使用 INSERTON DUPLICATE KEY 子句以及 UPDATE FROM 和 DELETE FROM语句来模拟此语句。有关更多信息,请参阅 将 SQL Server 转换为MySQL (p. 43)。

SQL Server 到 PostgreSQL –对创建唯一索引名称的支持

AWS SCT 在索引名称不唯一时提供生成唯一索引名称的选项。为此,请选择项目属性中的 Generate unique index names (生成唯一索引名称)。有关更多信息,请参阅 将 SQL Server 转换为 PostgreSQL (p. 44)。

Oracle 到 PostgreSQL - 阻止重叠的数据库序列值

对于 Oracle 到 PostgreSQL 迁移项目,请选择项目设置的“转换设置”选项卡中的 Populate converted sequences with the last values generated onthe source side (使用源端生成的最新值填充转换序列) 选项。有关更多信息,请参阅 将 Oracle 转换为 Amazon RDS for PostgreSQL 或 AmazonAurora (PostgreSQL) (p. 31)。

版本 1.0209

Page 216: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 614

新功能或增强功能 描述

Oracle 到 PostgreSQL - 对PostgreSQL 10 分区的支持

将架构从 Oracle 数据库转换为 PostgreSQL 数据库时,AWS SCT 可模拟分区和子分区。有关更多信息,请参阅 将 Oracle 转换为 Amazon RDSfor PostgreSQL 或 Amazon Aurora (PostgreSQL) (p. 31)。

SQL Server 到 PostgreSQL -对 PostgreSQL 10 分区的支持

将架构从 SQL Server 数据库转换为 PostgreSQL 数据库时,AWS SCT可模拟分区和子分区。有关更多信息,请参阅 将 SQL Server 转换为PostgreSQL (p. 44)。

SQL Server 到 MySQL - 对GOTO 语句的支持

MySQL 不使用 GOTO 语句。当 AWS SCT 转换包含 GOTO 语句的代码时,它将转换此语句以使用 BEGIN…END 或 LOOP…END LOOP 语句。

SQL Server 到 PostgreSQL -对 GOTO 语句的支持

PostgreSQL 不使用 GOTO 语句。当 AWS SCT 转换包含 GOTO 语句的代码时,它将转换此语句以使用 BEGIN…END 或 LOOP…END LOOP 语句。

Oracle 到 PostgreSQL - 对GOTO 语句的支持

PostgreSQL 不使用 GOTO 语句。当 AWS SCT 转换包含 GOTO 语句的代码时,它将转换此语句以使用 BEGIN…END 或 LOOP…END LOOP 语句。

DB2 LUW 到 PostgreSQL –对来自 DB2 到 PostgreSQL的触发器的支持

AWS SCT 可以转换与 DB2 LUW 一起使用的不同 TRIGGER 语句。有关更多信息,请参阅 将 DB2 LUW 转换为 Amazon RDS for PostgreSQL 或Amazon Aurora (PostgreSQL) (p. 55)。

SQL Server 到 Amazon RDSfor SQL Server - 对数据库级别触发器的支持

当 Amazon RDS for SQL Server 为目标时,AWS SCT 可将数据库触发器添加到对象树中。

SQL Server 到 Amazon RDSfor SQL Server - 对服务器级别触发器、链接服务器和 SQLServer 代理的支持

AWS SCT 现在支持服务器级别触发器、链接服务器和 SQL Server 代理。有关更多信息,请参阅 将 Microsoft SQL Server 用作 AWS SchemaConversion Tool 的源 (p. 39)。

Oracle 到 Amazon RDS forOracle - 对目录对象、表空间和用户角色与权限的支持

AWS SCT 可以将目录对象添加到对象树中。有关更多信息,请参阅 将Microsoft SQL Server 用作 AWS Schema Conversion Tool 的源 (p. 39)。

Db2 支持版本 10.1 AWS SCT 现在支持 IBM Db2 LUW 版本 10.1。

添加了对隔离政府区域的支持 AWS SCT 现在支持隔离政府区域。

已解决的问题

• AWS Profile.与联合凭证一起使用。• DB2 到 PostgreSQL。DB2 触发器的转换。• OLAP 迁移。当前项目设置 – 偏斜阈值。更改了支持百分比。• 评估报告。标记没有主键的 LOB 表。• 修复了一些 UI 错误。

AWS Schema Conversion Tool 内部版本 614 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.614 的功能和错误修复。

版本 1.0210

Page 217: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 614

新功能或增强功能 描述

Oracle 到 PostgreSQL:SQL*Plus 转换的评估报告

AWS SCT 可以将 SQL* Plus 文件转换到 PSQL。评估报告显示 AWSSCT 如何将 SQL* Plus 文件转换到 PSQL。有关更多信息,请参阅 将Oracle 用作 AWS Schema Conversion Tool 的源 (p. 28)。

Aurora MySQL 兼容的 5.7 版本支持

添加了对转换 Aurora MySQL 5.7 架构的支持。

Db2 LUW 9.1 添加了对 Db2 LUW 版本 9.1 的支持。

OLTP 数据迁移。数据压缩. 在使用复制代理设置任务时,迁移过程中的数据压缩现在是可选的。

Oracle 到 Oracle RDS:数据库链接支持

Oracle 到 Oracle RDS 迁移现在支持数据库链接。有关更多信息,请参阅 将 Oracle 用作 AWS Schema Conversion Tool 的源 (p. 28)。

Oracle 到 PostgreSQL:SELECT INTO BULKCOLLECT (VARRAY) 转换

使用 BULK COLLECT (VARRAY) 的 SQL 语句现在可以在 Oracle 和PostgreSQL 之间进行迁移时进行转换。

Oracle 注释转换 添加了对将 Oracle 注释转换为目标数据库引擎使用的格式的支持。有关更多信息,请参阅 将 Oracle 用作 AWS Schema Conversion Tool 的源 (p. 28)。

Oracle 系统对象的模拟 添加了对将 Oracle 系统对象转换到 PostgreSQL 的支持。有关更多信息,请参阅 将 Oracle 用作 AWS Schema Conversion Tool 的源 (p. 28)。

Oracle 到 PostgreSQL:ROWNUM 转换到 LIMIT

添加了对转换 ROWNUM 的支持。

Microsoft SQL Server到 Microsoft SQL ServerRDS:BULK INSERT 和OPENROWSET()

添加了对转换 BULK INSERT 和 OPENROWSET() 的支持

Microsoft SQL Server 到Microsoft SQL Server RDS:存储对象内的链接

AWS SCT 现在在迁移到 Amazon RDS 期间支持存储对象内的链接。有关更多信息,请参阅 将 Microsoft SQL Server 用作 AWS SchemaConversion Tool 的源 (p. 39)。

Microsoft SQL Server 到PostgreSQL:PATINDEX

AWS SCT 现在在迁移到 PostgreSQL 期间支持转换 PATINDEX。有关更多信息,请参阅 将 Microsoft SQL Server 用作 AWS SchemaConversion Tool 的源 (p. 39)。

Microsoft SQL Server 到PostgreSQL:系统对象访问

SQL Server 系统对象现在转换为 PostgreSQL 中的对象。有关更多信息,请参阅 将 Microsoft SQL Server 用作 AWS Schema ConversionTool 的源 (p. 39)。

Microsoft SQL Server 到PostgreSQL:内联函数创建

添加了对内联函数的支持。有关更多信息,请参阅 将 Microsoft SQLServer 用作 AWS Schema Conversion Tool 的源 (p. 39)。

已解决的问题

• 键入映射。错误修复和改进。• OLAP 转换。优化策略.修复了重置策略的功能。• Oracle 到 PostgreSQL。动态 SQL 转换错误修复和改进• SQL* Plus 脚本转换。错误修复和改进

版本 1.0211

Page 218: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 613

• Oracle 到 PostgreSQL 转换。绑定变量识别修复。• 添加了通过单击服务器级别上的“更新服务器信息”来更新服务器信息的功能。• Netezza.修复了小写对象的架构转换。• 处理 AWS SCT 导航树节点名称中从文件名派生的某些特定字符• 修复了一些 UI 错误。

AWS Schema Conversion Tool 内部版本 613 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.613 的功能和错误修复。

新功能或增强功能 描述

DB2 LUW 支持 增加了将 DB2 数据库作为源迁移的支持。有关更多信息,请参阅 使用AWS Schema Conversion Tool 转换源数据库架构 (p. 85)。

Oracle 到 PostgreSQL 转换。增加了 SQL*Plus 文件转换

现在,您可以转换 SQL*Plus 文件。

为 OLTP 数据迁移添加了Snowball 选项卡

为 OLTP 数据迁移添加了一个新的 Snowball 选项卡,它显示特定项目的 Snowball 设备的当前状态。有关更多信息,请参阅 使用数据提取代理 (p. 126)。

Oracle 到 PostgreSQL 转换。将 Oracle Spatial 代码转换为PostGIS开放

Oracle 到 PostgreSQL 转换。Oracle Spatial 代码转换为 PostGIS。

架构比较增加了对 Oracle 10的支持

您现在可以对 Oracle 10 运行架构比较。有关更多信息,请参阅 比较数据库架构 (p. 96)。

Oracle 到 PostgreSQL 转换。PostgreSQL 中处理的Oracle 数据库的隐式类型转换

在从 Oracle 转换为 PostgreSQL 时,SCT 会添加数据类型转换。

SQL Server,Windows 身份验证

SQL Server.增加了 Windows 身份验证连接方法支持。

SQL Server 到 PostgreSQL转换

增加了 CITEXT 类型支持。现在,您可以将它与数据类型 mappint 一起选择。

Oracle 到 PostgreSQL 转换 针对 EXECUTE IMMEDIATE 和 DBMS_SQL 的动态 SQL 转换以及游标的其他改进。

Oracle 到 PostgreSQL 转换 增加了对 Oracle 到 PostgreSQL 的 SELECT INTO BULK COLLECT 转换的支持。

Oracle 到 PostgreSQL 转换 现在,可以将关联数组从 Oracle 转换到 PostgreSQL。

类型映射 - 自定义类型映射改进

增加了根据长度和精度选择源数据类型的功能。

AWS 配置文件设置 增加了在 AWS 配置文件设置中选择默认配置文件的功能。

Greenplum 到 Redshift 转换 增加了内置 SQL 函数到 Redshift 标量 SQL UDF 转换。

版本 1.0212

Page 219: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 612

已解决的问题

报告的日期 描述

发布版本 612 • Oracle 到 Redshift 转换。CAST 到 CHAR 适用,CAST 到CHARACTER 不适用。

• 未在源 Oracle 数据库的 DDL 中创建表的注释。• 未在评估报告中标记类型不匹配情况。• Oracle 到 PostgreSQL 转换。错误地将全角大写字母表名称转换为全角

小写字母表名称。• 无法通过单击“OK”(确定) 按钮来关闭“Global Settings”(全局设置) 窗

口。• Oracle 到 Redshift。to_date 和减法重写提供了不同的结果。• 修复了一些 UI 错误。

AWS Schema Conversion Tool 内部版本 612 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.612 的功能和错误修复。

新功能或增强功能 描述

自定义数据类型映射 现在,您可以设置映射规则来更改存储对象的数据类型。您可以在“Mapping Rules”(映射规则) 选项卡中定义应更改的数据类型。

增加了“What's New”(新增功能) 选项

“Help”(帮助) 菜单下的“What's New”(新增功能) 选项显示此发布版本中添加的所有重要功能。

架构比较增加了对 Oracle 10的支持

您现在可以对 Oracle 10 运行架构比较。

Oracle 到 PostgreSQL 转换。 现在支持从 Oracle 迁移到 PostgreSQL

• 全局变量• 关联数组• TO_NUMBER 函数的格式字符串• 使用 DBMS_SQL 程序包转换 Dynamic SQL• 使用全局变量转换多层嵌套的子程序

增加了对加载某些PostgreSQL 函数属性和域约束的支持

增加了对加载 PostgreSQL IMMUTABLE、STABLE 和 VOLATILE 函数属性的支持。

增加了对加载 PostgreSQL 域约束的支持。

已解决的问题

报告的日期 描述

发布版本 611 • 将 APPLY 识别为 Oracle 的关键字。• 修复了为 Oracle 到 Oracle 项目运行架构比较时的错误。

版本 1.0213

Page 220: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 611

报告的日期 描述• 根据对 Microsoft SQL Server 到 Microsoft SQL Server 迁移的反馈和错

误修复进行的常规改进。• 在为 Oracle 到 PostgreSQL 迁移使用“另存为 SQL”时缺少 DROP

FOREIGN KEY CONSTRAINTS• Oracle 到 Redshift 迁移的 TO_DATE 和 TRUNC 函数转换错误修复。• 根据对 PostgreSQL 到 PostgreSQL 迁移的反馈和错误修复进行的常规

改进。• 根据对 MySQL 到 MySQL 迁移的反馈和错误修复进行的常规改进。• 根据对 Oracle 到 Oracle 迁移的反馈和错误修复进行的常规改进。• 修复了一些 UI 错误。• 为 Oracle 到 Redshift 迁移重写了 Redshift 间隔文本的

NUMTOINTERVL()。• 性能优化。

AWS Schema Conversion Tool 内部版本 611 的发布说明

下表显示了 AWS Schema Conversion Tool 版本 1.0.611 的功能和错误修复。

新功能或增强功能 描述

各个 MySQL 架构的比较 添加了比较各个 MySQL 数据库的功能。有关更多信息,请参阅数据库架构比较。

Oracle 到 PostgreSQL 动态语句转换

添加了第一个版本的 DBMS_SQL 程序包转换支持。有关更多信息,请参阅将 Dynamic SQL for Oracle 转换到 PostgreSQL 迁移。

Oracle 到 PostgreSQL GOTO语句转换

PostgreSQL 不支持 Oracle 等功能中的 GOTO 运算符,但可以使用BEGIN/END 或 LOOP/END 循环语句转换它。

从错误消息中打开日志文件 当用户遇到错误时,您可以单击它并由此转到相关日志文件,而不是必须在源系统中搜索它。

向评估报告的 PDF 导出添加了“Estimated Complexity”(估计的复杂性) 字段

“Estimated Complexity”字段在评估报告的 .pdf 版本中导出,但它没有包含在 .csv 版本中。有关更多信息,请参阅在 AWS Schema ConversionTool 中创建和使用评估报告。

OLAP 数据迁移。添加了完成Redshift 复制后不在 S3 上删除文件的选项

在迁移到 Amazon Redshift 之后,代理可以保留或删除已上传的文件。有关更多信息,请参阅使用 AWS Schema Conversion Tool 优化 AmazonRedshift。

OLAP 数据迁移。添加了对Greenplum、Vertica、Netezza和 Microsoft SQL Server 的LOB 迁移支持。

添加了迁移 LOB 列的功能。有关更多信息,请参阅将 LOB 迁移到Amazon Redshift。

添加了查看 Oracle 到 MySQL或 Aurora for MySQL 和Microsoft SQL 到 MySQL 或Aurora for MySQL 等转换的相关对象的功能。

在 AWS SCT 将源对象转换为多个目标对象后,您现在可以查看已创建的相关对象的完整列表。有关更多信息,请参阅查找相关的已转换对象。

版本 1.0214

Page 221: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南发布说明 – 611

新功能或增强功能 描述

OLAP 数据提取器。添加了在重新安装之后恢复代理的功能

在安装或配置期间,您可以在端口或位置发生更改的情况下恢复代理。有关更多信息,请参阅隐藏和恢复 AWS SCT 代理的信息。

在树视图中隐藏架构的功能 您可以决定您想要在树视图中查看您的架构中的哪些对象和信息。有关更多信息,请参阅在 AWS SCT 树视图中隐藏架构。

支持虚拟分区 您现在可以通过创建子任务 (使用筛选规则创建表数据的虚拟分区) 来管理大型的未分区表。有关更多信息,请参阅 对 AWS Schema ConversionTool 使用虚拟分区 (p. 143)。

已解决的问题

报告的日期 描述

发布版本 608 • OLTP 数据迁移。添加了刷新代理/任务日志的能力。• 各个 Oracle 架构的比较。修复了公有同义词的比较。• 修复了在树视图中隐藏系统架构的能力。• 添加了树筛选器的工具提示。允许用户上传具有需要筛选的对象的 .csv

文件。• 修复了 Oracle NUMTOINTERVAL 到 Redshift 间隔文本的转换 (如果适

用)。• Oracle 到 Redshift 转换。使用另一个参数常量 (substr 的开头) 将

Redshift SUBSTR 的迁移修复成了一个简单的表达式,而不是 CASE语句。

• OLAP 数据迁移。添加了对虚拟分区的描述。

版本 1.0215

Page 222: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南

文档历史记录下表说明自 2018 年 1 月以来对《AWS Schema Conversion Tool 用户指南》的重要更改。

您可以订阅 RSS 源,以便获取此文档更新的通知。

update-history-change update-history-description update-history-date

AWS SCT 内部版本 #1.0.635 Amazon Redshift JDBC 驱动程序更新为 1.2.36.1060。添加了Aurora PostreSQL 11 作为目标。SCT UI 支持 AWS Glue 作业构造常见任务。

February 10, 2020

AWS SCT 内部版本 #1.0.632 SCT UI – 添加了新的选项卡,以显示应用脚本时发生的错误。从 SAP ASE 转换时,现在可以将源树另存为 SQL。改进了到 PostgreSQL 或 AuroraPostgreSQL 或 Redshift 的转换。

November 19, 2019

AWS SCT 内部版本 #1.0.631 和#1.0.630(组合)

在 Oracle 中更好地支持ROWID,在 Microsoft SQLServer 和 SAP ASE 中更好地支持系统对象。更好地处理缺少的SQL Server 模式指定符。更好地支持从 Greenplum 到 Redshift 的转换。改进了对移动到 AmazonRedshift、MariaDB、MySQL 和PostgreSQL 时存储代码转换的支持。

September 30, 2019

AWS SCT 内部版本 #1.0.611 支持存储过程从 Netezza 进行转换。改进了到 AmazonRedshift、DynamoDB、MySQL和 PostgreSQL 的转换。增加了对SAP ASE 15.0 作为源的支持。

August 20, 2019

AWS SCT 内部版本 #1.0.628 支持对从 DB2、SQL Server 和Oracle 的转换的服务模拟。对转换到 Amazon Redshift 的增强功能,包括对游标和存储过程的更多支持。

June 22, 2019

AWS SCT 版本 #1.0.627 支持从 SQL Server 转换到Amazon Redshift 中的存储过程。转换为 PostgreSQL 11 和 MySQL8.0 的增强功能。

May 31, 2019

AWS SCT 版本 #1.0.626 现在支持 PostgreSQL 11 和MySQL 8.0 作为目标。现在支持SAP ASE 15.7 作为源。

April 26, 2019

AWS SCT 版本 #1.0.625 更新包括将 Teradata BTEQ 转换到 AWS Glue 的功能、对转换到带 Oracle 兼容性模式支持的

March 25, 2019

版本 1.0216

Page 223: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南

MariaDB 10.3 的支持、对 SAPASE 15.7 的支持以及模拟缺失功能的服务替换项。

AWS SCT 版本 #1.0.624 更新包括将 Oracle ETL 转换到 AWS Glue 的功能以及对从Microsoft SQL Server、Oracle和 IBM Db2 LUW 到 AmazonRDS for MariaDB 的转换的支持。我们还增加了对从 SAP ASE 到RDS for MySQL 和具有 MySQL兼容性的 Amazon Aurora 的转换的支持。此外,我们还增加了在 Oracle Orafce 转换到PostgreSQL 期间对 Orafce 扩展的支持。

February 22, 2019

AWS SCT 版本 #1.0.623 更新包括转换 SAP ASE 数据库的功能以及将 T-SQL 脚本、DML和 DDL 转换到等效代码或组件的功能。我们还添加了 Oracle 和Microsoft SQL Server 模拟,以改进转换。

January 25, 2019

AWS SCT 版本 #1.0.622 更新包括 Workload QualificationFramework,后者将分析整个迁移的工作负载,包括数据库和应用程序修改。

December 20, 2018

AWS SCT 版本 #1.0.621 更新包括支持 Aurora PostgreSQL10 作为目标,以及使用外部表选项从 Netezza 迁移的功能。

November 21, 2018

AWS SCT 版本 #1.0.620 更新包括保存 SQL 脚本的功能,以及在迁移到 MySQL 时支持Oracle 全局游标。

October 22, 2018

AWS SCT 版本 #1.0.619 更新包括支持从 ApacheCassandra 迁移到 DynamoDB,并支持 Vertica 9 作为源。

September 20, 2018

AWS SCT 版本 #1.0.618 更新包括扩展的评估报告,对转换 Oracle ROWID 的支持,以及对 SQL Server 用户定义的表的支持。

August 24, 2018

AWS SCT 版本 #1.0.617 更新包括扩展的评估报告,对转换 Oracle ROWID 的支持,以及对 SQL Server 用户定义的表的支持。

July 24, 2018

AWS SCT 版本 #1.0.616 更新包括在从 Oracle 转换至Amazon RDS for Oracle、转换Oracle 计划对象时对 RDS 的支持,以及对 Oracle 作业的支持。分区和 Db2 LUW 版本 10.1。

June 26, 2018

版本 1.0217

Page 224: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南早期更新

AWS SCT 版本 #1.0.615 更新包含对 SQL Server到 PostgreSQL GOTO 语句、PostgreSQL 10 分区以及Db2 LUW 版本 10.1 的支持。

May 24, 2018

AWS SCT 版本 #1.0.614 更新包括对 Oracle 到 Oracle数据库链接、SQL Server 到PostgreSQL 的内联函数以及模拟Oracle 系统对象的支持。

April 25, 2018

AWS SCT 版本 #1.0.613 更新包括对 Db2 LUW、SQL*Plus文件转换以及 SQL ServerWindows 身份验证的支持。

March 28, 2018

AWS SCT 版本 #1.0.612 更新包括对自定义数据类型映射、Oracle 10 的架构比较以及Oracle 到 PostgreSQL 的全局变量转换的支持。

February 22, 2018

AWS SCT 版本 #1.0.611 更新包括对 Oracle 到PostgreSQL 的动态语句、通过选择错误消息打开日志文件以及在树视图中隐藏架构这一功能的支持。

January 23, 2018

早期更新下表说明在 2018 年 1 月之前对《AWS Schema Conversion Tool 用户指南》的重要更改。

版本 更改 描述 更改日期

1.0.608 对 Amazon S3的 FIPS 终端节点支持

您现在可以请求 AWS SCT 通过使用符合联邦信息处理标准安全要求的 FIPS 终端节点连接到Amazon S3 和 Amazon Redshift。有关更多信息,请参阅存储 AWS 凭证 (p. 13)。

2017 年 11 月17 日

1.0.607 对 Amazon S3的 FIPS 终端节点支持

您现在可以请求 AWS SCT 通过使用符合联邦信息处理标准安全要求的 FIPS 终端节点连接到Amazon S3 和 Amazon Redshift。有关更多信息,请参阅存储 AWS 凭证 (p. 13)。

2017 年 10 月30 日

1.0.607 数据提取任务可以忽略 LOB

在创建数据提取任务时,您现在可以选择忽略大型对象 (LOB),以减少提取的数据量。有关更多信息,请参阅 创建、运行和监视 AWS SCT 数据提取任务 (p. 135)。

2017 年 10 月30 日

1.0.605 数据提取代理任务日志访问

您现在可以从 AWS Schema Conversion Tool 用户界面中的一个便捷链接访问数据提取代理任务日志。有关更多信息,请参阅创建、运行和监视AWS SCT 数据提取任务 (p. 135)。

2017 年 8 月 28日

1.0.604 转换器增强功能 AWS Schema Conversion Tool 引擎经过增强,可为异构迁移提供改进的转换。

2017 年 6 月 24日

1.0.603 数据提取代理支持筛选条件

您现在可以筛选提取代理从数据仓库中提取的数据。有关更多信息,请参阅在 AWS

2017 年 6 月 16日

版本 1.0218

Page 225: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南早期更新

版本 更改 描述 更改日期Schema Conversion Tool 中创建数据提取筛选条件 (p. 134)。

1.0.603 AWS SCT 支持其他数据仓库版本

您现在可以使用 AWS Schema Conversion Tool将 Teradata 13 和 Oracle Data Warehouse 10架构转换为等效的 Amazon Redshift 架构。有关更多信息,请参阅 使用 Amazon Redshift 将数据仓库架构转换为 AWS Schema ConversionTool (p. 99)。

2017 年 6 月 16日

1.0.602 数据提取代理支持其他数据仓库

您现在可以使用数据提取代理从 Microsoft SQLServer 数据仓库提取数据。有关更多信息,请参阅 使用数据提取代理 (p. 126)。

2017 年 5 月 11日

1.0.602 数据提取代理可以将数据复制到 AmazonRedshift

数据提取代理现在有三种上传模式。您现在可以指定是只提取数据,还是提取数据并只上传到 Amazon S3,还是提取、上传数据并直接复制到 Amazon Redshift。有关更多信息,请参阅创建、运行和监视 AWS SCT 数据提取任务 (p. 135)。

2017 年 5 月 11日

1.0.601 AWS SCT 支持其他数据仓库

您现在可以使用 AWS Schema Conversion Tool将 Vertica 和 Microsoft SQL Server 架构转换为等效的 Amazon Redshift 架构。有关更多信息,请参阅 使用 Amazon Redshift 将数据仓库架构转换为 AWS Schema Conversion Tool (p. 99)。

2017 年 4 月 18日

1.0.601 数据提取代理支持其他数据仓库

您现在可以使用数据提取代理从Greenplum、Netezza 和 Vertica 数据仓库提取数据。有关更多信息,请参阅 使用数据提取代理 (p. 126)。

2017 年 4 月 18日

1.0.601 数据提取代理支持其他操作系统

您现在可以在运行 macOS 和 MicrosoftWindows 操作系统的计算机上安装数据提取代理。有关更多信息,请参阅安装提取代理 (p. 129)。

2017 年 4 月 18日

1.0.601 数据提取代理自动上传到Amazon S3

数据提取代理现在自动将提取的数据上传到Amazon S3。有关更多信息,请参阅数据提取任务输出 (p. 142)。

2017 年 4 月 18日

1.0.600 数据提取代理 您现在可以安装数据提取代理,以便从数据仓库提取数据并将其准备用于 Amazon Redshift。您可以使用 AWS Schema Conversion Tool 注册代理并为其创建数据提取任务。有关更多信息,请参阅使用数据提取代理 (p. 126)。

2017 年 2 月 16日

1.0.600 客户反馈 您现在可以提供关于 AWS Schema ConversionTool 的反馈。您可以提交错误报告、提交功能请求,也可以提供常规信息。有关更多信息,请参阅提供客户反馈 (p. 2)。

2017 年 2 月 16日

版本 1.0219

Page 226: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南早期更新

版本 更改 描述 更改日期

1.0.502 与 AWS DMS 集成

您现在可以使用 AWS Schema Conversion Tool创建 AWS DMS 终端节点和任务。您可以从AWS SCT 中运行和监控任务。有关更多信息,请参阅 将 AWS Schema Conversion Tool 与AWS Database Migration Service 结合使用 (p. 125)。

2016 年 12 月20 日

1.0.502 作为目标数据库的兼容PostgreSQL 的Amazon Aurora

AWS Schema Conversion Tool 现在支持作为目标数据库的兼容 PostgreSQL 的 AmazonAurora。有关更多信息,请参阅 使用 AWSSchema Conversion Tool 转换源数据库架构 (p. 85)。

2016 年 12 月20 日

1.0.502 支持配置文件 您现在可以将不同的配置文件存储在 AWSSchema Conversion Tool 中并在它们之间轻松切换。有关更多信息,请参阅在 AWS SchemaConversion Tool 中使用 AWS 服务配置文件 (p. 12)。

2016 年 12 月20 日

1.0.501 支持 Greenplum数据库和Netezza

您现在可以使用 AWS Schema Conversion Tool将数据仓库架构从 Greenplum 数据库和 Netezza转换为 Amazon Redshift。有关更多信息,请参阅 使用 Amazon Redshift 将数据仓库架构转换为AWS Schema Conversion Tool (p. 99)。

2016 年 11 月17 日

1.0.501 Redshift 优化 您现在可以使用 AWS Schema Conversion Tool优化 Amazon Redshift 数据库。有关更多信息,请参阅 使用 Amazon Redshift 优化 AWSSchema Conversion Tool (p. 113)。

2016 年 11 月17 日

1.0.500 映射规则 使用 AWS Schema Conversion Tool 转换架构之前,您现在可以设置以下操作的规则:更改列数据类型、将对象从一个架构复制到另一架构,以及更改对象名称。有关更多信息,请参阅 在AWS Schema Conversion Tool 中创建映射规则 (p. 102)。

2016 年 10 月 4日

1.0.500 迁移到云 您现在可以使用 AWS Schema Conversion Tool将现有的本地数据库架构复制到运行相同引擎的Amazon RDS 数据库实例。您可以使用此功能来分析迁移到云和更改许可证类型的潜在成本节省。有关更多信息,请参阅 使用 AWS SchemaConversion Tool 创建评估报告 (p. 72)。

2016 年 10 月 4日

1.0.400 数据仓库架构转换

您现在可以使用 AWS Schema Conversion Tool将数据仓库架构从 Oracle 和 Teradata 转换为Amazon Redshift。有关更多信息,请参阅 使用Amazon Redshift 将数据仓库架构转换为 AWSSchema Conversion Tool (p. 99)。

2016 年 7 月 13日

1.0.400 应用程序 SQL转换

您现在可以使用 AWS Schema ConversionTool 通过 C++、C#、Java 或其他应用程序代码转换 SQL。有关更多信息,请参阅使用AWS Schema Conversion Tool 转换应用程序SQL (p. 168)。

2016 年 7 月 13日

版本 1.0220

Page 227: AWS Schema Conversion Tool - 用户指南 · AWS Schema Conversion Tool 用户指南 架构转换概述 源数据库 Amazon Redshift 上的目标数据库 Netezza (版本 7.0.3 及更高版本)

AWS Schema Conversion Tool 用户指南早期更新

版本 更改 描述 更改日期

1.0.400 新功能 AWS Schema Conversion Tool 现在包含一个扩展包和一个向导,可帮助您安装、创建和配置AWS Lambda 函数和 Python 库,以提供电子邮件、作业调度和其他功能。有关更多信息,请参阅 使用 AWS Lambda 扩展包中的 AWS SCT 函数 (p. 176) 和 使用 AWS SCT 扩展包的自定义Python 库 (p. 175)。

2016 年 7 月 13日

1.0.301 SSL 支持 使用 AWS Schema Conversion Tool 时,您现在可以使用安全套接字层 (SSL) 连接到您的源数据库。

2016 年 5 月 19日

1.0.203 新功能 添加了对作为源数据库的 MySQL 和PostgreSQL 的支持,以便进行转换。

2016 年 4 月 11日

1.0.202 维护版本 添加了支持,以便编辑为目标数据库引擎生成的转换后的 SQL。在源数据库和目标数据库实例树视图中添加了改进的选择功能。添加了支持,以便使用透明网络底层 (TNS) 名称连接到 Oracle源数据库。

2016 年 3 月 2日

1.0.200 维护版本 添加了对作为目标数据库引擎的 PostgreSQL 的支持。添加了一种功能,可将转换后的架构生成为脚本并可将脚本保存到文件中,然后再将该架构应用于目标数据库实例。

2016 年 1 月 14日

1.0.103 维护版本 添加了离线项目功能、检查新版本的功能以及内存和性能管理。

2015 年 12 月 2日

1.0.101 维护版本 添加了 Create New Database Migration Project向导。添加了将数据库迁移评估报告保存为 PDF文件的功能。

2015 年 10 月19 日

1.0.100 预览版 为 AWS Schema Conversion Tool 预览版提供了用户指南。

2015 年 10 月 7日

版本 1.0221