我在我的 dynamodb 流中没有看到任何记录
I do not see any records in my dynamodb stream
我在实施 dynamodbstreams 时遇到问题。我们希望在 dynamodb table 更改时立即获取更改记录。
我们使用了 https://docs.aws.amazon.com/en_en/amazondynamodb/latest/developerguide/Streams.LowLevel.Walkthrough.html 中的 java 示例并将其翻译用于我们的 c++ 项目。我们使用 ShardIteratorType.LATEST)
而不是 ShardIteratorType.TRIM_HORIZON
。此外,我目前正在使用现有的 table 进行测试,但不知道需要多少条记录。
大多数时候,当我遍历从 Aws::DynamoDBStreams::DynamoDBStreamsClient 和 Aws::DynamoDBStreams::Model::DescribeStreamRequest 检索的碎片时,我看不到任何记录。为了进行测试,我通过 aws 控制台更改了 dynamodb table 中的条目。但有时(我不知道为什么)有记录并且按预期工作。
我确定我误解了流的概念,尤其是分片和记录。我的想法是,我需要找到一种方法来找到最近的分片,并在该分片中找到最新的数据。
这不就是ShardIteratorType.LATEST会做的吗?如何在我的流中找到最新数据?
感谢您的所有想法,并且很好奇我的第一个 Whosebug post 发生了什么。
最佳
大卫
How can I find the most recent data in my stream?
您如何定义最近的数据?最后 10 个条目?最后一个条目?或者还没有在分片中的数据?这个问题可能听起来很愚蠢,但答案却很重要。
您正在使用的选项 - LATEST
- 将在最后一个条目之后立即设置迭代器的头部,这意味着除非在创建迭代器之后有新数据到达,否则什么都不会阅读。
如果您所说的最新数据是指分片中已有的一些记录,那么您不能使用 LATEST
。简单的选择是使用 TRIM_HORIZON
.
或者更简单的方法是将 lambda 函数订阅到该流,只要将新记录放入该流(将记录作为有效负载传递给该 lambda 函数),该流就会自动调用该函数,如果您需要近乎实时地处理事件。
我在实施 dynamodbstreams 时遇到问题。我们希望在 dynamodb table 更改时立即获取更改记录。
我们使用了 https://docs.aws.amazon.com/en_en/amazondynamodb/latest/developerguide/Streams.LowLevel.Walkthrough.html 中的 java 示例并将其翻译用于我们的 c++ 项目。我们使用 ShardIteratorType.LATEST)
而不是 ShardIteratorType.TRIM_HORIZON
。此外,我目前正在使用现有的 table 进行测试,但不知道需要多少条记录。
大多数时候,当我遍历从 Aws::DynamoDBStreams::DynamoDBStreamsClient 和 Aws::DynamoDBStreams::Model::DescribeStreamRequest 检索的碎片时,我看不到任何记录。为了进行测试,我通过 aws 控制台更改了 dynamodb table 中的条目。但有时(我不知道为什么)有记录并且按预期工作。
我确定我误解了流的概念,尤其是分片和记录。我的想法是,我需要找到一种方法来找到最近的分片,并在该分片中找到最新的数据。
这不就是ShardIteratorType.LATEST会做的吗?如何在我的流中找到最新数据?
感谢您的所有想法,并且很好奇我的第一个 Whosebug post 发生了什么。
最佳 大卫
How can I find the most recent data in my stream?
您如何定义最近的数据?最后 10 个条目?最后一个条目?或者还没有在分片中的数据?这个问题可能听起来很愚蠢,但答案却很重要。
您正在使用的选项 - LATEST
- 将在最后一个条目之后立即设置迭代器的头部,这意味着除非在创建迭代器之后有新数据到达,否则什么都不会阅读。
如果您所说的最新数据是指分片中已有的一些记录,那么您不能使用 LATEST
。简单的选择是使用 TRIM_HORIZON
.
或者更简单的方法是将 lambda 函数订阅到该流,只要将新记录放入该流(将记录作为有效负载传递给该 lambda 函数),该流就会自动调用该函数,如果您需要近乎实时地处理事件。