跳至内容

如何对 DynamoDB 中的 Kinesis Data Streams 问题进行故障排除?

1 分钟阅读
0

我想优化 Amazon DynamoDB 与 Amazon Kinesis Data Streams 的交互方式并对问题进行故障排除。

简短描述

以下是在 DynamoDB 表中使用 Kinesis Data Streams 时可能遇到的常见问题:

  • 您的 Kinesis Data Streams 记录失败。
  • 您的成本很高或波动很大。

为了帮助对问题进行故障排除,请查看您的 AWS CloudTrail 日志并监控 Amazon CloudWatch 中的 Kinesis Data Streams 指标。

**注意:**DynamoDB 和 Kinesis Stream 中数据的默认存储时长设置为 24 小时。但是,您可以将数据流的保留期延长至一年(365 天或 8,760 小时)。

解决方法

对失败的记录进行故障排除

要确定记录失败的原因,请查看您的 CloudTrail 日志。以下是记录可能失败的常见原因:

如果您收到 ProvisionedThroughputExceededException 错误并且数据流处于预调配容量模式,则表示您的分片数量不足。预调配更多分片来管理表的读写操作。

如果您收到 ProvisionedThroughputExceededException 错误并且数据流处于按需容量模式,则表明您使用的分区键可能不正确。不正确的分区键会导致数据在分片之间分布不均匀。不均衡的数据分布可能会使某些分片的负担过重,导致记录超过每秒 2 MB 的读取速率配额和最高 1 MB 的每秒写入速率配额。

要解决此问题,请选择一个可在分区中均匀分配数据的分区键

选择正确的容量模式来优化成本

要使用 DynamoDB 来优化 Kinesis Data Streams 的性能和成本,请选择正确的容量模式

如果您的 DynamoDB 数据库工作负载波动显著且难以预测,请选择按需容量模式。由于 Kinesis Data Streams 会自动管理分片,因此您无需规划容量。

如果您的工作负载比较稳定且可预测,请选择预调配容量模式。您可以指定用于容纳 DynamoDB 表中的变更数据捕获记录所需的分片数量

使用 CloudTrail 日志查看您的 API 活动

要通过控制面板 API 活动对数据流进行故障排除,请查看您的 CloudTrail 日志。CloudTrail 会记录所有控制面板操作并包含数据流活动信息,例如何时开启或关闭数据流。分析 CloudTrail 日志中是否存在有关预调配吞吐量或 Kinesis 和 DynamoDB 资源的问题。然后,使用 Kinesis Data Streams API 来管理您的分片。

使用 Kinesis Data Streams 指标进行进一步排除故障

要监控 Kinesis Data Streams 指标,请使用 CloudWatch

以下指标可帮助您确定常见问题:

  • GetRecords.IteratorAgeMilliseconds 指标显示了在指定时间窗口内从所有对数据流的 GetRecords 调用中收到的最新记录的存在时间。
  • GetRecords.Latency 指标显示了在指定时间窗口内对 Kinesis 数据流进行的每次 GetRecords 操作的持续时间。
  • ThrottledPutRecordCount 指标显示了由于数据流容量不足而受到节流的记录数量。
  • WriteProvisionedThroughputExceededReadProvisionedThroughputExceeded 指标显示了在指定时间窗口内因数据流受到节流而遭拒的记录数量。

相关信息

使用 Amazon CloudWatch 和 AWS Lambda 自动扩缩 Amazon Kinesis Data Streams

对 Kinesis Data Streams 使用者进行故障排除

AWS 官方已更新 2 年前