通过以下方式连接 Netezza AWS Schema Conversion Tool - AWS Schema Conversion Tool

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

通过以下方式连接 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

  • 列在 <database_name>

  • 列在 <schema_name>

  • 列在 <database_name>.all.table

  • 列在 <database_name>.all.external 表

  • 列在 <database_name>.all.view

  • 列在 <database_name>.all.materized 视图

  • 列在 <database_name>.all.procers

  • 列在 <database_name>.all.sequen

  • 列在 <database_name>.all.functi

  • 列在 <database_name>.all.aggregat

在上述示例中,替换以下占位符:

  • Replace(替换) database_name 使用源数据库的名称。

  • Replace(替换) schema_name 使用源架构的名称。

AWS SCT 需要访问以下系统表和视图。您可以授予对这些对象的访问权限,而不必授予对上述列表中的 system.definition_schema.system viewsystem.definition_schema.system tables 的访问权限。

  • select on system.definition_schema._t_aggregate

  • select on system.definition_schema._t_class

  • select on system.definition_schema._t_constraint

  • select on system.definition_schema._t_const_relattr

  • select on system.definition_schema._t_database

  • select on system.definition_schema._t_grpobj_priv

  • select on system.definition_schema._t_grpusr

  • select on system.definition_schema._t_hist_config

  • select on system.definition_schema._t_object

  • select on system.definition_schema._t_object_classes

  • select on system.definition_schema._t_proc

  • select on system.definition_schema._t_type

  • select on system.definition_schema._t_user

  • select on system.definition_schema._t_usrobj_priv

  • select on system.definition_schema._vt_sequence

  • select on system.definition_schema._v_aggregate

  • select on system.definition_schema._v_constraint_depends

  • select on system.definition_schema._v_database

  • select on system.definition_schema._v_datatype

  • select on system.definition_schema._v_dslice

  • select on system.definition_schema._v_function

  • select on system.definition_schema._v_group

  • select on system.definition_schema._v_obj_relation

  • select on system.definition_schema._v_obj_relation_xdb

  • select on system.definition_schema._v_procedure

  • select on system.definition_schema._v_relation_column

  • select on system.definition_schema._v_relation_keydata

  • select on system.definition_schema._v_relobjclasses

  • select on system.definition_schema._v_schema_xdb

  • select on system.definition_schema._v_sequence

  • select on system.definition_schema._v_synonym

  • select on system.definition_schema._v_system_info

  • select on system.definition_schema._v_sys_constraint

  • select on system.definition_schema._v_sys_object_dslice_info

  • select on system.definition_schema._v_sys_user

  • select on system.definition_schema._v_table

  • select on system.definition_schema._v_table_constraint

  • select on system.definition_schema._v_table_dist_map

  • select on system.definition_schema._v_table_organize_column

  • select on system.definition_schema._v_table_storage_stat

  • select on system.definition_schema._v_user

  • select on system.definition_schema._v_view

  • select on system.information_schema._v_relation_column

  • select on system.information_schema._v_table

  • select on $hist_column_access_*

连接到作为源的 Netezza

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

连接到 Netezza 源数据库
  1. 在中 AWS Schema Conversion Tool,选择添加来源

  2. 选择 Netezza,然后选择下一步

    此时显示添加源对话框。

  3. 对于连接名称,输入数据库的名称。 AWS SCT 会在左侧面板的树中显示此名称。

  4. 使用来自的数据库凭据 AWS Secrets Manager 或手动输入:

    • 要使用 Secrets Manager 中的数据库凭证,请按照以下说明进行操作:

      1. 对于 AWS 密钥,输入密钥名称。

      2. 选择填充可使用 Secrets Manager 中的数据库凭证自动填写数据库连接对话框中的所有值。

      有关使用 Secrets Manager 中的数据库凭证的信息,请参阅AWS Secrets Manager 在中配置 AWS Schema Conversion Tool

    • 要手动输入 Netezza 源数据库的连接信息,请按照以下说明进行操作:

      参数 操作
      服务器名称

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

      服务器端口

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

      用户名密码

      输入数据库凭证,以便连接到源数据库服务器。

      AWS SCT 仅当您选择在项目中连接到您的数据库时,才使用该密码连接到您的源数据库。为了避免泄露源数据库的密码, AWS SCT 不会默认存储该密码。如果您关闭了 AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。

      存储密码

      AWS SCT 创建用于存储SSL证书和数据库密码的安全保管库。启用此选项,可存储数据库密码,且无需输入密码可快速连接到数据库。

      Netezza 驱动程序路径

      输入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 正在为安装JDBC驱动程序 AWS Schema Conversion Tool

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

  5. 选择 “测试连接” 以验证是否 AWS SCT 可以连接到您的源数据库。

  6. 选择连接以连接到源数据库。

