Я не вижу записей в моем потоке Dynamodb - PullRequest
0 голосов
/ 14 июля 2020

У меня проблемы с реализацией динамических потоков. Мы хотим получать записи об изменениях прямо в момент изменения таблицы Dynamodb.

Мы использовали пример java из https://docs.aws.amazon.com/en_en/amazondynamodb/latest/developerguide/Streams.LowLevel.Walkthrough.html и перевели его для нашего проекта C ++. Вместо ShardIteratorType.TRIM_HORIZON мы используем ShardIteratorType.LATEST). Также в настоящее время я тестирую существующую таблицу и не знаю, сколько записей ожидать. * :: DynamoDBStreams :: Model :: DescribeStreamRequest Я не вижу никаких записей. Для тестирования меняю записи в таблице Dynamodb через консоль aws. Но иногда (и я не знаю почему) есть записи, и это работает, как ожидалось.

Я уверен, что неправильно понимаю концепцию потоков и особенно осколков и записей. Я считаю, что мне нужно найти способ найти самый последний осколок и найти самые свежие данные в этом осколке.

Разве это не то, что сделал бы ShardIteratorType.LATEST? Как мне найти самые свежие данные в моем потоке?

Я ценю все ваши мысли и мне любопытно, что происходит с моим первым сообщением о stackoverflow.

Лучший Дэвид

1 Ответ

1 голос
/ 14 июля 2020

Как мне найти самые последние данные в моем потоке?

Как бы вы определили самые последние данные? Последние 10 записей? Последняя запись? Или данные, которых еще нет в шарде? Вопрос может показаться глупым, но ответ имеет значение.

Опция - LATEST -, которую вы используете, устанавливает заголовок итератора сразу после последней записи, что означает, что если не поступят новые данные после создания итератора читать будет нечего.

Если под самыми последними данными вы имеете в виду некоторые записи, которые уже находятся в сегменте, то вы не можете использовать LATEST. Самый простой вариант - использовать TRIM_HORIZON.

Или еще проще было бы подписать лямбда-функцию на этот поток, который будет автоматически вызываться всякий раз, когда новая запись помещается в поток (с передачей записи в этот поток). лямбда-функция в качестве полезной нагрузки), что может быть предпочтительнее, если вам нужно обрабатывать события почти в реальном времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...