Definición del modelo de ThingWorx en Composer > Almacenamiento de datos > Proveedores de persistencia > Utilización de DataStax Enterprise como proveedor de persistencia
Utilización de DataStax Enterprise como proveedor de persistencia
Información general
* 
A partir de la versión 8.5.0 de ThingWorx Platform, DSE ya no está disponible para la venta y no se soportará en una versión futura. Para obtener más información, consulte el artículo End of Sale.
Si el modelo requiere escalabilidad de Big Data, se puede utilizar DataStax Enterprise (DSE) como proveedor de persistencia mediante una importación de extensión en ThingWorx. La extensión DsePersistenceProviderPackage.zip se ha creado para utilizar la edición de Cassandra de DataStax Enterprise (no la edición Open Source/Community), que tiene el motor de búsqueda Solr como oferta integrada. DSE es una plataforma de Big Data creada sobre Apache Cassandra que gestiona los datos de tiempo real, análisis y búsqueda global.
Cassandra es una base de datos NoSQL de código abierto escalable que puede gestionar grandes cantidades de datos entre varios centros de datos y la nube. Cassandra ofrece disponibilidad continua, escalabilidad lineal y simplicidad operativa a través de muchos servidores empresariales sin un punto único de fallo, junto con un modelo de datos potente diseñado para máxima flexibilidad y tiempos de respuesta rápidos.
* 
Los pasos iniciales en DSE requieren el registro, la instalación y la configuración de DSE. La mayor parte de este proceso se realiza independientemente de ThingWorx y se documenta aquí.
La planificación de la implementación de DataStax Enterprise debe comenzar con la comprensión de su arquitectura y, en concreto, de las diferencias con respecto a las bases de datos relacionales normales. Si el usuario es nuevo en Cassandra, un buen punto de partida es el curso gratuito en línea que ofrece DataStax Academy. Específicamente,
En la siguiente sección se guiará al usuario a través de algunos de los elementos específicos:
Entorno de inicio de DSE y ThingWorx
En esta documentación se utilizan los siguientes términos cuando se hace referencia a la configuración de DSE:
Nodo: donde se almacenan los datos. Es el componente básico de la infraestructura de Cassandra.
Centro de datos: una recopilación de nodos relacionados. Un centro de datos puede ser un centro de datos físico o un centro de datos virtual. Las diferentes cargas de trabajo deben utilizar centros de datos independientes, ya sean físicos o virtuales. El centro de datos define la replicación. El uso de centros de datos independientes impide que las transacciones de Cassandra se vean afectadas por otras cargas de trabajo y mantiene las solicitudes cercanas entre sí para que la latencia sea inferior. En función del factor de replicación, los datos se pueden escribir en varios centros de datos. Sin embargo, los centros de datos nunca deben abarcar ubicaciones físicas.
Clúster: un clúster contiene uno o más centros de datos. Puede abarcar posiciones físicas.
Proceso de nivel superior para la implementación DSE en ThingWorx
1. Determine si DSE es la solución correcta para los datos. Consulte las secciones sobre el tamaño y la planificación para obtener información adicional.
2. Registre e instale DSE.
Este proceso se realiza con independencia de ThingWorx. Se proporciona un ejemplo de implementación.
3. Importe la extensión de proveedor de persistencia DSE a ThingWorx.
4. Cree una instancia de proveedor de persistencia en ThingWorx que se conectará al almacén de datos DSE.
5. Configure las opciones del proveedor de persistencia en ThingWorx. En la siguiente tabla se proporcionan los detalles de configuración.
* 
Para los flujos, los flujos de valor y las tablas de datos, se pueden configurar opciones de bucket. Estas opciones sustituyen la configuración de la instancia de proveedor de persistencia DSE.
Nombre
Valor por defecto
Descripción
Información de conexión
Hosts de clúster Cassandra
192.168.234.136,192.168.234.136
Direcciones IP para los clústeres Cassandra. Se trata de las direcciones IP o los nombres de host configurados durante la configuración de DSE para instalar el clúster Cassandra.
Puerto de clúster Cassandra
9042
El puerto para el clúster Cassandra configurado durante la configuración de DSE para instalar el clúster Cassandra.
Nombre de usuario de Cassandra
n/d
Opcional, a menos que desee activar la autenticación en un clúster. En ese caso, este campo es obligatorio.
* 
La activación de la autenticación debe efectuarse en el clúster Cassandra. El usuario requiere el nivel de autorización adecuado para crear un espacio de clave.
Contraseña de Cassandra
n/d
Opcional, a menos que desee activar la autenticación en un clúster. En ese caso, este campo es obligatorio. (Consulte más arriba).
Nombre de espacio de claves de Cassandra
thingworxnd
La ubicación a la que los datos de ThingWorx apuntan. Similar a un esquema en una base de datos relacional.
* 
Si se actualiza desde la versión 1.0 de DsePersistenceProviderPackage.zip, este campo es obligatorio.
URL de clúster de Solr
http://localhost
Si se utilizan tablas de datos, proporcione la dirección IP, el nombre de host completo incluido el dominio o dirección la IP configurada durante la configuración de DSE para instalar el clúster Cassandra.
Puerto de clúster de Solr
8983
Si se utilizan tablas de datos, proporcione el puerto configurado durante la configuración de DSE para instalar el clúster Cassandra.
Configuración de espacio de claves de Cassandra
replication = {'class':'NetworkTopologyStrategy', 'Cassandra':1, 'Solr':1}
Depende de la configuración de clúster Cassandra creada durante la configuración de DSE. Principalmente se definen los centros de datos utilizados y los factores de replicación asociados (consulte http://datastax.com/documentation/cql/3.1/cql/cql_reference/create_keyspace_r.html para ver los detalles). Si los administradores han creado manualmente el espacio de claves, esta configuración debe coincidir con la configuración de espacio de clave creada manualmente.
Niveles de coherencia de Cassandra
{'Cluster' : { 'read' : 'ONE', 'write' : 'ONE' }}
Niveles de coherencia de lectura y escritura para el número de nodos.
* 
Implemente más de un nodo para incluir una copia de redundancia para las escrituras. Para obtener más información, consulte http://datastax.com/documentation/cassandra/2.1/cassandra/dml/dml_config _consistency_c.html.
Número máximo de resultados en una consulta CQL
5000
El número máximo de resultados de consulta de lenguaje de consulta Cassandra especifica el número de filas que se devuelve al consultar datos. De este modo, se mejora la estabilidad de ThingWorx ya que no permite que se devuelvan conjuntos de resultados de gran tamaño que provocarían problemas de rendimiento en la plataforma.
Mantener conexiones activas
true
Ayuda a mantener activas las conexiones con el clúster Cassandra, especialmente a través de barreras de seguridad, donde se pueden abandonar conexiones inactivas.
* 
No implemente barreras de seguridad entre ThingWorx y el clúster Cassandra.
Tiempo de espera de conexión (milisegundos)
30000
Tiempo de espera de conexión inicial en milisegundos. Depende de la latencia de red entre ThingWorx y el clúster Cassandra.
Algoritmo de compresión
none
Cuando ThingWorx envía datos a un clúster, existen tres opciones:
Compresión Lz4
Compresión Snappy
Sin compresión
Si el ancho de banda de red entre ThingWorx y el clúster Cassandra es bajo, el uso de una compresión aumentará el rendimiento.
* 
La compresión consumirá más ciclos de CPU en el ordenador que ejecuta ThingWorx.
Número máximo de reintentos de consultas
3
El número máximo de reintentos activados para las consultas. El valor por defecto es tres.
Número mínimo de conexiones locales
4
El número mínimo de conexiones que pueden leer/escribir datos.
Número máximo de conexiones locales
16
El número máximo de conexiones que pueden leer/escribir datos.
Conexiones principales remotas
2
El número mínimo de conexiones remotas que pueden leer/escribir datos.
Número máximo de conexiones remotas
16
El número máximo de conexiones remotas que pueden leer/escribir datos.
Activar seguimiento
false
Registro: se puede activar para la depuración.
Número máximo de solicitudes asíncronas
1000
Configuración de flujo clásico
Tamaño inicial de la caché
10000
El tamaño inicial de la caché. Depende del número de orígenes.
* 
Utilice más que el número de orígenes configurados.
Tamaño máximo de la caché
100000
El tamaño máximo de la caché. Permite controlar el uso de memoria.
Nivel de simultaneidad de caché
24
El número de subprocesos a los que se puede acceder al mismo tiempo. El valor mínimo debe reflejar el valor definido para el número máximo de conexiones remotas.
Valores por defecto de flujo clásico
Número de buckets de origen
1000
Los orígenes se pueden colocar en buckets. El número de orígenes es igual al número de consultas que se deben ejecutar. Por ejemplo, si hay 100.000 orígenes, este campo permite determinar el número de buckets que se utilizan.
* 
Es posible que los datos no sean accesibles a través de ThingWorx si se cambia esta configuración después de escribir datos. Si se necesita cambiar después de escribir datos, exporte los datos antes de cambiar esta configuración y luego vuelva a importarlos.
Número de buckets por período de tiempo (horas)
24
El tiempo (en horas) para crear buckets. Depende de cómo esté configurado el tamaño de bucket de origen. Por ejemplo, si el tamaño de bucket de tiempo se define en 24, los buckets se crearán cada 24 horas. El objetivo es intentar no superar los 2 millones de puntos de datos. Por lo tanto, en función de la velocidad de ingestión de datos (R por segundo) por flujo de valor o flujo clásico: tamaño de bucket de tiempo = 2 mil/(* R 60 * 60)
* 
Es posible que los datos no sean accesibles a través de ThingWorx si se cambia esta configuración después de escribir datos. Si se necesita cambiar después de escribir datos, exporte los datos antes de cambiar esta configuración y luego vuelva a importarlos.
Valores por defecto de tabla de datos
Número de buckets de tablas de datos
3
Una tabla de datos se puede dividir en buckets. De este modo, una tabla de datos se puede distribuir entre todos los nodos DSE. Se recomienda un valor superior al número de nodos del clúster para permitir la distribución de datos cuando aumente el número de nodos en función de la carga. Otro factor que se debe tener en cuenta es el número de filas esperadas en la tabla de datos. Tome en consideración la limitación a 200.000 filas por bucket. Esta configuración es el valor por defecto. Se puede especificar el número de buckets por tabla de datos.
* 
Es posible que los datos no sean accesibles a través de la plataforma si se cambia esta configuración después de escribir datos. Si se necesita cambiar después de escribir datos, exporte los datos antes de cambiar esta configuración y luego vuelva a importarlos.
Configuración de flujo de valores
Tamaño inicial de la caché
10000
El tamaño inicial de la caché. Depende del número de orígenes multiplicado por el número de propiedades por origen.
Tamaño máximo de la caché
100000
El tamaño máximo de la caché. Permite controlar el uso de memoria.
Nivel de simultaneidad de caché
24
El número de subprocesos a los que se puede acceder al mismo tiempo.
Valores por defecto de flujo de valores
Número de buckets de origen
1000
Los orígenes se pueden colocar en buckets. El número de orígenes es igual al número de consultas que se deben ejecutar. Por ejemplo, si hay 100.000 orígenes, este campo permite determinar el número de buckets que se utilizan.
* 
Es posible que los datos no sean accesibles a través de ThingWorx si se cambia esta configuración después de escribir datos. Si se necesita cambiar después de escribir datos, exporte los datos antes de cambiar esta configuración y luego vuelva a importarlos.
Número de buckets de propiedades
1000
El número de buckets depende del número de propiedades por flujo de valor y el patrón de la consulta. Si hay consultas que se extienden entre todas las propiedades, un tamaño menor de bucket ofrecerá el mejor rendimiento.
Número de buckets por período de tiempo (horas)
24
El tamaño de los buckets. Depende de cómo esté configurado el tamaño de bucket de origen. Por ejemplo, si el tamaño de bucket de tiempo se define en 24, los buckets se crearán cada 24 horas.
* 
Es posible que los datos no sean accesibles a través de la plataforma si se cambia esta configuración después de escribir datos. Si se necesita cambiar después de escribir datos, exporte los datos antes de cambiar esta configuración y luego vuelva a importarlos.
6. En caso necesario, migre las entidades y los datos.
7. Supervise y mantenga la implementación DSE. Las prácticas recomendadas para crear un plan de mantenimiento correcto se describen a continuación.