零 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 Amazon Aurora MySQL or RDS for MySQL zero-ETL integrations with Amazon Redshift

另请确认您的目标是否为 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 系统视图。

集成滞后增加

如果源数据库中大量使用 SAVEPOINT,则零 ETL 集成的集成延迟可能会增加。

请使用以下信息,排查使用 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 Amazon Aurora PostgreSQL zero-ETL integrations with Amazon Redshift

另请确认您的目标是否为 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 集群,且该集群未处于暂停状态。

表中有不支持的数据类型

您从集成在 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 系统视图。

请使用以下信息排查 Amazon DynamoDB 零 ETL 集成的常见问题。

集成创建失败

如果零 ETL 集成创建失败,则集成的状态为 Inactive。确保您的 Amazon Redshift 数据仓库和源 DynamoDB 表在以下方面正确无误:

表中有不支持的数据类型

在 Amazon Redshift 中,DynamoDB 数字转换为 DECIMAL(38,10)。超过此精度范围的数字会自动转换为 (38,10)。删除集成并统一数字精度,然后重新创建集成。

不支持的表名和属性名

Amazon Redshift 最多支持 127 个字符的表名和属性名。如果长名称(例如 DynamoDB 表名、分区键或排序键列名)使集成失败,请使用更短的名称来修复此问题,然后重新创建集成。

授权失败

当源 DynamoDB 表不再作为 Amazon Redshift 数据仓库的已授权集成源时,授权会失败。

要解决此问题,请删除零 ETL 集成,然后使用 Amazon DynamoDB 重新创建该集成。

Amazon Redshift 无法加载数据

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

要解决此问题,请使用 ALTER DATABASE 刷新集成。

ALTER DATABASE sample_integration_db INTEGRATION REFRESH ALL TABLES

工作组或集群参数设置不正确

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

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

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

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

要解决此问题,请为集成创建数据库。请参阅《Amazon Redshift 管理指南》中的在 Amazon Redshift 中创建目标数据库

未在源 DynamoDB 表上启用时间点故障恢复(PITR)

DynamoDB 需要启用 PITR 才能导出数据。确保 PITR 始终处于启用状态。如果您在集成处于活动状态时关闭了 PITR,则需要按照错误消息中的说明进行操作,并使用 ALTER DATABASE 刷新集成。

ALTER DATABASE sample_integration_db INTEGRATION REFRESH ALL TABLES

KMS 密钥访问被拒绝

必须为用于源表或集成的 KMS 密钥配置足够的权限。有关表加密和解密的信息,请参阅《Amazon DynamoDB 开发人员指南》中的 DynamoDB 静态加密

Amazon Redshift 无权访问 DynamoDB 表键

如果源表加密是 AWS 托管式密钥,则切换到 AWS 拥有的密钥或客户管理的密钥。如果该表已使用客户管理的密钥加密,请确保该策略没有任何条件键。

使用以下信息,排查与 Salesforce、SAP、ServiceNow 和 Zendesk 等应用程序的零 ETL 集成的常见问题。

集成创建失败

如果零 ETL 集成创建失败,则集成的状态为 Inactive。请确保 Amazon Redshift 数据仓库在以下方面正确无误:

表未复制到 Amazon Redshift

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

要解决此问题,请转到集成详细信息页面上的表统计数据选项卡,或使用 SVV_INTEGRATION_TABLE_STATE 查看失败的表。您可以向表中添加主键,然后 Amazon Redshift 将重新同步这些表。可以运行以下命令来重新同步它们。将 dbname 替换为 Amazon Redshift 数据库的名称。同时,将 table1table2 替换为要同步的表的名称。

ALTER DATABASE dbname INTEGRATION REFRESH TABLES table1, table2;

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

表中有不支持的数据类型

您在 Amazon Redshift 中通过集成创建了数据库,并从与应用程序的零 ETL 集成中将数据复制到该数据库,但一个或多个表具有不受支持的数据类型且无法同步。

要解决此问题,请转到集成详细信息页面上的表统计数据选项卡,或使用 SVV_INTEGRATION_TABLE_STATE 查看失败的表。然后,移除这些表并在源中重新创建新表。有关更多信息,请参阅《AWS Glue 开发人员指南》中的零 ETL 集成

工作组参数设置不正确

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

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

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

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

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

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

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

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