stringtranslate.com

Base de datos Apache IoT

Apache IoTDB es un sistema de gestión de bases de datos de series temporales (TSDB) de código abierto y orientado a columnas escrito en Java . [1] Tiene versiones tanto de borde como de nube, proporciona un formato de archivo en columnas optimizado para un almacenamiento eficiente de datos de series temporales y TSDB con alta tasa de ingesta, consultas de baja latencia y soporte de análisis de datos. Está especialmente optimizado para operaciones orientadas a series temporales como consultas de agregaciones , submuestreo y búsqueda de similitud de subsecuencias. El nombre IoTDB proviene de Internet of Things (IoT) Database, lo que significa que fue diseñado como un TSDB nativo de IoT que resuelve los puntos débiles de los escenarios típicos de IoT, incluida la generación masiva de datos, muestreo de alta frecuencia, datos fuera de orden, requisitos de análisis específicos, altos costos de almacenamiento y operación y mantenimiento, baja potencia computacional de los dispositivos IoT. [2]

Historia

Apache IoTDB es un proyecto iniciado por el equipo del profesor Jianmin Wang en la Escuela de Software de la Universidad de Tsinghua . [1] En 2011, el equipo decidió utilizar tecnología NoSQL de código abierto en lugar de Oracle para un proyecto de gestión masiva de datos de máquinas y se dio cuenta de la insuficiencia de NoSQL en los escenarios de Internet industrial de las cosas (IIoT). El equipo comenzó a desarrollar un sistema de gestión de datos y propuso formalmente TsFile, [3] un formato de almacenamiento de archivos compactos en columnas optimizado para datos de series temporales, en marzo de 2016. El código fuente se abrió luego en GitHub .

En junio de 2016, basándose en TsFile, el equipo comenzó a desarrollar IoTDB, una base de datos IIoT que admite lectura, escritura y análisis en tiempo real.

En noviembre de 2018, el proyecto IoTDB entró en la incubadora de la Apache Software Foundation (ASF). [4]

El 16 de septiembre de 2020, la ASF emitió oficialmente una resolución para promover Apache IoTDB al Proyecto de Nivel Superior (TLP) global luego de una votación de discusión pública por parte de la comunidad y una votación a mano alzada por parte de la junta. [1] [5]

Arquitectura

La arquitectura de Apache IoTDB

El sistema de almacenamiento completo de Apache IoTDB sigue una arquitectura cliente-servidor, que incluye el motor IoTDB (servidor) y varios componentes como la suite IoTDB (cliente). La suite IoTDB puede proporcionar una serie de funciones en la situación real, como la recopilación de datos, la escritura de datos, el almacenamiento de datos, la consulta de datos, la visualización de datos y el análisis de datos. Esto permite que los datos recopilados por el sensor persistan constantemente en el servidor, donde los datos pueden usarse para consultas nativas o enviarse a otras plataformas de código abierto para el análisis de datos. En particular, IoTDB proporciona un modo llamado "Cooperación Edge-Cloud", que puede sincronizar los datos recopilados en cada intervalo configurado por el usuario desde una instancia de IoTDB a otra utilizando la herramienta Sync. [6] [7]

Los usuarios pueden usar JDBC para escribir datos de series temporales en una base de datos IoTDB local o remota. Estos datos de series temporales pueden representar datos de estado del sistema (como la carga del servidor y la memoria de la CPU, etc.), datos de colas de mensajes, datos de series temporales de aplicaciones u otros datos de series temporales en la base de datos. Los datos se pueden escribir directamente en TsFile de forma local o en el sistema de archivos distribuido Hadoop (HDFS).

TsFile es un formato de archivo de almacenamiento en columnas desarrollado para acceder, comprimir y almacenar datos de series temporales en Apache IoTDB. Su estructura se basa en LSM-Tree , lo que reduce los recursos computacionales y optimiza el rendimiento de Apache IoTDB. [3] [8]

TsFile podría escribirse en HDFS, implementando así tareas de procesamiento de datos como detección de anomalías y aprendizaje automático en la plataforma de procesamiento de datos Hadoop o Spark.

