零 ETL 集成问题排查 - Amazon Redshift

零 ETL 集成问题排查

参阅以下各节,协助排查在处理零 ETL 集成时遇到的问题。

请使用以下信息,排查使用 Aurora MySQL 的零 ETL 集成的常见问题。

集成创建失败

如果零 ETL 集成创建失败,则集成的状态为 Inactive。确保您的源 Aurora 数据库集群的以下内容正确:

  • 您在 Amazon RDS 控制台中创建了您的集群。

  • 源 Aurora 数据库集群运行的是受支持的版本。有关受支持版本的列表,请参阅支持与 Amazon Redshift 进行零 ETL 集成的区域和 Amazon 数据库引擎。要对此进行验证,请转到集群的配置选项卡并检查引擎版本

  • 您为集群正确配置了二进制日志参数设置。如果您的 Aurora MySQL 二进制日志参数设置不正确或未与源 Aurora 数据库集群关联,则创建会失败。请参阅配置数据库集群参数

此外,请确保您的 Amazon Redshift 数据仓库在以下方面正确无误:

表没有主键

在目标数据库中,一个或多个表没有主键且无法同步。

要解决此问题,请转到集成详细信息页面上的表统计数据选项卡,或使用 SVV_INTEGRATION_TABLE_STATE 查看失败的表。您可以向表中添加主键,然后 Amazon Redshift 将重新同步这些表。或者,您可以在 Aurora 上删除这些表,然后创建带主键的表,但不建议使用此方法。有关更多信息,请参阅设计表的 Amazon Redshift 最佳实践

Aurora MySQL 表未复制到 Amazon Redshift

如果注意到一个或多个表没有在 Amazon Redshift 中显示,可以运行以下命令来重新同步这些表。将 dbname 替换为 Amazon Redshift 数据库的名称。同时,将 table1table2 替换为要同步的表的名称。

ALTER DATABASE dbname INTEGRATION REFRESH TABLES table1, table2;

有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 ALTER DATABASE

您的数据可能未复制,因为一个或多个源表没有主键。Amazon Redshift 中的监控控制面板将这些表的状态显示为 Failed,而总体零 ETL 集成的状态更改为 Needs attention。要解决此问题,您可以在表中确定一个可以成为主键的现有键,也可以添加合成主键。有关详细解决方案,请参阅 AWS 数据库博客中的 Handle tables without primary keys while creating Aurora MySQL-Compatible Edition or RDS for MySQL zero-ETL integrations with Amazon Redshift

表中有不支持的数据类型

您从集成在 Amazon Redshift 中创建了数据库,并从 Aurora 数据库集群将数据复制到该目标数据库,但在该目标数据库中,一个或多个表具有不受支持的数据类型且无法同步。

要解决此问题,请转到集成详细信息页面上的表统计数据选项卡,或使用 SVV_INTEGRATION_TABLE_STATE 查看失败的表。然后,请在 Amazon RDS 中删除这些表并重新创建新表。有关不支持的数据类型的更多信息,请参阅《Amazon Aurora 用户指南》中的 Aurora 和 Amazon Redshift 数据库之间的数据类型差异

数据操作语言命令失败

Amazon Redshift 无法在 Redshift 表上运行 DML 命令。要解决此问题,请使用 SVV_INTEGRATION_TABLE_STATE 查看失败的表。Amazon Redshift 会自动重新同步表以解决此错误。

数据来源之间跟踪的更改不匹配

当 Amazon Aurora 和 Amazon Redshift 之间的更改不匹配时,就会出现此错误,从而导致集成进入 Failed 状态。

要解决此问题,请删除零 ETL 集成,然后在 Amazon RDS 中重新创建。有关更多信息,请参阅 Creating zero-ETL integrationsDeleting zero-ETL integrations

授权失败

如果作为 Amazon Redshift 数据仓库的已授权的集成源的源 Aurora 数据库集群被移除,则会发生授权失败。

