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, подробнее здесь,