Para los datos escritos en HDFS o TsFile local, los usuarios pueden utilizar TsFile-Hadoop-Connector o TsFile-Spark-Connector para permitir que Hadoop o Spark procesen los datos. Los resultados del análisis se pueden volver a escribir en TsFile de la misma manera. Además, IoTDB y TsFile proporcionan herramientas de cliente para satisfacer las diversas necesidades de los usuarios en la escritura y visualización de datos en formato SQL , formato de script y formato gráfico. [2] [9] [10] [11] [12] [13]

Características

Implementación flexible y multiplataforma

IoTDB está diseñado para adaptarse a tres escenarios de implementación: 1) almacenamiento basado en archivos o base de datos de series temporales integrada en un dispositivo de borde como Raspberry Pi, 2) TSDB independiente en una PC industrial y 3) TSDB distribuido o clúster Hadoop con TsFile. IoTDB ofrece a los usuarios una herramienta de instalación con un solo clic en la nube, una herramienta de terminal que se utiliza una vez descomprimida y una herramienta de conexión entre las plataformas de la nube y las herramientas de terminal (herramienta de sincronización de datos). [2] [6]

Bajo costo de almacenamiento

IoTDB puede alcanzar una alta relación de compresión de almacenamiento en disco, lo que significa que IoTDB puede almacenar la misma cantidad de datos con un menor costo de disco de hardware. [2] [3] [14]

Estructura de directorio eficiente

IoTDB admite la organización eficiente de estructuras de datos de series temporales complejas de dispositivos de red inteligentes, la organización de datos de series temporales de dispositivos del mismo tipo y una estrategia de búsqueda difusa para directorios masivos y complejos de datos de series temporales. [1] [2] [3]

Lectura y escritura de alto rendimiento

IoTDB admite el acceso a datos de conexión sólida de millones de dispositivos de bajo consumo, la lectura y escritura de datos a alta velocidad para dispositivos de red inteligentes y dispositivos mixtos mencionados anteriormente. Actualmente, IoTDB admite una tasa de ingesta de hasta 30 millones de puntos de datos por segundo en un solo nodo. [1] [2] [14] [15]

Semántica de consulta enriquecida

IoTDB admite la alineación temporal de datos de series temporales en todos los dispositivos y sensores, el cálculo en el campo de series temporales (transformación del dominio de frecuencia) y un amplio soporte de funciones de agregación en la dimensión temporal. [2] [14]

Fácil de empezar

IoTDB admite lenguaje similar a SQL, API estándar JDBC y herramientas de importación/exportación que son fáciles de usar. [1] [2] [14]

Integración intensa con el ecosistema de código abierto

IoTDB es compatible con los ecosistemas de análisis Hadoop, Spark , etc. y la herramienta de visualización Grafana . [1] [2] [16]

Licencias

La licencia Apache 2.0 es una licencia de software libre permisiva escrita por la Apache Software Foundation. Permite a los usuarios finales modificar partes del código original siempre que contenga la documentación adecuada que Apache requiere dentro del código redistribuido. [17]

