Definizione del modello ThingWorx in Composer > Archiviazione dati > Provider di persistenza > Utilizzo di DataStax Enterprise come provider di persistenza
Utilizzo di DataStax Enterprise come provider di persistenza
Panoramica
* 
DSE non è più in vendita a partire dalla versione 8.5.0 della piattaforma ThingWorx e in una futura release non sarà più supportato. Per ulteriori informazioni, fare riferimento all'articolo relativo al termine della commercializzazione.
Se il modello richiede la scalabilità di big data, è possibile utilizzare DataStax Enterprise (DSE) come provider di persistenza tramite un'importazione dell'estensione in ThingWorx. L'estensione DsePersistenceProviderPackage.zip viene creata per utilizzare l'edizione DataStax Enterprise di Cassandra (non l'edizione Open Source/Community), nella quale è disponibile il motore di ricerca Solr come offerta integrata. DSE è una piattaforma di big data creata su Apache Cassandra che gestisce dati di ricerca globale, analisi e in tempo reale.
Cassandra è un database NoSQL scalabile open source in grado di gestire grandi quantità di dati su più centri dati e sul cloud. Cassandra garantisce disponibilità continua, scalabilità lineare e semplicità operativa su molti commodity server di prodotti senza singolo punto di errore, nonché un potente modello di dati progettato per fornire la massima flessibilità e tempi di risposta rapidi.
* 
Per iniziare a utilizzare DSE, è necessario registrarsi, quindi installare e configurare DSE. Gran parte di tale processo viene eseguita indipendentemente da ThingWorx ed è qui documentata.
Per pianificare la distribuzione di DataStax Enterprise, è innanzitutto necessario comprenderne l'architettura e, in particolare, le differenze rispetto ai normali database relazionali. Se non si ha familiarità con Cassandra, un valido punto di partenza è rappresentato dai corsi online gratuiti offerti da DataStax Academy. Specificatamente,
Alcune specifiche sono illustrate nella sezione seguente:
Panoramica iniziale di DSE e ThingWorx
Di seguito vengono spiegati i termini utilizzati in questa documentazione in riferimento alla configurazione di DSE.
Nodo - Posizione in cui si memorizzano i dati. È il componente di infrastruttura di base di Cassandra.
Centro dati - Raccolta di nodi correlati. Un centro dati può essere fisico o virtuale. Carichi di lavoro diversi dovrebbero utilizzare centri dati, fisici o virtuali, separati. La replica viene impostata dal centro dati. L'utilizzo di centri dati separati fa sì che le transazioni di Cassandra non siano influenzate da altri carichi di lavoro e mantiene le richieste vicine tra loro in modo da garantire una latenza inferiore. A seconda del fattore di replica, i dati possono essere scritti in più centri dati. I centri dati, tuttavia, non devono mai coprire posizioni fisiche.
Cluster - Un cluster contiene uno o più centri dati. Può coprire posizioni fisiche.
Processo generale per l'implementazione di DSE in ThingWorx
1. Stabilire se DSE è la soluzione adeguata per i dati in uso. Per ulteriori informazioni, fare riferimento alle sezioni sulla pianificazione e sulle dimensioni.
2. Registrare e installare DSE.
Questo processo viene eseguito indipendentemente da ThingWorx. Viene fornito un esempio di distribuzione.
3. Importare l'estensione del provider di persistenza DSE in ThingWorx.
4. Creare un'istanza del provider di persistenza in ThingWorx che connette l'archivio dati di DSE.
5. Configurare le impostazioni per il provider di persistenza in ThingWorx. Nella tabella di seguito sono riportati i dettagli delle impostazioni.
* 
Per gli stream, gli stream di valori e le tabelle dati, è possibile configurare le impostazioni di bucket. Queste impostazioni sostituiscono la configurazione dell'istanza del provider di persistenza di DSE.
Nome
Valore di default
Descrizione
Informazioni di connessione
Host cluster Cassandra
192.168.234.136,192.168.234.136
Indirizzo/i IP per il/i cluster Cassandra. Sono gli indirizzi IP o i nomi host configurati durante l'impostazione di DSE per installare il cluster Cassandra.
Porta cluster Cassandra
9042
La porta del cluster Cassandra configurato durante l'impostazione di DSE per installare il cluster Cassandra.
Nome utente Cassandra
n/d
Facoltativo, a meno che non si desideri attivare l'autenticazione su un cluster. In tal caso, questo campo è obbligatorio.
* 
L'attivazione dell'autenticazione deve essere eseguita nel cluster Cassandra. Per creare un keyspace, l'utente deve disporre del livello di autorizzazione appropriato.
Password Cassandra
n/d
Facoltativo, a meno che non si desideri attivare l'autenticazione su un cluster. In tal caso, questo campo è obbligatorio. Vedere le informazioni riportate in precedenza.
Nome keyspace Cassandra
thingworxnd
La posizione a cui sono indirizzati i dati di ThingWorx. Simile a uno schema in un database relazionale.
* 
Se si sta eseguendo l'aggiornamento dalla versione 1.0 di DsePersistenceProviderPackage.zip, questo campo è obbligatorio.
URL cluster Solr
http://localhost
Se si utilizzano tabelle dati, fornire l'IP o il nome host completo incluso il dominio o l'IP configurato durante l'impostazione di DSE per installare il cluster Cassandra.
Porta cluster Solr
8983
Se si utilizzano tabelle dati, fornire la porta configurata durante l'impostazione di DSE per installare il cluster Cassandra.
Impostazioni keyspace Cassandra
replication = {'class':'NetworkTopologyStrategy', 'Cassandra':1, 'Solr':1}
Dipendente dalla configurazione del cluster Cassandra creata durante l'impostazione di DSE. Definisce principalmente i centri dati utilizzati e i fattori di replica associati (per i dettagli, fare riferimento a http://datastax.com/documentation/cql/3.1/cql/cql_reference/create_keyspace_r.html). Se gli amministratori hanno creato il keyspace manualmente, queste impostazioni devono corrispondere a quelle del keyspace creato manualmente.
Livelli di conformità Cassandra
{'Cluster' : { 'read' : 'ONE', 'write' : 'ONE' }}
I livelli di conformità di lettura e scrittura per il numero di nodi.
* 
Implementare più di un nodo per includere una copia di ridondanza per le scritture. Per ulteriori informazioni, fare riferimento alla pagina Web all'indirizzo http://datastax.com/documentation/cassandra/2.1/cassandra/dml/dml_config _consistency_c.html.
Limite risultati interrogazione CQL
5000
Il limite dei risultati dell'interrogazione Cassandra Query Language specifica il numero di riga restituito quando si esegue l'interrogazione dei dati. Questo valore migliora la stabilità di ThingWorx poiché evita che vengano restituiti insiemi di risultati di grandi dimensioni che causerebbero problemi prestazionali nella piattaforma.
Mantieni connessione attiva
true
Consente di mantenere attive le connessioni al cluster Cassandra, soprattutto attraverso i firewall, dove è possibile che le connessioni inattive vengano interrotte.
* 
Non implementare firewall tra ThingWorx e il cluster Cassandra.
Timeout connessione (millisec)
30000
Timeout della connessione iniziale in millisecondi. Dipende dalla latenza di rete tra ThingWorx e il cluster Cassandra.
Algoritmo di compressione
none
Quando ThingWorx invia dati a un cluster, sono disponibili le tre opzioni riportate di seguito.
Compressione Lz4
Compressione Snappy
Nessuna compressione
Se la larghezza di banda della rete tra ThingWorx e il cluster Cassandra è ridotta, l'utilizzo di una compressione aumenta il throughput.
* 
La compressione utilizza più cicli CPU nella macchina su cui è in esecuzione ThingWorx.
Numero max di tentativi di interrogazione
3
Il numero massimo di tentativi consentito per le interrogazioni. Il valore di default è tre.
Numero min di connessioni locali
4
Numero minimo di connessioni in grado di leggere/scrivere dati.
Numero max di connessioni locali
16
Numero massimo di connessioni in grado di leggere/scrivere dati.
Numero min di connessioni remote
2
Numero minimo di connessioni remote in grado di leggere/scrivere dati.
Numero max di connessioni remote
16
Numero massimo di connessioni remote in grado di leggere/scrivere dati.
Attiva traccia
false
Registrazione. Questa impostazione può essere attivata per il debug.
Numero max di richieste asincrone
1000
Impostazioni stream classico
Dimensione iniziale cache
10000
Dimensione iniziale della cache. Questa impostazione dipende dal numero di origini.
* 
Utilizzare un valore maggiore del numero di origini configurate.
Dimensione massima cache
100000
Dimensione massima della cache. Questa impostazione controlla l'utilizzo della memoria.
Simultaneità cache
24
Numero di thread a cui è possibile accedere contemporaneamente. Il valore minimo deve riflettere l'insieme di valori dell'impostazione Numero max di connessioni remote.
Default stream classico
Numero di bucket origini
1000
Le origini possono essere inserite in bucket. Il numero di origini corrisponde al numero di interrogazioni da eseguire. Ad esempio, se si dispone di 100.000 origini, questo campo specifica il numero di bucket utilizzati.
* 
Se tale impostazione viene modificata dopo la scrittura dei dati, questi ultimi potrebbero non essere accessibili tramite ThingWorx. Se è necessario modificare questo valore dopo la scrittura dei dati, esportare questi ultimi prima di modificare l'impostazione, quindi importarli nuovamente.
Dimensione bucket temporale (ore)
24
Il tempo, espresso in ore, richiesto per creare i bucket. Dipende dall'impostazione della dimensione dei bucket delle origini. Ad esempio, se l'opzione Dimensione bucket temporale viene impostata su 24, i bucket vengono creati ogni 24 ore. L'obiettivo è provare a non superare 2 milioni di coordinate. Quindi, a seconda della frequenza di inserimento dei dati (R per secondo) per stream di valori o stream classico: Dimensione bucket temporale = 2 mil/(R * 60 * 60)
* 
Se tale impostazione viene modificata dopo la scrittura dei dati, questi ultimi potrebbero non essere accessibili tramite ThingWorx. Se è necessario modificare questo valore dopo la scrittura dei dati, esportare questi ultimi prima di modificare l'impostazione, quindi importarli nuovamente.
Default tabella dati
Numero di bucket tabelle dati
3
Una tabella dati può essere divisa in bucket. Ciò consente di distribuire una tabella dati su più nodi DSE. È consigliabile impostare un valore superiore al numero di nodi nel cluster per consentire la distribuzione dei dati quando il numero di nodi aumenta a seconda del carico. L'altro fattore da considerare è il numero di righe previste nella tabella dati. Valutare la possibilità di limitare tale valore a 200.000 righe per bucket. In questo caso, l'impostazione è quella di default. È possibile specificare il numero di bucket per tabella dati.
* 
Se tale impostazione viene modificata dopo la scrittura dei dati, questi ultimi potrebbero non essere accessibili tramite la piattaforma. Se è necessario modificare questo valore dopo la scrittura dei dati, esportare questi ultimi prima di modificare l'impostazione, quindi importarli nuovamente.
Impostazioni stream valori
Dimensione iniziale cache
10000
Dimensione iniziale della cache. Questa impostazione dipende dal numero di origini moltiplicato per il numero di proprietà per origine.
Dimensione massima cache
100000
Dimensione massima della cache. Questa impostazione controlla l'utilizzo della memoria.
Simultaneità cache
24
Numero di thread a cui è possibile accedere contemporaneamente.
Default stream valori
Numero di bucket origini
1000
Le origini possono essere inserite in bucket. Il numero di origini corrisponde al numero di interrogazioni da eseguire. Ad esempio, se si dispone di 100.000 origini, questo campo specifica il numero di bucket utilizzati.
* 
Se tale impostazione viene modificata dopo la scrittura dei dati, questi ultimi potrebbero non essere accessibili tramite ThingWorx. Se è necessario modificare questo valore dopo la scrittura dei dati, esportare questi ultimi prima di modificare l'impostazione, quindi importarli nuovamente.
Numero di bucket proprietà
1000
Il numero di bucket dipende dal numero di proprietà per stream di valori e dallo schema delle interrogazioni. Se sono presenti interrogazioni che si estendono su più proprietà, una dimensione inferiore di bucket produce le migliori prestazioni.
Dimensione bucket temporale (ore)
24
Dimensione del/dei bucket. Dipende dall'impostazione della dimensione dei bucket delle origini. Ad esempio, se l'opzione Dimensione bucket temporale viene impostata su 24, i bucket vengono creati ogni 24 ore.
* 
Se tale impostazione viene modificata dopo la scrittura dei dati, questi ultimi potrebbero non essere accessibili tramite la piattaforma. Se è necessario modificare questo valore dopo la scrittura dei dati, esportare questi ultimi prima di modificare l'impostazione, quindi importarli nuovamente.
6. Se necessario, eseguire la migrazione delle entità e dei dati.
7. Monitorare e gestire l'implementazione di DSE. Le best practice per la creazione di un corretto piano di manutenzione sono descritte in questa documentazione.