配置持续的数据复制

转换您的 Netezza 数据库架构并将其应用于 Amazon Redshift 数据库后,您可以使用数据提取代理迁移数据 AWS SCT 。代理会提取数据并将其上载到 Amazon S3 存储桶。然后,您可以使用将数据从亚马逊 S3 复制 AWS SCT 到 Amazon Redshift。

如果源数据库中的数据在迁移过程中发生了变化,则可以使用 AWS SCT 数据提取代理捕获正在进行的更改。然后,您可以在完成初始数据迁移后将这些正在进行的更改复制到目标数据库中。此过程称为持续数据复制或更改数据捕获 (CDC)。

为从 Netezza 迁移到 Amazon Redshift 配置持续的数据复制
  1. 在源数据库中,创建一个历史数据库。你可以在 Netezza 命令行界面 (CLI) 中使用以下代码示例。

    nzhistcreatedb -d history_database_name -t query -v 1 -u load_user -o histdb_owner -p your_password

    在前面的示例中,替换 history_database_name 用你的历史数据库的名字。接下来,替换 load_user 使用您为将历史数据加载到数据库而定义的用户名。然后,替换 histdb_owner 使用您定义为历史数据库所有者的用户名。请确保您已经创建了此用户并授予了 CREATE DATABASE 权限。最后,替换 your_password 使用安全的密码。

  2. 配置历史日志记录。为此,请使用以下代码示例。

    CREATE HISTORY CONFIGURATION history_configuration_name HISTTYPE QUERY DATABASE history_database_name USER load_user PASSWORD your_password COLLECT PLAN, COLUMN LOADINTERVAL 1 LOADMINTHRESHOLD 0 LOADMAXTHRESHOLD 0 STORAGELIMIT 25 LOADRETRY 2 VERSION 1;

    在前面的示例中,替换 history_configuration_name 以及 history_database_name 包含您的历史配置和历史数据库的名称。接下来,替换 load_user 使用您为将历史数据加载到数据库而定义的用户名。然后,替换 your_password 使用安全的密码。

  3. 授予历史数据库中所有表的读取权限。您可以使用以下代码示例授予 SELECT 权限。

    GRANT SELECT ON history_database_name.ALL.TABLE TO your_user;

    在前面的示例中,替换 history_database_name 用你的历史数据库的名字。接下来,替换 your_user 使用具有最低权限使用您的 Netezza 数据库的用户的姓名。您可以在中使用该数据库用户的凭据 AWS SCT。

  4. 收集源架构中每个表的统计数据,以获取有关列基数的信息。您可使用以下命令在历史数据库中生成统计数据。

    GENERATE STATISTICS on "schema_name"."table_name";

    在前面的示例中,替换 schema_name 以及 table_name 使用您的数据库架构和表的名称。

  5. 通过运行以下查询,确保您已完成先决条件:

    SELECT COUNT(*) FROM history_database_name.history_schema_name."$hist_column_access_N";

    在前面的示例中,替换 history_database_name 以及 history_schema_name 使用您的历史数据库和架构的名称。接下来,替换 N 以及您的历史数据库的版本号。有关历史数据库版本的更多信息,请参阅 IBMNetezza 文档

  6. 安装数据提取代理。有关更多信息,请参阅 安装提取代理

    确保 settings.properties 文件中所有提取器实例的 {working.folder} 参数都指向同一个文件夹。在这种情况下,您的提取器可以协调CDC会话并为所有子任务使用单个事务点。

  7. 注册您的数据提取代理。有关更多信息,请参阅 在中注册提取剂 AWS Schema Conversion Tool

  8. 创建您的CDC任务。有关更多信息,请参阅 创建、运行和监控 AWS SCT 任务

    1. 在 AWS SCT中打开您的项目。在左窗格中,选择源表。打开上下文 (右键单击) 菜单,然后选择创建本地任务

    2. 对于任务名称,请输入数据迁移任务的描述性名称。

    3. 对于迁移模式,选择提取、上传和复制

    4. 选择 启用CDC

    5. 选择CDC设置选项卡并定义会CDC话的范围和时间表。

    6. 选择测试任务以验证是否可连接到您的工作文件夹、Amazon S3 存储桶和 Amazon Redshift 数据仓库。

    7. 选择创建以创建任务。

    8. 选择任务选项卡,从列表中选择您的任务,然后选择开始

  9. 该 AWS SCT 任务在目标数据库上保持事务一致性。数据提取代理按事务 ID 顺序从源复制事务。

    如果您停止任何迁移会话或迁移会话失败,则CDC处理也会停止。

Netezza 到 Amazon Redshift 的转换设置

要编辑 Netezza 到 Amazon Redshift 的转换设置,请在 AWS SCT中选择 “设置”,然后选择 “转换设置”。从上方的列表中选择 Nete zza,然后选择 Netezza — Amazon Redshift。 AWS SCT 显示 Netezza 到 Amazon Redshift 转换的所有可用设置。

