Definición del modelo de ThingWorx en Composer > Almacenamiento de datos > Proveedores de persistencia > Utilización de InfluxDB como proveedor de persistencia
Utilización de InfluxDB como proveedor de persistencia
Resumen
Si el sistema trata de manera intensiva datos de serie temporal y la implementación depende en gran medida de flujos de valor o flujos de persistencia o recuperación de datos, se recomienda utilizar InfluxDB como proveedor de persistencia en ThingWorx. InfluxDB es un almacén de datos de alto rendimiento escrito específicamente para datos de serie temporal. Permite la ingesta, compresión y consulta en tiempo real de alto rendimiento de dichos datos. InfluxDB se utiliza como almacén de datos para cualquier caso de uso que implique una gran cantidad de datos con marca de tiempo, como la supervisión de DevOps, los datos de registro, las métricas de aplicación, los datos de sensor de IoT y los análisis en tiempo real. También se proporcionan otras funciones, incluidas las directivas de retención de datos (RP), etc. InfluxDB Enterprise ofrece una solución de almacenamiento en clúster de alta disponibilidad y altamente escalable para las necesidades de datos cronológicos.
Los proveedores de almacenamiento de persistencia de datos InfluxDB están disponibles como parte de la instalación por defecto para PostgreSQL, MSSQL o Azure SQL y se utilizan para los proveedores de propiedades:
InfluxPersistenceProviderPackage
Influx2PersistenceProviderPackage
ThingWorx soporta las versiones OSS, Enterprise y Cloud.
InfluxDB OSS 1.x e InfluxDB Enterprise 1.x se soportan a través de InfluxPersistenceProviderPackage. InfluxDB Enterprise solo se soporta con INfluxDB 1.x
InfluxDB OSS 2.x se soporta a través de Influx2PersistenceProviderPackage.
InfluxDB Cloud solo se soporta a través de Influx2PersistenceProviderPackage
Consulte Release Advisor para conocer las versiones soportadas específicamente.
* 
El proveedor de datos InfluxDB actualmente solo soporta flujos de valor y flujos. El soporte de tablas de datos, wikis y blogs no está disponible.
* 
La exportación de datos se soporta con InfluxPersistenceProviderPackage y Influx2PersistenceProviderPackage.
* 
InfluxDB no se soporta como proveedor de propiedades.
* 
Los clientes que deseen actualizar a ThingWorx 9.3.9 y versiones posteriores, y ThingWorx 9.4.0 y versiones posteriores, así como utilizar InfluxDB OSS 2.0 para aprovechar Influx2PersistenceProviderPackage, primero deben actualizar a ThingWorx 9.3.8 para pasar a InfluxDB OSS v2.6, ya que se requiere la exportación antes de la actualización a InfluxDB v2.6. Para InfluxDB Cloud, no es necesario exportar una actualización anterior por lo que no es necesario pasar a ThingWorx 9.3.8 antes de la actualización a ThingWorx 9.3.9 y versiones posteriores y ThingWorx 9.4.0 y versiones posteriores.
Panorama de inicio de InfluxDB Enterprise y ThingWorx
* 
En el diagrama anterior se incluye InfluxDB Enterprise. Para InfluxDB de código abierto, el diagrama de arquitectura es el mismo, excepto que solo funciona con un nodo. Además, para InfluxDB Cloud, la base de datos se aloja fuera del entorno de ThingWorx y la gestiona la empresa InfluxData.
En esta documentación se utilizan los siguientes términos cuando se hace referencia a la configuración de InfluxDB Enterprise:
Equilibrador de carga: InfluxDB Enterprise no funciona como equilibrador de carga. Un administrador debe configurarlo.
Clúster: un clúster de InfluxDB Enterprise consta de dos tipos de nodos; nodos de metadatos y de datos.
Nodos de datos: en ellos residen todos los datos de serie temporal sin procesar. Para un entorno de alta disponibilidad, es necesario un factor de replicación de al menos dos.
Nodos de metadatos: estos nodos tienen un trabajo simple, que es mantener la coherencia del estado. Contienen solo la información básica sobre el estado, como las directivas de retención, los usuarios y las bases de datos. En un entorno de alta disponibilidad, se necesitan al menos tres nodos de metadatos.
Para obtener más información acerca de la alta disponibilidad, consulte https://www.influxdata.com/blog/understanding-influxenterprise-what-is-a-cluster/.
Elección de la opción de base de datos de Influx correcta
A continuación, se ofrece un resumen de nivel superior de las dos opciones de InfluxDB disponibles actualmente para clientes de PTC en entornos locales. Las opciones de software de base de datos y las opciones de soporte subyacentes se deben considerar cuidadosamente a la hora de elegir un producto de Influx. Ante cualquier pregunta a la hora de elegir las opciones de base de datos correctas, póngase en contacto con el soporte técnico de Influx: https://www.influxdata.com/contact-sales. Los clientes de PTC deben identificarse como usuarios de PTC ThingWorx.
InfluxDB open source OSS (single node)
Únicamente un solo nodo, no escalable.
Gratis
El soporte de Influx basado en la comunidad está disponible a través del sitio de la comunidad de Influx en InfluxData Community Forums.
No se recomienda para las instancias de producción, debido al límite del soporte técnico de Influx (sin soporte de Influx en directo para situaciones urgentes).
El cliente de PTC asume la responsabilidad del mantenimiento y la supervisión de las bases de datos.
PTC hará el mayor esfuerzo para proporcionar recomendaciones sobre Influx. Sin embargo, algunas situaciones pueden requerir la derivación a los recursos técnicos de Influx.
InfluxDB Enterprise
Si se busca un almacén de datos para volúmenes y datos de velocidad superiores a los que están disponibles actualmente con otras bases de datos, InfluxDB Enterprise presenta las siguientes ventajas:
Mayor velocidad de introducción de datos.
Puede haber más de un almacén de datos para los datos de tiempo de ejecución. Por ejemplo, se pueden mantener datos relacionales en PostgreSQL, a la vez que se utiliza InfluxDB para datos de flujo y flujo de valor de gran volumen. Al definir un flujo o un flujo de valor, ThingWorx utiliza el proveedor de almacén de datos de tiempo de ejecución por defecto, pero se puede configurar para utilizar cualquier proveedor de persistencia definido. Aún se pueden exportar datos de otros proveedores e importarlos en InfluxDB. ThingWorx gestiona la abstracción de datos.
Arquitectura apta para la nube (escala horizontal, solo con InfluxDB Enterprise).
Alta disponibilidad disponible.
Soporte técnico de Influx disponible con el contrato de Influx a través del sitio de soporte técnico de Influx en InfluxData.
El cliente de PTC puede abrir vales de soporte con Influx según sea necesario para la colaboración entre PTC e Influx.
El cliente de PTC asume la responsabilidad del mantenimiento y la supervisión de las bases de datos.
InfluxDB Cloud (alojada fuera del entorno de ThingWorx y la gestiona la empresa InfluxData)
Con InfluxDB Cloud se ofrecen las siguientes ventajas:
InfluxDB Cloud está creada como una plataforma nativa de la nube, de múltiples inquilinos y de escala elástica, sin servidor.
Ofrece disponibilidad, durabilidad y escalabilidad en múltiples regiones en AWS, Google y Azure.
Es segura y está protegida con todas las funciones de seguridad y parches más recientes instalados y configurados.
InfluxDB Cloud permite reequilibrar automáticamente los clústeres, gestionar la fragmentación y aprovechar los factores de replicación integrados.
Prácticas recomendadas
Límite de la serie
La serie es el número total de propiedades para todas las cosas conectadas en InfluxDB. InfluxDB tiene un buen rendimiento con un gran volumen de datos dirigido a una pequeña cantidad de cosas y propiedades de cosa, como 10.000 o 100.000. Por defecto, en InfluxDB el número total de la serie se limita a un millón. Se puede aumentar el límite, pero el rendimiento de InfluxDB se reduce a medida que el número de la serie supera este límite.
Si hay una gran cantidad de cosas y propiedades, se pueden elegir las que tienen un mayor volumen de datos y señalar solo a estas en InfluxDB para aliviar la presión de PostgreSQL o MSSQL.
Como alternativa, si desea dividir la serie en varios servidores, se pueden tener varias instancias de proveedor de datos de InfluxDB señalando a otras instancias de servidor InfluxDB.
Límite de escritura
Hay 100.000 escrituras por segundo con una máquina virtual con memoria de 60 GB y 32 núcleos. Más allá de este límite, se pueden producir problemas en ThingWorx y se pueden agotar los recursos para controlar cualquier solicitud o trabajo, como escribir en la base de datos. En ese punto, ThingWorx se detiene, mientras InfluxDB sigue escribiendo en la base de datos. No se trata de un problema con PostgreSQL porque PostgreSQL se convierte en un cuello de botella y ThingWorx nunca llega al punto de quedarse sin recursos para controlar las tareas interiores.
Conexión SSL/segura
InfluxDB soporta las conexiones SSL y HTTPS. Se pueden activar las conexiones SSL y HTTPS para aumentar la seguridad si no se soporta la red entre ThingWorx e InfluxDB. Un certificado autofirmado es adecuado si la clave privada de firma se mantiene segura.
Limitaciones conocidas de InfluxDB en tipos base de propiedades
No se puede cambiar el tipo base de una propiedad después de haberla registrado en un flujo de valor. Para obtener más información, consulte Type conflict on insert int value in float field#3460.
Depuración de propiedades
Los servicios PurgeAllPropertyHistory, PurgeSelectedPropertyHistory y PurgePropertyHistory se pueden utilizar para depurar las propiedades de InfluxDB. Los parámetros startDate y endDate se utilizan para especificar un rango.
* 
La depuración no se soporta cuando se utiliza el proveedor Influx2PersistenceProviderPackage. Los servicios PurgePropertyHistory, PurgeAllPropertyHistory, PurgeSelectedPropertyHistory no tienen ningún efecto.
¿Fue esto útil?