Referencias

  1. ^ abcdefg Sally (23 de septiembre de 2020). "La Apache Software Foundation anuncia Apache® IoTDB™ como un proyecto de alto nivel". Blog de la Apache Software Foundation . Consultado el 18 de noviembre de 2022 .
  2. ^ abcdefghi Wang, Chen; Huang, Xiangdong; Qiao, Jialin; Jiang, Tian; Rui, Lei; Zhang, Jinrui; Kang, Rong; Feinauer, Julian; McGrail, Keven A.; Wang, Peng; Yuan, Jun; Wang, Jianmin; Sun, Jiaguang (agosto de 2020). "Apache IoTDB" (PDF) . Actas de la Fundación VLDB . 13 (12): 2901–2904. doi :10.14778/3415478.3415504. S2CID  221352039.
  3. ^ abcd Hou, Haonan (14 de marzo de 2022). «Formato TsFile». ASF Confluence . Consultado el 18 de noviembre de 2022 .
  4. ^ "Estado de incubación del proyecto Apache IoTDB". Apache Incubator . Consultado el 18 de noviembre de 2022 .
  5. ^ en línea, heise (23 de septiembre de 2020). "Apache Software Foundation forma parte de IoTDB para un proyecto de nivel superior". Desarrollador (en alemán) . Consultado el 13 de diciembre de 2022 .
  6. ^ ab "Guía del usuario de IoTDB: arquitectura del sistema". Apache IoTDB . Consultado el 18 de noviembre de 2022 .
  7. ^ "Apache IoTDB". Base de datos de bases de datos . 27 de junio de 2022. Consultado el 18 de noviembre de 2022 .
  8. ^ Xiao, Jinzhao; Huang, Yuxiang; Hu, Changyu; Song, Shaoxu; Huang, Xiangdong; Wang, Jianmin (7 de septiembre de 2022). "Codificación de datos de series temporales para un almacenamiento eficiente: un análisis comparativo en Apache IoTDB". Actas de la Fundación VLDB . 15 (10): 2148–2160. doi :10.14778/3547305.3547319. ISSN  2150-8097. S2CID  252135944.
  9. ^ Huang, Xiangdong; Wang, Jianmin; Wong, Raymond; Zhang, Jinrui; Wang, Chen (24 de octubre de 2016). "PISA". Actas de la 25.ª Conferencia Internacional de la ACM sobre Gestión de la Información y el Conocimiento . CIKM '16. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 979–988. doi :10.1145/2983323.2983775. ISBN . 978-1-4503-4073-1.S2CID12456810  .​
  10. ^ Kang, Rong; Wang, Chen; Wang, Peng; Ding, Yuting; Wang, Jianmin (2018). "Coincidencia de subpatrones consecutivos sobre series temporales de transmisión". En Cai, Yi; Ishikawa, Yoshiharu; Xu, Jianliang (eds.). Web y Big Data . Apuntes de clase en informática. Vol. 10988. Cham: Springer International Publishing. págs. 90–105. arXiv : 1805.06757 . doi :10.1007/978-3-319-96893-3_8. ISBN 978-3-319-96893-3. Número de identificación del sujeto  21687305.
  11. ^ Wu, Jiaye; Wang, Peng; Pan, Ningting; Wang, Chen; Wang, Wei; Wang, Jianmin (2019). "KV-Match: un enfoque de coincidencia de subsecuencias que respalda la normalización y la distorsión temporal". 2019 IEEE 35th International Conference on Data Engineering (ICDE) . págs. 866–877. arXiv : 1710.00560 . doi :10.1109/ICDE.2019.00082. ISBN 978-1-5386-7474-1.S2CID46926461  .​
  12. ^ Mao, Dongfang; Li, Tianan; Huang, Xiangdong; Yuan, junio; Xu, Yi; Wang, Jianmin (27 de abril de 2020). "El diseño del marco distribuido Apache IoTDB". Conferencia Nacional de Bases de Datos . 50 (5): 621–636. doi : 10.1360/SSI-2019-0189 . S2CID  219053248.
  13. ^ Qiao, Jialin; Huang, Xiangdong; Wang, Jianmin; Wong, Raymond K. (1 de enero de 2020). "Dual-PISA: un índice para operaciones de agregación en datos de series temporales". Sistemas de información . 87 : 101427. doi :10.1016/j.is.2019.101427. ISSN  0306-4379. S2CID  201127537.
  14. ^ abcd "Guía del usuario de IoTDB: características". Sitio web de IoTDB . Consultado el 18 de noviembre de 2022 .
  15. ^ vogler. "Puerta de enlace de automatización con Apache IoTDB… | RocWorks" . Consultado el 13 de diciembre de 2022 .
  16. ^ "Panel de control de Apache IoTDB v0.13.1". Grafana Labs . Consultado el 13 de diciembre de 2022 .
  17. ^ "Licencia Apache, versión 2.0". The Apache Software Foundation . Consultado el 18 de noviembre de 2022 .