подключается более двух тысяч устройств и передают данные с интервалом от 5 до 40 секунд.
вести историю (интервал давности: месяц, частота: ежедневные показатели)
Если речь лишь о периодическом добавлении каких-то одних и тех же метрик (числовых значений) во времени, то нужно выбирать что-то из Time Series баз данных типа InfluxDB, Prometheus и др.
Для IoT устройств нужно выбирать СУБД исходя из структуры хранимых данных, частоты добавления, способа извлечения данных.
Для часто обновляемых данных можно взять какую-нибудь быструю K/V СУБД (NoSQL) типа Tarantool, Aerospike или попсовую Redis. Туда стоит класть какие-то небольшие несырые данные, поскольку используется доступная RAM. Это должны быть часто используемые данные. Часто используются для кеша и очередей.
Советую получше изучить какие сырые данные будут передаваться, как будут вычисляться/аггрегироваться/обрабатываться и как часто. Прикинуть примерные объемы на ближайший срок и оставить возможность для роста на порядок. Оценить примерные объемы чистых хранимых данных, исходя их типов передаваемых данных, для того чтобы примерно можно было оценить объем хранилища.
Также подумать о применении систем обработки данных в очереди.