На самом деле довольно много людей собирают данные датчиков с помощью временных рядов с Кассандрой. Это очень хорошо подходит. Я рекомендую вам прочитать эту статью об основных временных рядах в Cassandra , чтобы понять, как будет выглядеть ваша модель данных.
Записи в Cassandra чрезвычайно дешевы, поэтому даже кластер среднего размера может легко обрабатывать миллион записей в минуту.
На оба ваших запроса на чтение можно ответить очень эффективно. Для второго типа запроса, когда вы считываете данные за отрезок времени для одного датчика, вы в конечном итоге читаете непрерывный отрезок из одной строки; это должно занять около 10 мс для полностью холодного чтения. Для первого типа запроса вы просто выполняете несколько запросов для каждого датчика параллельно. Предполагая, что вы сохраняете базовую карту пользователей с идентификаторами датчиков, вы будете искать все идентификаторы датчиков для пользователя с одним запросом, а затем ваш второй запрос извлечет данные для всех этих датчиков (хотя вы можете разбить этот запрос, если количество датчиков велико).
Hive и HDFS на самом деле не имеют смысла, когда вы говорите о запросах в реальном времени, поскольку они больше подходят для длительных пакетных заданий.