Я должен предоставить услугу IoT для своего клиента. Компоненты MQTT, Kafka и Rest Services будут использоваться для загрузки данных с устройств в базу данных. Мне нужно сделать некоторую аналитику по данным в бэкэнде. Размер данных будет 135 байтов / устройство и 6000 устройств / секунду. Я поделился архитектурой здесь, чтобы понять требования и компоненты.
Я исследовал хранилища данных (MongoDB, Postgresql (TimescaleDB), Redis, Neo4j, Cassandra), и все поставщики доказали, что их база данных подходит для варианта использования IoT. Я запутался в использовании проверенной / самой надежной / масштабируемой базы данных для IoT.
Что может быть наилучшей подходящей базой данных, чтобы проглотить это большое количество данных и сделать аналитику?
Есть ли проверенный эталон для подходящей базы данных для IoT?
Пожалуйста, дайте свои мысли и предложения.
источник
Ответы:
Вы ограничены либо базами данных NoSQL, потому что любая база данных SQL не позволит вам использовать 6K TPS непосредственно на сервере, а также вы не можете использовать какой-либо облачный сервис SaaS или платформу, уже специализирующуюся на таких операциях - например, получать телематические данные через MQTT / Kafka, разделите его и сохраните для этих 6000 устройств и предоставьте простой REST API для доступа к данным телеметрии. Как флеспи или что-то подобное.
источник
IoT - это в значительной степени данные временных рядов. Существует несколько TSDB: InfluxDB, OpenTSDB, GridDB и т. Д. Все они имеют версию сообщества / oss, поэтому вы можете увидеть, соответствует ли она вашим потребностям. InfluxDB является популярным, но обратите внимание, что кластеризация доступна только для платной версии. OpenTSD - чистый oss, и GridDB утверждает, что он ориентирован на IoT и быстрее, чем InfluxDB. В зависимости от ваших потребностей, возможно, вы захотите найти тот, который имеет быстрый прием.
источник
Timescaledb, расширение postgres, настроенное для наборов данных временных рядов, работает очень хорошо. И вы получаете обычные функции реляционной базы данных, использование SQL, надежность, индексы, масштабируемость.
источник
Вопрос широкий и точного ответа дать невозможно, но эти ссылки могут помочь:
http://outlyer.com/blog/top10-open-source-time-series-databases/
Продолжение с тестами: http://outlyer.com/blog/time-series-database-benchmarks/
Другое сравнение: https://gist.github.com/sacreman/00a85cf09251147175241d334aafa798
источник
В дополнение к предыдущим ответам я также рекомендую взглянуть на Tarantool , ClickHouse и ScyllaDB . Этих решений более чем достаточно для большинства случаев.
За исключением того, что в некоторых ситуациях, особенно для встраивания, MDBX (или что-то подобное) может быть полезным.
источник