Définition du modèle ThingWorx dans Composer > Stockage des données > Fournisseurs de persistance > Utilisation de DataStax Enterprise en tant que fournisseur de persistance
Utilisation de DataStax Enterprise en tant que fournisseur de persistance
Vue d'ensemble
* 
A compter de la version 8.5.0 de ThingWorx Platform, DSE n'est plus disponible à la vente et ne sera plus pris en charge dans les prochaines versions. Pour plus d'informations, reportez-vous à l'article concernant la fin de sa commercialisation.
Si votre modèle doit s'adapter au Big Data, vous pouvez utiliser DataStax Enterprise (DSE) comme fournisseur de persistance via une importation d'extension dans ThingWorx. L'extension DsePersistenceProviderPackage.zip est conçue pour utiliser l'édition DataStax Enterprise de Cassandra (et non l'édition Open Source/Community), qui intègre le moteur de recherche Solr. DSE est une plateforme Big Data basée sur Apache Cassandra qui gère les données en temps réel, d'analyse et de recherche globale.
Cassandra est une base de données NoSQL évolutive en code source libre, capable de gérer de grandes quantités de données stockées dans des data centers et le Cloud. Cassandra garantit une disponibilité continue, une évolutivité linéaire et une simplicité opérationnelle sur plusieurs serveurs universels sans un seul point de défaillance, tout en offrant un modèle puissant de données conçu pour un maximum de flexibilité et des temps de réponse rapides.
* 
Pour démarrer avec DSE, vous devez d'abord vous inscrire, puis installer et configurer DSE. La majeure partie de ce processus est exécutée indépendamment de ThingWorx et est documentée ici.
La planification du déploiement de DataStax Enterprise implique, pour commencer, de comprendre son architecture et en particulier ses différences par rapport aux bases de données relationnelles standard. Si vous ne connaissez pas Cassandra, il est préférable de commencer par suivre les cours en ligne gratuits proposés par DataStax Academy. Plus précisément,
La section suivante vous fournira des informations détaillées sur des éléments précis :
DSE et ThingWorx, environnement de base
Les termes suivants sont utilisés dans cette documentation en rapport avec la configuration de DSE :
Noeud : emplacement de stockage de vos données. Il s'agit du composant d'infrastructure de base de Cassandra.
Datacenter : ensemble de noeuds associés. Un datacenter peut être physique ou virtuel. Les différentes charges de travail doivent utiliser des datacenters distincts, qu'ils soient physiques ou virtuels. La réplication est définie par le datacenter. L'utilisation de datacenters distincts empêche les transactions Cassandra d'être affectées par d'autres charges de travail et maintient une fréquence élevée de requêtes pour réduire la latence. Selon le facteur de réplication, les données peuvent être écrites sur plusieurs datacenters. Toutefois, les datacenters ne doivent jamais s'étendre sur des emplacements physiques.
Cluster : un cluster contient un ou plusieurs datacenters. Il peut s'étendre sur des emplacements physiques.
Processus de niveau supérieur pour la mise en oeuvre de DSE dans ThingWorx
1. Déterminez si DSE constitue une solution adaptée pour vos données. Consultez les sections relatives au dimensionnement et à la planification pour obtenir plus d'informations.
2. Inscrivez-vous, puis installez DSE.
Ce processus est exécuté en dehors de ThingWorx. Un exemple de déploiement est fourni.
3. Importez l'extension de fournisseur de persistance DSE dans ThingWorx.
4. Créez dans ThingWorx une instance de fournisseur de persistance qui se connectera au magasin de données DSE.
5. Configurez les paramètres du fournisseur de persistance dans ThingWorx. Le tableau ci-dessous fournit des détails sur les paramètres.
* 
Pour les flux, les flux de valeurs et les tables de données, vous pouvez configurer les paramètres de compartiment. Ces paramètres remplacent la configuration de l'instance de fournisseur de persistance DSE.
Nom
Valeur par défaut
Description
Informations de connexion
Hôtes de cluster Cassandra
192.168.234.136,192.168.234.136
Adresse(s) IP des clusters Cassandra. Il s'agit des adresses IP ou des noms d'hôte configurés pendant le paramétrage de DSE pour installer le cluster Cassandra.
Port de cluster Cassandra
9042
Port du cluster Cassandra configuré pendant le paramétrage de DSE pour installer le cluster Cassandra.
Nom d'utilisateur Cassandra
n/a
Facultatif, sauf si vous souhaitez activer l'authentification sur un cluster. Dans ce cas, ce champ est obligatoire.
* 
L'activation de l'authentification doit être effectuée dans le cluster Cassandra. L'utilisateur doit disposer du niveau d'autorisation approprié pour créer un espace de clé.
Mot de passe Cassandra
n/a
Facultatif, sauf si vous souhaitez activer l'authentification sur un cluster. Dans ce cas, ce champ est obligatoire. (Voir ci-dessus.)
Nom d'espace de clé Cassandra
thingworxnd
Emplacement vers lequel les données ThingWorx pointent. Similaire à un schéma de base de données relationnelle.
* 
Si vous procédez à une mise à niveau depuis la version 1.0 du fichier DsePersistenceProviderPackage.zip, ce champ est obligatoire.
URL du cluster Solr
http://localhost
Si des tables de données sont utilisées, indiquez l'adresse IP ou le nom d'hôte complet en incluant le domaine ou l'adresse IP configuré(e) pendant le paramétrage de DSE pour installer le cluster Cassandra.
Port de cluster Solr
8983
Si des tables de données sont utilisées, indiquez le port configuré pendant le paramétrage de DSE pour installer le cluster Cassandra.
Paramètres d'espace de clé Cassandra
replication = {'class':'NetworkTopologyStrategy', 'Cassandra':1, 'Solr':1}
Dépend de la configuration de votre cluster Cassandra définie pendant le paramétrage de DSE. Définit principalement les centres de données utilisés et les facteurs de réplication associés (rendez-vous à l'adresse http://datastax.com/documentation/cql/3.1/cql/cql_reference/create_keyspace_r.html pour obtenir plus d'informations). Si les administrateurs ont créé manuellement l'espace de clé, ces paramètres devront correspondre aux paramètres de cet espace de clé.
Niveaux de cohérence Cassandra
{'Cluster' : { 'read' : 'ONE', 'write' : 'ONE' }}
Niveaux de cohérence en lecture et écriture pour le nombre de noeuds.
* 
Mettez en oeuvre plusieurs noeuds pour inclure une copie de redondance pour les opérations d'écriture. Pour en savoir plus, rendez-vous à l'adresse http://datastax.com/documentation/cassandra/2.1/cassandra/dml/dml_config _consistency_c.html.
Limite de résultats de la requête CQL
5000
La limite de résultats de la requête CQL (Cassandra Query Language) spécifie le nombre de lignes renvoyées lors d'une interrogation des données. Cela renforce la stabilité de ThingWorx en empêchant le renvoi d'ensembles volumineux de résultats pouvant entraîner des problèmes sur la plateforme.
Maintenir la connexion active
true
Permet de maintenir actives les connexions au cluster Cassandra, notamment à travers les pare-feu, où les connexions inactives pourraient être interrompues.
* 
Ne mettez en oeuvre aucun pare-feu entre ThingWorx et le cluster Cassandra.
Délai d'inactivité de la connexion (ms)
30000
Délai d'attente initial en millisecondes. Dépend du temps de latence du réseau entre ThingWorx et le cluster Cassandra.
Algorithme de compression
Aucune
Lorsque ThingWorx envoie des données à un cluster, trois options sont disponibles :
Compression Lz4
Compression Snappy
Aucune compression
Si la bande passante réseau entre ThingWorx et le cluster Cassandra est basse, l'utilisation d'un algorithme de compression augmentera le débit.
* 
La compression consommera davantage de cycles processus sur la machine qui exécute ThingWorx.
Nbre max. de nouvelles requêtes
3
Nombre maximal de nouvelles tentatives autorisées pour les requêtes. Ce nombre est fixé à trois par défaut.
Connexions au noyau local
4
Nombre minimal de connexions ayant un accès en lecture/écriture aux données.
Nombre max. de connexions locales
16
Nombre maximal de connexions ayant un accès en lecture/écriture aux données.
Nombre min. de connexions distantes
2
Nombre minimal de connexions distantes ayant un accès en lecture/écriture aux données.
Nombre max. de connexions distantes
16
Nombre maximal de connexions distantes ayant un accès en lecture/écriture aux données.
Activer le traçage
false
Journalisation. Peut être activé pour le débogage.
Nbre max. de requêtes asynchrones
1000
Paramètres de flux classique
Taille initiale du cache
10000
Taille initiale du cache. Dépend du nombre de sources.
* 
Utilisez une valeur supérieure au nombre de sources configurées.
Taille min. du cache
100000
Taille maximale du cache. Contrôle l'utilisation de la mémoire.
Accès simultané du cache
24
Nombre de threads auxquels vous pouvez accéder en même temps. La valeur minimale doit correspondre à la valeur définie pour Nombre max. de connexions distantes.
Valeurs par défaut du flux classique
Nombre de compartiments source
1000
Les sources peuvent être compartimentées. Le nombre de sources correspond au nombre de requêtes qui doivent être exécutées. Par exemple, si vous disposez de 100 000 sources, ce champ détermine le nombre de compartiments utilisés.
* 
Les données risquent d'être inaccessibles via ThingWorx si ce paramètre est modifié une fois les données écrites. Si ce paramètre doit être modifié après écriture des données, exportez ces dernières avant de modifier le paramètre, puis réimportez-les.
Taille de compartiment de temps (heures)
24
Délai (en heures) de création de compartiments. Dépend du paramètre de taille des compartiments source. Par exemple, si la taille de compartiment de temps est définie sur 24, les compartiments seront créés toutes les 24 heures. Dans la mesure du possible, le nombre de points de données ne doit pas dépasser deux millions. Ainsi, en fonction de la fréquence d'acquisition des données (R par seconde) par flux de valeur ou flux classique : Taille de compartiment de temps = 2 millions / (R * 60 * 60).
* 
Les données risquent d'être inaccessibles via ThingWorx si ce paramètre est modifié une fois les données écrites. Si ce paramètre doit être modifié après écriture des données, exportez ces dernières avant de modifier le paramètre, puis réimportez-les.
Valeurs par défaut de table de données
Nombre de compartiments de la table de données
3
Une table de données peut être divisée en compartiments. Cela permet de distribuer une table de données sur plusieurs noeuds DSE. Il est recommandé de définir une valeur supérieure au nombre de noeuds dans le cluster. Cela permettra de distribuer les données lorsque le nombre de noeuds augmentera en fonction de la charge. Le nombre de lignes attendues dans la table de données doit également être pris en compte. Envisagez de limiter cette valeur à 200 000 lignes par compartiment. Cette configuration constitue la valeur par défaut. Vous pouvez par ailleurs définir le nombre de compartiments par table de données.
* 
Les données risquent d'être inaccessibles via la plateforme si ce paramètre est modifié une fois les données écrites. Si ce paramètre doit être modifié après écriture des données, exportez ces dernières avant de modifier le paramètre, puis réimportez-les.
Paramètres du flux de valeurs
Taille initiale du cache
10000
Taille initiale du cache. Dépend du nombre de sources multiplié par le nombre de propriétés par source.
Taille min. du cache
100000
Taille maximale du cache. Contrôle l'utilisation de la mémoire.
Accès simultané du cache
24
Nombre de threads auxquels vous pouvez accéder en même temps.
Valeurs par défaut du flux de valeurs
Nombre de compartiments source
1000
Les sources peuvent être compartimentées. Le nombre de sources correspond au nombre de requêtes qui doivent être exécutées. Par exemple, si vous disposez de 100 000 sources, ce champ détermine le nombre de compartiments utilisés.
* 
Les données risquent d'être inaccessibles via ThingWorx si ce paramètre est modifié une fois les données écrites. Si ce paramètre doit être modifié après écriture des données, exportez ces dernières avant de modifier le paramètre, puis réimportez-les.
Nombre de compartiments de propriétés
1000
Le nombre de compartiments dépend du nombre de propriétés par flux de valeurs et du modèle de requête. Si des requêtes couvrent plusieurs propriétés, vous obtiendrez de meilleurs résultats en définissant une taille de compartiment inférieure.
Taille de compartiment de temps (heures)
24
Taille des compartiments. Dépend du paramètre de taille des compartiments source. Par exemple, si la taille de compartiment de temps est définie sur 24, les compartiments seront créés toutes les 24 heures.
* 
Les données risquent d'être inaccessibles via la plateforme si ce paramètre est modifié une fois les données écrites. Si ce paramètre doit être modifié après écriture des données, exportez ces dernières avant de modifier le paramètre, puis réimportez-les.
6. Si nécessaire, faites migrer les entités et les données.
7. Surveillez et tenez à jour votre installation de DSE. Les bonnes pratiques pour créer un plan de maintenance efficace sont décrites ici.