Amazon Redshift 问题排查
如果数据未传输到您的 Amazon Redshift 预置集群或 Amazon Redshift Serverless 工作组,请检查以下各项。
数据在加载到 Amazon Redshift 之前会先传输到 S3 存储桶。如果数据未传输至 S3 存储桶,请参阅Amazon S3 故障排除。
-
检查 Firehose
DeliveryToRedshift.Success
指标,确保 Firehose 已尝试将数据从 S3 存储桶复制到 Amazon Redshift 预置集群或 Amazon Redshift Serverless 工作组。有关更多信息,请参阅 使用 CloudWatch 指标监控 Amazon Data Firehose。 -
如果尚未启用错误日志记录功能,则启用它并检查是否存在传输失败错误日志。有关更多信息,请参阅 使用 CloudWatch Logs 监控 Amazon Data Firehose。
-
查看 Amazon Redshift
STL_CONNECTION_LOG
表,查看 Firehose 是否可以成功建立连接。在该表中,应该能够根据用户名查看连接及其状态。有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的STL_CONNECTION_LOG
。 -
如果前面的检查显示正在建立连接,请检查 Amazon Redshift
STL_LOAD_ERRORS
表以验证 COPY 失败的原因。有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的STL_LOAD_ERRORS
。 -
确保 Firehose 流中的 Amazon Redshift 配置正确且有效。
-
确保在 Firehose 流中指定的 IAM 角色可以访问 S3 存储桶(Amazon Redshift 从该存储桶复制数据),以及用于数据转换的 Lambda 函数(如果启用了数据转换)。此外,请确保 IAM 角色有权访问 CloudWatch 日志组和日志流,以检查错误日志。有关更多信息,请参阅 授予 Firehose 对 Amazon Redshift 目的地的访问权限 。
-
如果您的 Amazon Redshift 预置集群或 Amazon Redshift Serverless 工作组位于虚拟私有云(VPC)中,确保该群集允许从 Firehose IP 地址访问。有关更多信息,请参阅 授予 Firehose 对 Amazon Redshift 目的地的访问权限 。
-
确保 Amazon Redshift 预置集群或 Amazon Redshift Serverless 工作组公开可用。
-
如果使用数据转换,确保您的 Lambda 函数不会返回有效负载大小超过 6MB 的响应。有关更多信息,请参阅 Amazon Data FirehoseData Transformation。