AWS Kinesis- время первого события для каждого устройства

У нас есть мобильная игра, которая отправляет события на наш сервер. Затем мы пишем в Kinesis Firehose (который пишет в s3), используя Kinesis Agent. Одним из полей является device_id. Мы хотим иметь таблицу в DynamodB, в которой для каждого device_id мы запоминаем день первого воспроизведения (время первого события, которое мы получили для этого device_id). Это должно быть обновлено в режиме реального времени (или как можно ближе к реальному времени). Как мы должны это сделать? С лямбдой? С Kinesis Analytics? Любое другое решение?

Спасибо

2 ответа

Я склонен с тех пор, как работаю в этой компании, но это легко сделать с помощью Drools Kinesys Analytics. Просто имейте в виду, что вам нужно разделить на части, если у вас много пользователей, так как все должно храниться в памяти все время. И каждый осколок обрабатывается одним узлом.

Dynamodb не является поддерживаемой точкой назначения для Kinesis Firehose или Kinesis Data Analytics, поэтому здесь должен быть посредник, такой как Lambda. Два возможных сценария,

  • Вы можете использовать Data Analytics для записи вашего потока в Kinesis DataStream. Затем используйте лямбду, чтобы добраться до динамод.

  • Поскольку вы уже пишете в S3 с помощью Firehose, сохраняйте текущие настройки и запускайте функцию Lambda, следя за S3, подробнее здесь,

    https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html

Другие вопросы по тегам