Qué base de datos de back-end es adecuada para la implementación de IoT

15

Tengo que proporcionar el servicio IoT para mi cliente. Los componentes MQTT, Kafka y Rest Services se utilizarán para ingerir los datos de los dispositivos a la base de datos. Necesito hacer algunos análisis sobre los datos en el backend. El tamaño de los datos sería de 135 bytes / dispositivo y 6000 dispositivos / segundo. He compartido la arquitectura aquí para comprender los requisitos y componentes.

ingrese la descripción de la imagen aquí

Investigué sobre los almacenes de datos (MongoDB, Postgresql (TimescaleDB), Redis, Neo4j, Cassandra) y todos los proveedores probaron que su base de datos es adecuada para el caso de uso de IoT. Me he confundido acerca del uso de la base de datos probada / más confiable / escalable para IoT.

¿Cuál podría ser la mejor base de datos adecuada para ingerir esta gran cantidad de datos y hacer el análisis?

¿Hay algún punto de referencia probado para la base de datos adecuada para el IoT?

Por favor dé sus pensamientos y sugerencias.

Mourish Khan
fuente
Utilicé ElasticSearch para un caso de uso similar recientemente. Pero no puedo decir por qué es mejor que otros, esa parte se basa principalmente en la opinión. Literalmente usé Kafka para conectar sensores a DB. Hay buenas bibliotecas que admiten el procesamiento
continuo
2
El "caso de uso de IoT" es demasiado amplio para clasificar las implementaciones. Cada uno tiene sus fortalezas y debilidades.
Gilles 'SO- deja de ser malvado'
1
No es mi campo, pero me sorprendería si algún db moderno se vería mal aquí. Use lo que conoce o tiene las herramientas más brillantes.
Sean Houlihane

Respuestas:

4

Usted está limitado a cualquiera de las bases de datos NoSQL, porque cualquier base de datos SQL no le permitirá 6K TPS directamente en el servidor ni podrá usar ningún servicio en la nube SaaS o plataforma ya especializada en este tipo de operaciones, por ejemplo, recibir datos telemáticos a través de MQTT / Kafka, divídalo y almacene para estos 6000 dispositivos y proporcione API REST simple para acceder a los datos de telemetría. Como flespi o lo que sea similar.

shal
fuente
entendí tu punto y gracias. ¿Podría decirme qué base de datos NoSQL es la mejor para mi caso de uso?
Mourish Khan
Realmente depende de su experiencia y entorno de tiempo de ejecución. Para AWS / GoogleCloud será una opción, para la instalación local recomendaría a LevelDB o cualquiera de sus competidores, solo busque levelDB en google y verá una lista completa de ellos. En cualquier variante, deberá implementar una API intermedia entre la aplicación web y la base de datos, por lo que también depende del tipo de back-end que esté utilizando para esto. Exactamente su caso descrito en este artículo , cuando completa datos con mqtt y accede a ellos y al historial desde la web.
shal
1
Por cierto, probé en los últimos 15 años muchas de estas bases de datos NoSQL. Comenzó desde Berkeley DB en sus primeras edades. Al final, cuando necesita potencia y rendimiento completos en sus aplicaciones y tratando de exprimir la IOP y el rendimiento máximos de la base de datos, no encuentro otra manera, sino desarrollar un motor de base de datos propio, específicamente dirigido a casos y requisitos de uso de telemática (IoT). Pero fue mi experiencia +)
shal
"6K TPS"? 6tB / segundo?
Mawg dice que reinstalar a Mónica el
6,000 transacciones / segundo
shal
4

IoT es prácticamente datos de series temporales. Existen algunos TSDB: InfluxDB, OpenTSDB, GridDB, etc. Todos tienen la versión de comunidad / oss para que pueda ver si se adapta a sus necesidades. InfluxDB es popular, pero tenga en cuenta que la agrupación solo está disponible para la versión paga. OpenTSD es puro OSS, y GridDB afirma que está orientado a IoT y es más rápido que InfluxDB. Dependiendo de sus necesidades, tal vez desee buscar uno que tenga una ingesta rápida.

Codelicious
fuente
2

Timescaledb, una extensión de postgres personalizada para conjuntos de datos de series de tiempo funciona muy bien. Y obtiene las características habituales de la base de datos relacional, uso de SQL, confiabilidad, índices, escalabilidad.

IOTdev
fuente
1

La pregunta es amplia y no se puede dar una respuesta precisa, pero estos enlaces pueden ayudar:

http://outlyer.com/blog/top10-open-source-time-series-databases/ ingrese la descripción de la imagen aquí

Seguimiento con puntos de referencia: http://outlyer.com/blog/time-series-database-benchmarks/

Otra comparación: https://gist.github.com/sacreman/00a85cf09251147175241d334aafa798

Establecí algunas reglas para intentar limitar el alcance, de lo contrario este blog nunca terminaría.

Solo se han comparado bases de datos de series de tiempo gratuitas y de código abierto y sus características. Por lo tanto, ¿alguien pregunta "¿has probado Kdb + e Informix?", La respuesta será no. Sin embargo, probablemente sean increíbles.

La lista solo incluirá bases de datos que se clasifiquen en su material de marketing como series de tiempo o que hayan sido escritas en un blog por una compañía genial como algo que están utilizando para datos de series de tiempo.

Lo que se ha hecho es leer los documentos oficiales, leer StackOverflow, revisar los problemas y el código de Github y, en general, piratear la información juntos. Con esto en mente, algunos hechos pueden ser incorrectos.

Si alguien ve algo realmente incorrecto, avíseme y actualizaré el blog.

La evaluación comparativa se ha basado en afirmaciones y estimaciones de marketing. ¿Por qué? Porque la evaluación comparativa es una parte considerable del trabajo y es propensa a errores. Siempre obtienes "deberías haber ajustado esta configuración especial no documentada". Los números enumerados son muy favorables para la mayoría de las bases de datos. Son los números publicados en blogs o reclamados en Twitter en algún momento en el pasado. Si siente que algún número está mal, avíseme y lo actualizaré.

Faraón
fuente
0

Además de las respuestas anteriores, también recomiendo mirar Tarantool , ClickHouse y ScyllaDB . Estas soluciones son más que suficientes para la mayoría de los casos.

Excepto que en algunas situaciones, especialmente para incrustar, el MDBX (o algo así) puede ser útil.

Leo Yuriev
fuente
2
¿Le gustaría explicar por qué los recomienda?
Helmar