要解决此问题,请删除零 ETL 集成,然后在 Amazon RDS 上重新创建。有关更多信息,请参阅 Creating zero-ETL integrationsDeleting zero-ETL integrations

表的数量超过 100K 或者架构的数量超过 4950

对于目标数据仓库,表的数量大于 100K 或架构的数量大于 4950。Amazon Aurora 无法向 Amazon Redshift 发送数据。表和架构的数量超过了设置的限制。要解决此问题,请从源数据库中删除所有不必要的架构或表。

Amazon Redshift 无法加载数据

Amazon Redshift 无法将数据加载到零 ETL 集成。

要解决此问题,请删除 Amazon RDS 上的零 ETL 集成,然后重新创建。有关更多信息,请参阅 Creating zero-ETL integrationsDeleting zero-ETL integrations

工作组参数设置不正确

您的工作组未开启区分大小写功能。

要解决此问题,请转到集成详细信息页面上的属性选项卡,选择参数组,然后从属性选项卡中开启区分大小写的标识符。如果您没有现有的参数组,请在区分大小写标识符处于开启状态的情况下创建一个参数组。然后,在 Amazon RDS 上创建一个新的零 ETL 集成。有关更多信息,请参阅创建零 ETL 集成

没有为激活零 ETL 集成而创建数据库

没有为零 ETL 集成创建数据库,因此无法激活它。

要解决此问题,请为集成创建数据库。有关更多信息,请参阅 在 Amazon Redshift 中创建目标数据库

表处于需要重新同步重新同步已启动状态

您的表处于需要重新同步重新同步已启动状态。

要收集有关表为何处于该状态的更详细的错误信息,请使用 SYS_LOAD_ERROR_DETAIL 系统视图。

请使用以下信息,排查使用 Aurora PostgreSQL 的零 ETL 集成的常见问题。

集成创建失败

如果零 ETL 集成创建失败,则集成的状态为 Inactive。确保您的源 Aurora 数据库集群的以下内容正确:

  • 您在 Amazon RDS 控制台中创建了您的集群。

  • 您的源 Aurora 数据库集群运行的是受支持的版本。有关受支持版本的列表,请参阅支持与 Amazon Redshift 进行零 ETL 集成的区域和 Amazon 数据库引擎。要对此进行验证,请转到集群的配置选项卡并检查引擎版本

  • 您为集群正确配置了二进制日志参数设置。如果您的 Aurora PostgreSQL 二进制日志参数设置不正确或未与源 Aurora 数据库集群关联,则创建会失败。请参阅配置数据库集群参数

此外,请确保您的 Amazon Redshift 数据仓库在以下方面正确无误:

表没有主键

在目标数据库中,一个或多个表没有主键且无法同步。

要解决此问题,请转到集成详细信息页面上的表统计数据选项卡,或使用 SVV_INTEGRATION_TABLE_STATE 查看失败的表。您可以向表中添加主键,然后 Amazon Redshift 将重新同步这些表。或者,您可以在 Aurora 上删除这些表,然后创建带主键的表,但不建议使用此方法。有关更多信息,请参阅设计表的 Amazon Redshift 最佳实践

Aurora PostgreSQL 表未复制到 Amazon Redshift

如果注意到一个或多个表没有在 Amazon Redshift 中显示,可以运行以下命令来重新同步这些表。将 dbname 替换为 Amazon Redshift 数据库的名称。同时,将 table1table2 替换为要同步的表的名称。

ALTER DATABASE dbname INTEGRATION REFRESH TABLES table1, table2;

有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 ALTER DATABASE

您的数据可能未复制,因为一个或多个源表没有主键。Amazon Redshift 中的监控控制面板将这些表的状态显示为 Failed,而总体零 ETL 集成的状态更改为 Needs attention。要解决此问题,您可以在表中确定一个可以成为主键的现有键,也可以添加合成主键。有关详细解决方案,请参阅 AWS 数据库博客中的 Handle tables without primary keys while creating Aurora PostgreSQL-Compatible Edition zero-ETL integrations with Amazon Redshift

表中有不支持的数据类型

