Définition du modèle ThingWorx dans Composer > Stockage des données > Fournisseurs de persistance > Utilisation d'InfluxDB en tant que fournisseur de persistance
Utilisation d'InfluxDB en tant que fournisseur de persistance
Vue d'ensemble
Si votre système traite intensivement des données de séries temporelles et que votre implémentation dépend fortement des flux de valeurs pour la persistance/récupération des données, nous vous recommandons d'utiliser InfluxDB comme fournisseur de persistance dans ThingWorx. InfluxDB est un magasin de données hautes performances écrit spécifiquement pour les données de séries temporelles. Il permet l'ingestion, la compression et l'interrogation en temps réel de ces données à haut débit. InfluxDB est utilisable comme magasin de données pour tout cas d'utilisation impliquant de grandes quantités de données horodatées, y compris la surveillance DevOps, les données des journaux, les mesures d'application, les données des capteurs IoT et l'analyse en temps réel. Le produit fournit également un certain nombre d'autres fonctionnalités, telles que des règles de rétention des données, notamment. InfluxDB Enterprise offre une solution de clustering haute disponibilité et haute évolutivité pour les besoins liés aux données de séries temporelles.
Les fournisseurs de stockage de persistance des données InfluxDB sont disponibles dans le cadre de l'installation par défaut pour PostgreSQL, MSSQL ou Azure SQL utilisés pour les fournisseurs de propriétés :
InfluxPersistenceProviderPackage
Influx2PersistenceProviderPackage
ThingWorx prend en charge les versions OSS, Enterprise et Cloud.
InfluxDB OSS 1.x et InfluxDB Enterprise 1.x. sont pris en charge via InfluxPersistenceProviderPackage. InfluxDB Enterprise n'est pris en charge qu'avec INfluxDB 1.x
InfluxDB OSS 2.x est pris en charge via Influx2PersistenceProviderPackage.
InfluxDB Cloud n'est pris en charge que via Influx2PersistenceProviderPackage.
Consultez Release Advisor pour connaître les versions particulières prises en charge.
* 
Le fournisseur de données InfluxDB ne prend actuellement en charge que les flux et les flux de valeurs. La prise en charge des tables de données, des wikis et des blogs n'est pas assurée.
* 
L'exportation de données est prise en charge avec InfluxPersistenceProviderPackage et Influx2PersistenceProviderPackage.
* 
InfluxDB n'est pas pris en charge en tant que fournisseur de propriétés.
* 
Les clients souhaitant effectuer une mise à niveau vers ThingWorx 9.3.9 et versions ultérieures, ThingWorx 9.4.0 et versions ultérieures et qui utilisent InfluxDB OSS 2.0 pour exploiter Influx2PersistenceProviderPackage doivent d'abord effectuer une mise à niveau vers ThingWorx 9.3.8 pour passer à InfluxDB OSS v2.6, car l'exportation est requise avant la mise à niveau vers InfluxDB v2.6. Pour InfluxDB Cloud, il n'est pas nécessaire d'exporter avant la mise à niveau ; par conséquent, il n'est pas nécessaire de passer à ThingWorx 9.3.8 avant la mise à niveau vers ThingWorx 9.3.9 et versions ultérieures et ThingWorx 9.4.0 et ultérieures.
InfluxDB Enterprise et ThingWorx, environnement de base
* 
Le schéma ci-dessus intègre InfluxDB Enterprise. Pour InfluxDB Open Source, le schéma d'architecture serait le même, mais avec un seul noeud. Pour InfluxDB Cloud, la base de données est hébergée en dehors de l'environnement ThingWorx et gérée par la société InfluxData.
Les termes suivants sont utilisés dans cette documentation en rapport avec la configuration d'InfluxDB Enterprise :
Equilibreur de charge : InfluxDB Enterprise ne se comporte pas comme un équilibreur de charge. Un administrateur doit mener à bien la configuration appropriée.
Cluster : un cluster InfluxDB Enterprise se compose de deux types de noeuds, des méta-noeuds et des noeuds de données.
Noeuds de données : abritent toutes les données de séries temporelles brutes. Pour assurer la haute disponibilité, un facteur de réplication d'au moins deux est nécessaire.
Méta-noeuds : ces noeuds ont une mission simple, maintenir un état cohérent. Ils ne contiennent que des informations de base sur l'état, concernant les politiques de rétention, les utilisateurs et les bases de données, par exemple. Dans un environnement haute disponibilité, au moins trois méta-noeuds sont nécessaires.
Vous trouverez davantage d'informations sur la haute disponibilité à l'adresse https://www.influxdata.com/blog/understanding-influxenterprise-what-is-a-cluster/.
Sélection de l'option de base de données Influx appropriée
Les deux options d'InfluxBD actuellement disponibles pour les clients PTC sur site sont présentées de manière générale ci-après. Les options du logiciel de base de données et du support sous-jacent doivent être soigneusement prises en compte lors de la sélection de votre produit Influx. Pour toute question relative à la sélection des options de base de données correctes, contactez le support Influx à l'adresse suivante : https://www.influxdata.com/contact-sales. Les clients PTC doivent s'identifier en tant qu'utilisateurs PTC ThingWorx.
InfluxDB open source OSS (noeud unique)
Noeud unique, non évolutif.
Gratuit
Prise en charge d'Influx par la Communauté disponible sur le site Influx Community à la page InfluxData Community Forums.
Non recommandé pour les instances de production, en raison du support technique Influx limité (pas de support en ligne en cas d'urgence).
Les clients PTC sont responsables de la maintenance et de la surveillance de la base de données.
PTC fournira des recommandations dans la mesure du possible. Certains cas pourront nécessiter un suivi par le support technique d'Influx.
InfluxDB Enterprise
Si vous êtes à la recherche d'un magasin de données pour la prise en charge de volumes et de vitesses de données supérieurs à ce qu'offrent actuellement les autres bases de données, InfluxDB Enterprise offre les avantages suivants :
Taux d'ingestion de données plus élevé
Vous pouvez disposer de plusieurs référentiels de données pour les données d'exécution. Par exemple, vous pouvez conserver les données relationnelles dans PostgreSQL, tout en utilisant InfluxDB pour les données de flux et de flux de valeurs à forte volumétrie. Lorsque vous définissez un flux ou un flux de valeurs, ThingWorx utilise le fournisseur de magasin de données d'exécution par défaut, mais vous pouvez le configurer pour qu'il utilise n'importe quel fournisseur de persistance défini. Vous pouvez toujours exécuter des exportations de données depuis d'autres fournisseurs de données et importer les données dans InfluxDB. ThingWorx gère l'abstraction des données.
Architecture Cloud (évolutivité horizontale, uniquement avec InfluxDB Enterprise)
Haute disponibilité possible.
Le support technique Influx est disponible pour les titulaires d'un contrat via le site de support Influx sur le site InfluxData.
Les clients PTC peuvent créer des requêtes auprès du support d'Influx dans le cadre de la collaboration entre PTC et Influx.
Les clients PTC sont responsables de la maintenance et de la surveillance de la base de données.
InfluxDB Cloud (hébergé en dehors de l'environnement ThingWorx et géré par la société InfluxData)
InfluxDB Cloud offre les atouts suivants :
InfluxDB Cloud a été élaboré en tant que plateforme Cloud, mutualisée, élastique, sans serveur.
Il offre disponibilité, durabilité et évolutivité dans plusieurs régions sur AWS, Google et Azure.
Il est sécurisé et robuste avec tous les derniers correctifs et fonctionnalités de sécurité installés et configurés.
InfluxDB Cloud rééquilibre automatiquement les clusters, gère les partitions et exploite les facteurs de réplication intégrés.
Bonnes pratiques
Limites concernant les séries
On entend par "séries", le nombre total de propriétés de tous les objets journalisés dans InfluxDB. InfluxDB se comporte bien avec un volume élevé de données associées un petit nombre d'objets et de propriétés d'objets, par exemple 10 Ks ou 100 Ks. Le nombre total de séries est limité à 1 million par défaut dans InfluxDB. Cette limite peut être augmentée, mais les performances d'InfluxDB diminueront en conséquence.
Si vous disposez d'un grand nombre d'objets et de propriétés, vous pouvez choisir ceux auxquels est associé le volume de données le plus élevé et diriger ces seules données vers InfluxDB pour soulager PostgreSQL ou MSSQL.
Si vous voulez répartir les séries sur plusieurs serveurs, vous pouvez aussi utiliser plusieurs instances de fournisseur de données InfluxDB pointant vers différentes instances de serveur InfluxDB.
Limites en écriture
100 K d'écritures par seconde avec une VM de 60 Go de mémoire à 32 coeurs. En cas de dépassement de cette limite, des problèmes pourront se poser sur ThingWorx et les ressources pourront manquer pour traiter une demande ou une tâche donnée, comme écrire dans la base de données, par exemple. A ce stade, ThingWorx pourra se trouver bloqué alors même qu'InfluxDB continuera à écrire dans la base de données. Ce problème ne se produit pas avec PostgreSQL car PostgreSQL devient le goulot d'étranglement et ThingWorx n'en arrive jamais au point d'être à court de ressources pour gérer les tâches.
Connexion SSL/sécurisée
InfluxDB prend en charge les connexions SSL et HTTPS. Vous pouvez activer les connexions SSL et HTTPS pour renforcer la sécurité si le réseau entre ThingWorx et InfluxDB n'est pas pris en charge. Un certificat auto-signé est adéquat, dès lors que la clé privée de signature est sécurisée.
Limitations connues d'InfluxDB concernant les types de base de propriétés
Vous ne pouvez pas modifier le type de base d'une propriété après son enregistrement dans un flux de valeurs. Pour plus d'informations, consultez la rubrique Type conflict on insert int value in float field #3460 (en anglais).
Propriétés de purge
Les services PurgeAllPropertyHistory, PurgeSelectedPropertyHistory et PurgePropertyHistory peuvent être utilisés pour purger les propriétés d'InfluxDB. Utilisez les paramètres startDate et endDate pour spécifier une plage.
* 
La purge n'est pas prise en charge lors de l'utilisation du fournisseur Influx2PersistenceProviderPackage. Les services PurgePropertyHistory, PurgeAllPropertyHistory et PurgeSelectedPropertyHistory n'ont aucun effet.
Est-ce que cela a été utile ?