中的 Netezza 到 Amazon Redshift AWS SCT 的转换设置包括以下选项:

  • 限制转换后的代码中操作项的注释数量。

    对于在转换后的代码中为所选严重性及更高的措施项添加注释,请选择措施项的严重性。 AWS SCT 在转换后的代码中为选定严重性及更高的措施项添加注释。

    例如,要最大限度地减少转换后的代码中的注释数量,请选择仅错误。要在转换后的代码中包含所有操作项的注释,请选择所有消息

  • 设置 AWS SCT 可以应用于您的目标 Amazon Redshift 集群的最大表数。

    对于目标 Amazon Redshift 集群的最大表数,请选择 AWS SCT 可以应用于您的 Amazon Redshift 集群的表数量。

    Amazon Redshift 具有限制了不同集群节点类型使用表数的配额。如果您选择 “自动”,则根据节点类型 AWS SCT 确定要应用于目标 Amazon Redshift 集群的表数量。或者,手动选择值。有关更多信息,请参阅《Amazon Redshift 管理指南》中的 Amazon Redshift 中的配额和限制

    AWS SCT 转换您的所有源表,即使这超过了您的 Amazon Redshift 集群所能存储的容量。 AWS SCT 将转换后的代码存储在您的项目中,并且不会将其应用于目标数据库。如果应用转换后的代码时达到了 Amazon Redshift 集群的表配额,则 AWS SCT 会显示一条警告消息。此外,还要 AWS SCT 将表应用于您的目标 Amazon Redshift 集群,直到表的数量达到上限。

  • 对 Amazon Redshift 表列应用压缩。为此,请选择使用压缩编码

    AWS SCT 使用默认 Amazon Redshift 算法自动为列分配压缩编码。有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的压缩编码

    默认情况下,Amazon Redshift 不对定义为排序键和分配键的列应用压缩。您可以更改此行为并对这些列进行压缩。为此,请选择 “对KEY列使用压缩编码”。只有选择使用压缩编码选项时,才能选择此选项。

Netezza 到 Amazon Redshift 的转换优化设置

要编辑 Netezza 到 Amazon Redshift 的转化优化设置,请在 AWS SCT中选择 “设置”,然后选择 “转化设置”。从上方的列表中选择 Netezza,然后选择 Netezza – Amazon Redshift。在左侧窗格中,选择优化策略。 AWS SCT 显示 Netezza 到 Amazon Redshift 转换的转化优化设置。

Netezza 到 Amazon Redshift AWS SCT 的转化优化设置包括以下选项:

  • 使用自动表优化。为此,请选择使用 Amazon Redshift 自动调整表格

    自动表优化是 Amazon Redshift 中的一种自我调整过程,可自动优化表的设计。有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的使用自动表优化

    要仅使用自动表优化,请在初始键选择策略中选择

  • 使用策略选择排序键和分配键。

    您可以使用 Amazon Redshift 元数据、统计信息或这两个选项选择排序键和分配键。对于优化策略选项卡上的初始键选择策略,请选择以下选项之一:

    • 使用元数据,忽略统计信息

    • 忽略元数据,使用统计信息

    • 使用元数据和统计信息

    根据您选择的选项,您可以选择优化策略。然后,请为每种策略输入值(0–100)。这些值定义了每种策略的权重。 AWS SCT 使用这些权重值定义每条规则如何影响分布键和排序键的选择。默认值基于 AWS 迁移最佳实践。

    您可以为查找小型表策略定义小型表的大小。在 “最小表格行数” 和 “最大表格行数” 中,输入表格中最小和最大行数以将其定义为小表。 AWS SCT 将ALL分配方式应用于小表。在这种情况下,向每个节点分配整个表的副本。

  • 配置策略详细信息。

    除了定义每种优化策略的权重外,您还可以配置优化设置。为此,请选择转换优化

    • 对于排序键列数限制,在排序键中输入最大列数。

    • 倾斜阈值中,输入列偏斜值的百分比 (0—100)。 AWS SCT 从分布键的候选列表中排除倾斜值大于阈值的列。 AWS SCT 将列的偏斜值定义为最常见值的出现次数与记录总数的百分比比率。

    • 对于查询历史表中的前 N 个查询,请输入要分析的最常用查询的数量(1–100)。

    • 选择统计数据用户中,选择要分析查询统计数据的数据库用户。

    此外,在优化策略选项卡上,您可以为查找小型表策略定义小型表的大小。在 “最小表格行数” 和 “最大表格行数” 中,输入表格中最小和最大行数,将其视为一个小表。 AWS SCT 将ALL分配方式应用于小表。在这种情况下,向每个节点分配整个表的副本。