您从集成在 Amazon Redshift 中创建了数据库,并从 Aurora 数据库集群将数据复制到该目标数据库,但在该目标数据库中,一个或多个表具有不受支持的数据类型且无法同步。

要解决此问题,请转到集成详细信息页面上的表统计数据选项卡,或使用 SVV_INTEGRATION_TABLE_STATE 查看失败的表。然后,请在 Amazon RDS 中删除这些表并重新创建新表。有关不支持的数据类型的更多信息,请参阅《Amazon Aurora 用户指南》中的 Aurora 和 Amazon Redshift 数据库之间的数据类型差异

数据操作语言命令失败

Amazon Redshift 无法在 Redshift 表上运行 DML 命令。要解决此问题,请使用 SVV_INTEGRATION_TABLE_STATE 查看失败的表。Amazon Redshift 会自动重新同步表以解决此错误。

数据来源之间跟踪的更改不匹配

当 Amazon Aurora 和 Amazon Redshift 之间的更改不匹配时,就会出现此错误,从而导致集成进入 Failed 状态。

要解决此问题,请删除零 ETL 集成,然后在 Amazon RDS 中重新创建。有关更多信息,请参阅 Creating zero-ETL integrationsDeleting zero-ETL integrations

授权失败

如果作为 Amazon Redshift 数据仓库的已授权的集成源的源 Aurora 数据库集群被移除,则会发生授权失败。

要解决此问题,请删除零 ETL 集成,然后在 Amazon RDS 上重新创建。有关更多信息,请参阅 Creating zero-ETL integrationsDeleting zero-ETL integrations

表的数量超过 100K 或者架构的数量超过 4950

对于目标数据仓库,表的数量大于 100K 或架构的数量大于 4950。Amazon Aurora 无法向 Amazon Redshift 发送数据。表和架构的数量超过了设置的限制。要解决此问题,请从源数据库中删除所有不必要的架构或表。

Amazon Redshift 无法加载数据

Amazon Redshift 无法将数据加载到零 ETL 集成。

要解决此问题,请删除 Amazon RDS 上的零 ETL 集成,然后重新创建。有关更多信息,请参阅 Creating zero-ETL integrationsDeleting zero-ETL integrations

工作组参数设置不正确

您的工作组未开启区分大小写功能。

要解决此问题,请转到集成详细信息页面上的属性选项卡,选择参数组,然后从属性选项卡中开启区分大小写的标识符。如果您没有现有的参数组,请在区分大小写标识符处于开启状态的情况下创建一个参数组。然后,在 Amazon RDS 上创建一个新的零 ETL 集成。有关更多信息,请参阅创建零 ETL 集成

没有为激活零 ETL 集成而创建数据库

没有为零 ETL 集成创建数据库,因此无法激活它。

要解决此问题,请为集成创建数据库。有关更多信息,请参阅 在 Amazon Redshift 中创建目标数据库

表处于需要重新同步重新同步已启动状态

您的表处于需要重新同步重新同步已启动状态。

要收集有关表为何处于该状态的更详细的错误信息,请使用 SYS_LOAD_ERROR_DETAIL 系统视图。

请使用以下信息,排查使用 RDS for MySQL 的零 ETL 集成的常见问题。

集成创建失败

如果零 ETL 集成创建失败,则集成的状态为 Inactive。确保您的源 RDS 数据库实例的以下内容正确:

此外,请确保您的 Amazon Redshift 数据仓库在以下方面正确无误:

表没有主键

在目标数据库中,一个或多个表没有主键且无法同步。

要解决此问题,请转到集成详细信息页面上的表统计数据选项卡,或使用 SVV_INTEGRATION_TABLE_STATE 查看失败的表。您可以向表中添加主键,然后 Amazon Redshift 将重新同步这些表。或者,您可以在 RDS 上删除这些表,然后创建带主键的表,但不建议使用此方法。有关更多信息,请参阅设计表的 Amazon Redshift 最佳实践

RDS for MySQL 表未复制到 Amazon Redshift

