Opzioni di archiviazione dei dati
PTC supporta le opzioni di memorizzazione seguenti.
Provider di modelli
H2
Provider di dati
* 
A partire dalla versione 8.5.0 di ThingWorx Platform, DataStax Enterprise non è più in vendita e non sarà supportato in una release futura. Per ulteriori informazioni, fare riferimento all'articolo relativo al termine della commercializzazione.
H2
H2 è un database relazionale open source con una richiesta ridotta di risorse del disco. È scritto in Java e può essere incorporato nelle applicazioni Java o eseguito in modalità client-server. Fornisce inoltre un'API JDBC. H2 soddisfa i requisiti di entrambi i provider di dati e di modelli di ThingWorx. ThingWorx apre un database H2 persistente (anziché in memoria) in modalità incorporata. Sebbene sia la modalità di connessione più rapida e semplice, il database viene aperto solo all'interno della stessa JVM di Tomcat con l'applicazione Web ThingWorx che utilizza JDBC (i processi esterni non possono connettersi o utilizzare questa istanza del database). Come database persistente, i dati vengono scritti nel disco locale (nella cartella database in ThingworxStorage) e vengono mantenuti dopo il riavvio di ThingWorx.
Fare riferimento a http://www.h2database.com.
Casi di utilizzo tipici
Prove, sistemi di sviluppo, PoC (proof of concept), dispositivi near edge
Strettamente per distribuzioni in un solo server
Limitazioni
H2 non è consigliato per l'uso in produzione a causa della sua natura incorporata.
Scalabilità limitata poiché condivide le risorse (CPU, memoria, disco, ecc.) con l'applicazione.
Compromette la stabilità dell'applicazione nel suo complesso. Ad esempio, se Tomcat si blocca o il processo di Tomcat termina, vengono terminati anche i processi del database, con un possibile danneggiamento dei dati.
È più difficile risolvere i problemi relativi alle prestazioni isolando i colli di bottiglia nel codice dell'applicazione o nel database.
Da un punto di vista amministrativo e operativo può risultare più difficile gestire la visualizzazione dei dati, i backup e il ripristino di emergenza.
Per informazioni sull'utilizzo di H2 come provider di persistenza per ThingWorx, vedere Utilizzo di H2 come provider di persistenza.
PostgreSQL
PostgreSQL è un sistema di gestione di database relazionali di oggetti open source (ORDBMS) con enfasi sull'estendibilità e la conformità agli standard. Come server di database, la funzione principale consiste nel memorizzare i dati in modo sicuro e recuperare i dati su richiesta di altre applicazioni software. Può gestire carichi di lavoro che variano dalle piccole applicazioni utilizzabili da un solo computer alle grandi applicazioni con accesso a Internet con molti utenti simultanei. PostgreSQL offre funzionalità di disponibilità elevata a livello di database. Può essere impostato con un master e più nodi slave nelle zone di disponibilità uguali o diverse.
Per ulteriori informazioni sulle distribuzioni di ThingWorx e PostgreSQL, fare riferimento ai seguenti documenti:
Per ulteriori informazioni su PostgreSQL, fare riferimento al sito https://www.postgresql.org/.
Casi di utilizzo tipici
Il database è scalabile per implementazioni di piccole, medie e grandi dimensioni fino a 15.000 scritture di proprietà al secondo (wps) e fornisce funzionalità di disponibilità elevata.
Microsoft SQL Server (MSSQL)
Microsoft SQL Server (MSSQL) è un sistema gestionale di database relazionali sviluppato da Microsoft. Come server di database, è un prodotto software con la funzione principale di memorizzazione e recupero dei dati in base alle richieste di altre applicazioni software, che possono essere eseguite sullo stesso computer o su un altro computer in una rete (inclusa Internet). Per ulteriori informazioni sulle distribuzioni di ThingWorx e Microsoft SQL Server, fare riferimento a Utilizzo di Microsoft SQL Server come provider di persistenza .
È possibile scegliere tra diverse edizioni di SQL Server per adattare al meglio la soluzione dati. Queste edizioni hanno una dimensione massima del database relazionale che va da un minimo di 10 GB a un massimo di 524 milioni di GB. Per ottenere una disponibilità elevata, si consiglia di utilizzare l'edizione Enterprise.
MSSQL, tramite il provider di persistenza, supporta sia i provider di dati che di modelli.
Per ulteriori informazioni su Microsoft SQL Server, fare riferimento a https://www.microsoft.com/it-it/sql-server/sql-server-2016.
Casi di utilizzo tipici
SQL Server funziona per implementazioni IoT di piccole e grandi dimensioni. Tuttavia viene utilizzato al meglio quando Microsoft SQL/Azure è già presente nello stack IT e il personale ha dimestichezza con l'implementazione di una soluzione MSSQL Server a disponibilità elevata come indicato nell'articolo· SQL Server 2017 scenarios using the availability features.
Database SQL di Azure
Il database SQL di Azure è un database relazionale DBaaS (DataBase as a Service) ospitato nel cloud di Azure ed è un motore di database PaaS (Platform as a Service) completamente gestito. Il motore di database SQL di Azure si basa su SQL Server Enterprise Edition. La piattaforma Azure gestisce completamente tutti i database SQL di Azure e garantisce una perdita di dati pari a zero e un'alta percentuale di disponibilità dei dati. Il database SQL di Azure prevede una disponibilità elevata, il ripristino di emergenza e l'aggiornamento per il database.
Per ulteriori informazioni sul database SQL di Azure e sulle relative funzionalità, fare riferimento a https://docs.microsoft.com/it-it/azure/sql-database/sql-database-paas. Per informazioni sull'utilizzo del database SQL di Azure come provider di persistenza ThingWorx, fare riferimento a Utilizzo del database SQL di Azure come provider di persistenza.
DataStax Enterprise (DSE)
* 
A partire dalla versione 8.5.0 di ThingWorx Platform, DataStax Enterprise non è più in vendita e non sarà supportato in una release futura. Per ulteriori informazioni, fare riferimento all'articolo relativo al termine della commercializzazione.
ThingWorx utilizza anche un provider di archivi di dati di runtime dai volumi elevati, DataStax Enterprise (DSE) con tecnologia Apache Cassandra. DSE consente di inserire i dati a una velocità superiore rispetto alla generazione dei relativi asset e di adattarsi facilmente all'aggiunta di altri dispositivi aggiuntivi (o di qualsiasi altro carico di lavoro). L'utilizzo di DSE come archivio dati di runtime offre una piattaforma di database creata per soddisfare la richiesta di prestazioni e di disponibilità da parte di applicazioni IoT, Web e mobili.
La maggior parte dei database relazionali non è scalabile orizzontalmente e non può funzionare in modalità master/slave. Al contrario, l'architettura clustering senza master peer-to-peer di Cassandra lo rende facilmente e altamente scalabile.
DSE offre una distribuzione di Cassandra completamente testata e convalidata con strumenti di amministrazione e monitoraggio avanzati, integrazione incorporata con Solr per l'indicizzazione e la ricerca e un meccanismo per il supporto e le patch. Ciò coincide direttamente con il modello di archivio dati collegabile che consente ai clienti di disporre di più repository di dati per memorizzare dati di configurazione, di modello e dai volumi elevati. È possibile scegliere il repository di dati che meglio soddisfi i requisiti di una funzione specifica.
DSE è un sistema di database integrato, sempre attivo e a più modelli con analisi in tempo reale e batch che utilizza Apache Spark, tecnologia in memoria, ricerca continua e calcolo del database di grafici. Offre strumenti avanzati per le operazioni in sistemi di sviluppo e di produzione, funzionalità flessibili quali l'archiviazione a più livelli per l'accesso ai dati a breve e a lungo termine, il multi-tenancy per l'esecuzione di diversi cluster di database all'interno dello stesso sistema e la protezione avanzata per soddisfare i requisiti aziendali.
* 
Il componente di ricerca integrato DSE (Apache Solr) dello stack DSE è necessario per il funzionamento di ThingWorx. Di conseguenza, ThingWorx non può essere utilizzato con installazioni open source di Apache Cassandra in cui non sia integrato Apache Solr.
DSE offre i seguenti vantaggi per le piattaforme ThingWorx che necessitano di un archivio dati per volumi più elevati e dati di velocità superiore rispetto a quanto attualmente disponibile in H2 o PostgreSQL.
Fornisce una maggiore velocità di inserimento dei dati.
Supporta più repository di dati per i dati di runtime (mantiene i dati del modello in H2 o PostgreSQL e utilizza DSE per dati di stream dai volumi elevati).
Supporta proprietà di scala elastica. È possibile aggiungere più nodi a un anello DSE per un numero maggiore di transazioni.
Separa i processi dei dati dai processi della piattaforma.
Supporta l'architettura cloud-friendly.
Caso di utilizzo tipico
Un caso di utilizzo tipico è quando sono presenti grandi quantità (superiori a 15.000 wps) di dati transazionali (di runtime) su un carico distribuito.
InfluxDB
Per utilizzare InfluxDB, è necessario disporre di ThingWorx 8.4 o versione successiva. 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, criteri di misurazione 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. L'azienda InfluxDB offre soluzioni di clustering altamente scalabili e a disponibilità elevata per le esigenze di dati di serie temporali.
InfluxPersistenceProviderPackage è disponibile in ThingWorx per essere utilizzato con i provider di persistenza come parte dell'installazione di default per PostgreSQL o MSSQL.
Il provider di dati InfluxDB attualmente supporta solo stream di valori e stream. Il supporto per tabelle dati, wiki e blog non è disponibile.
Il provider di dati InfluxDB attualmente non supporta la funzionalità di esportazione.
InfluxDB non è attualmente supportato come provider di proprietà.
Se si utilizza un'istanza del provider di persistenza (creata utilizzando il package del provider di persistenza InfluxDB) come provider di persistenza di default, è possibile modificare le impostazioni di configurazione delle code di stream e stream di valori, che verranno applicate a tutti gli stream e stream di valori. Non è possibile modificare queste impostazioni per uno stream o uno stream di valori specifico.
Per informazioni sull'utilizzo di InfluxDB come provider di persistenza, vedere Utilizzo di InfluxDB come provider di persistenza.