Definizione del modello ThingWorx in Composer > Archiviazione dati > Provider di persistenza > Utilizzo di InfluxDB come provider di persistenza
Utilizzo di InfluxDB come provider di persistenza
Panoramica
Se il sistema si occupa in modo intensivo di dati di serie temporali e l'implementazione dipende in larga misura da stream di valori o stream per la persistenza o il recupero di dati, consigliamo di utilizzare InfluxDB come provider di persistenza in ThingWorx. InfluxDB è un archivio dati ad alte prestazioni scritto in modo specifico per i dati di serie temporali. Consente l'inserimento, la compressione e l'interrogazione in tempo reale di throughput elevati degli stessi dati. InfluxDB viene utilizzato come archivio dati per qualsiasi caso d'uso che coinvolga grandi quantità di dati con timestamp, tra cui monitoraggio DevOps, dati di log, metriche di applicazione, dati del sensore IoT e analisi in tempo reale. Fornisce inoltre altre funzionalità tra cui criteri di conservazione dei dati e così via. InfluxDB Enterprise offre disponibilità elevata e una soluzione di clustering altamente scalabile per le esigenze di dati di serie temporali.
I provider archiviazione di persistenza dati InfluxDB sono disponibili nell'ambito dell'installazione di default di PostgreSQL, MSSQL o Azure SQL utilizzato per i provider di proprietà:
InfluxPersistenceProviderPackage
Influx2PersistenceProviderPackage
ThingWorx supporta le versioni OSS, Enterprise e Cloud.
InfluxDB OSS 1.x e InfluxDB Enterprise 1.x. sono supportati tramite InfluxPersistenceProviderPackage. InfluxDB Enterprise è supportato solo con InfluxDB 1.x.
InfluxDB OSS 2.x è supportato tramite Influx2PersistenceProviderPackage.
InfluxDB Cloud è supportato solo tramite Influx2PersistenceProviderPackage.
Per le versioni specifiche supportate, fare riferimento a Release Advisor.
* 
Il provider di dati InfluxDB attualmente supporta solo stream di valori e stream. Il supporto per tabelle dati, wiki e blog non è disponibile.
* 
L'esportazione dei dati è supportata con InfluxPersistenceProviderPackage e Influx2PersistenceProviderPackage.
* 
InfluxDB non è supportato come provider di proprietà.
* 
I clienti che desiderano eseguire l'aggiornamento a ThingWorx 9.3.9 e versioni successive e a ThingWorx 9.4.0 e versioni successive e che utilizzano InfluxDB OSS 2.0, per utilizzare Influx2PersistenceProviderPackage devono innanzitutto eseguire l'aggiornamento a ThingWorx 9.3.8 per passare a InfluxDB OSS v2.6 poiché è richiesta l'esportazione dei dati prima dell'aggiornamento a InfluxDB v2.6. Nel caso di InfluxDB Cloud non è richiesta l'esportazione dei dati prima dell'aggiornamento, quindi non è necessario passare a ThingWorx 9.3.8 prima di eseguire l'aggiornamento a ThingWorx 9.3.9 e versioni successive e a ThingWorx 9.4.0 e versioni successive.
Ambiente di avvio di InfluxDB Enterprise e ThingWorx
* 
Il diagramma sopra riportato include InfluxDB Enterprise. Per InfluxDB open source, il diagramma dell'architettura sarebbe lo stesso, tranne per il fatto che funziona con un solo nodo. Per quanto riguarda InfluxDB Cloud, il database è invece ospitato all'esterno dell'ambiente ThingWorx e gestito dalla società InfluxData.
Di seguito vengono spiegati i termini utilizzati in questa documentazione in riferimento alla configurazione di InfluxDB Enterprise.
Bilanciamento del carico: InfluxDB Enterprise non funziona come bilanciamento del carico. Un amministratore deve configurarlo.
Cluster: un cluster InfluxDB Enterprise comprende due tipi di nodi: metanodi e nodi di dati.
Nodi di dati: sono inclusi tutti i dati delle serie temporali non elaborate. Per la disponibilità elevata, è necessario un fattore di replica pari almeno a due.
Metanodi: questi nodi hanno un compito semplice, ovvero mantenere lo stato coerente. Includono solo informazioni di base che riguardano lo stato, come criteri di conservazione, utenti e database. In un ambiente ad alta disponibilità sono necessari almeno tre metanodi.
Maggiori informazioni sulla disponibilità elevata sono disponibili all'indirizzo https://www.influxdata.com/blog/understanding-influxenterprise-what-is-a-cluster/.
Scelta dell'opzione di database Influx corretta
Di seguito è riportata una panoramica delle due opzioni di InfluxDB attualmente disponibili per i clienti PTC che utilizzano un'installazione locale. Quando si sceglie un prodotto Influx, è necessario considerare attentamente le opzioni software del database e le opzioni di supporto annesse. Per eventuali domande relative alla scelta delle opzioni di database corrette, contattare il servizio di supporto Influx: https://www.influxdata.com/Contact-Sales. I clienti PTC devono identificarsi come utenti di PTC ThingWorx.
InfluxDB open source OSS (nodo singolo)
Solo nodo singolo, non scalabile.
Gratuito
Supporto di Influx disponibile tramite il sito Influx Community nella pagina InfluxData Community Forums.
Opzione non consigliata per le istanze di produzione a causa dei limiti del supporto tecnico Influx (nessun supporto live di Influx per situazioni urgenti).
I clienti PTC sono responsabili per la manutenzione e il monitoraggio del database.
PTC fornirà al meglio consigli in merito al database Influx, sebbene per alcune situazioni possa essere necessario l'intervento delle risorse tecniche di Influx.
InfluxDB Enterprise
InfluxDB Enterprise può apportare i vantaggi elencati di seguito in termini di possibilità di archiviare dati di volumi e velocità maggiori rispetto a quelli attualmente disponibili con altri database.
Maggiore velocità di inserimento dei dati.
Per i dati della fase di esecuzione è possibile utilizzare più repository di dati. Ad esempio è possibile mantenere i dati relazionali in PostgreSQL, mentre si utilizza InfluxDB per i dati di stream di valori e stream dai volumi elevati. Quando si definisce uno stream o uno stream di valori, ThingWorx utilizza il provider dell'archivio dei dati della fase di esecuzione di default, ma può essere configurato per utilizzare qualsiasi provider di persistenza definito. È ancora possibile esportare dati da altri provider di dati e importarli in InfluxDB. ThingWorx gestisce l'astrazione dei dati.
Architettura cloud-friendly (scala orizzontale, solo con InfluxDB Enterprise).
Disponibilità elevata disponibile.
Supporto tecnico Influx disponibile con contratto Influx tramite il sito del supporto tecnico Influx nella pagina InfluxData.
I clienti PTC possono aprire richieste di supporto presso Influx se necessario in funzione della collaborazione PTC/Influx.
I clienti PTC sono responsabili per la manutenzione e il monitoraggio del database.
InfluxDB Cloud (ospitato all'esterno dell'ambiente ThingWorx e gestito dalla società InfluxData)
InfluxDB Cloud offre i seguenti vantaggi:
InfluxDB Cloud è una piattaforma serverless, cloud-native, multi-tenant a scalabilità elastica.
Offre disponibilità, durata e scalabilità in più aree geografiche su AWS, Google e Azure.
È sicuro e protetto con tutte le funzionalità di sicurezza e le patch più recenti installate e configurate.
InfluxDB Cloud riequilibra automaticamente i cluster, gestisce il partizionamento e utilizza i fattori di replica incorporati.
Best practice
Limite di serie
Per serie si intende il numero totale di proprietà per tutti gli oggetti registrate in InfluxDB. InfluxDB funziona bene con un volume di dati elevato diretto a una piccola quantità di oggetti e proprietà di oggetti, ad esempio 10K o 100K. Per default, in InfluxDB il numero di serie totale è limitato a 1 milione. Questo limite può essere aumentato ma, quando il numero di serie lo supera, si ha una riduzione delle prestazioni di InfluxDB.
Se si dispone di molti oggetti e proprietà, è possibile scegliere quelli con il volume di dati più elevato e puntare solo questi a InfluxDB per evitare il sovraccarico in PostgreSQL o MSSQL.
In alternativa, se si desidera dividere la serie su più server, è possibile avere più istanze del provider di dati InfluxDB che puntano a diverse istanze del server InfluxDB.
Limite di scrittura
100K scritture al secondo con una memoria VM da 60 GB con 32 core. Andare oltre questo limite può causare problemi a ThingWorx e può esaurire le risorse necessarie per gestire qualsiasi richiesta o operazione, come scrivere sul database. A quel punto, ThingWorx si blocca mentre InfluxDB continua a scrivere sul database. Questo problema non viene riscontrato con PostgreSQL perché PostgreSQL diventa il collo di bottiglia e ThingWorx non riesce mai ad arrivare al punto di esaurire le risorse necessarie per gestire i task internamente.
SSL/Connessione protetta
InfluxDB supporta connessioni SSL e HTTPS. È possibile attivare queste connessioni per aumentare la protezione, se la rete tra ThingWorx e InfluxDB non è supportata. Un certificato autofirmato è adeguato, se la chiave privata di accesso è conservata in modo sicuro.
Limitazioni note di InfluxDB sui tipi di base delle proprietà
Non è possibile modificare il tipo di base di una proprietà dopo che è stato registrato in uno stream di valori. Per ulteriori informazioni, vedere Type conflict on insert int value in float field #3460.
Eliminazione delle proprietà
Per eliminare le proprietà da InfluxDB, è possibile utilizzare i servizi PurgeAllPropertyHistory, PurgeSelectedPropertyHistory e PurgePropertyHistory. Utilizzare i parametri startDate ed endDate per specificare un intervallo.
* 
L'eliminazione non è supportata quando si utilizza il provider Influx2PersistenceProviderPackage. I servizi PurgePropertyHistory, PurgeAllPropertyHistory e PurgeSelectedPropertyHistory non hanno alcun effetto.
È stato utile?