如果注意到一个或多个表没有在 Amazon Redshift 中显示,可以运行以下命令来重新同步这些表。将 dbname 替换为 Amazon Redshift 数据库的名称。同时,将 table1table2 替换为要同步的表的名称。

ALTER DATABASE dbname INTEGRATION REFRESH TABLES table1, table2;

有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 ALTER DATABASE

您的数据可能未复制,因为一个或多个源表没有主键。Amazon Redshift 中的监控控制面板将这些表的状态显示为 Failed,而总体零 ETL 集成的状态更改为 Needs attention。要解决此问题,您可以在表中确定一个可以成为主键的现有键,也可以添加合成主键。有关详细解决方案,请参阅 AWS 数据库博客中的 Handle tables without primary keys while creating Aurora MySQL-Compatible Edition or RDS for MySQL zero-ETL integrations with Amazon Redshift

表中有不支持的数据类型

您从集成在 Amazon Redshift 中创建了数据库,并从 RDS 数据库实例将数据复制到该目标数据库,但在该目标数据库中,一个或多个表具有不受支持的数据类型且无法同步。

要解决此问题,请转到集成详细信息页面上的表统计数据选项卡,或使用 SVV_INTEGRATION_TABLE_STATE 查看失败的表。然后,请在 Amazon RDS 中删除这些表并重新创建新表。有关不支持的数据类型的更多信息,请参阅《Amazon RDS User Guide》中的 Data type differences between RDS and Amazon Redshift databases

数据操作语言命令失败

Amazon Redshift 无法在 Redshift 表上运行 DML 命令。要解决此问题,请使用 SVV_INTEGRATION_TABLE_STATE 查看失败的表。Amazon Redshift 会自动重新同步表以解决此错误。

数据来源之间跟踪的更改不匹配

当 Amazon Aurora 和 Amazon Redshift 之间的更改不匹配时,就会出现此错误,从而导致集成进入 Failed 状态。

要解决此问题,请删除零 ETL 集成,然后在 Amazon RDS 中重新创建。有关更多信息,请参阅 Creating zero-ETL integrationsDeleting zero-ETL integrations

授权失败

由于源 RDS 数据库实例已删除,而该实例作为 Amazon Redshift 数据仓库的已授权的集成源,授权失败。

要解决此问题,请删除零 ETL 集成,然后在 Amazon RDS 上重新创建。有关更多信息,请参阅 Creating zero-ETL integrationsDeleting zero-ETL integrations

表的数量超过 100K 或者架构的数量超过 4950

对于目标数据仓库,表的数量大于 100K 或架构的数量大于 4950。Amazon Aurora 无法向 Amazon Redshift 发送数据。表和架构的数量超过了设置的限制。要解决此问题,请从源数据库中删除所有不必要的架构或表。

Amazon Redshift 无法加载数据

Amazon Redshift 无法将数据加载到零 ETL 集成。

要解决此问题,请删除 Amazon RDS 上的零 ETL 集成,然后重新创建。有关更多信息,请参阅 Creating zero-ETL integrationsDeleting zero-ETL integrations

工作组参数设置不正确

您的工作组未开启区分大小写功能。

要解决此问题,请转到集成详细信息页面上的属性选项卡,选择参数组,然后从属性选项卡中开启区分大小写的标识符。如果您没有现有的参数组,请在区分大小写标识符处于开启状态的情况下创建一个参数组。然后,在 Amazon RDS 上创建一个新的零 ETL 集成。有关更多信息,请参阅创建零 ETL 集成

没有为激活零 ETL 集成而创建数据库

没有为零 ETL 集成创建数据库,因此无法激活它。

要解决此问题,请为集成创建数据库。有关更多信息,请参阅 在 Amazon Redshift 中创建目标数据库

表处于需要重新同步重新同步已启动状态

您的表处于需要重新同步重新同步已启动状态。

要收集有关表为何处于该状态的更详细的错误信息,请使用 SYS_LOAD_ERROR_DETAIL 系统视图。