Definición del modelo de ThingWorx en Composer > Almacenamiento de datos > Proveedores de persistencia > Utilización de PostgreSQL como proveedor de persistencia
Utilización de PostgreSQL como proveedor de persistencia
PostgreSQL es un sistema de base de datos relacional de objetos de código abierto. El proveedor de persistencia PostgreSQL soporta ambos proveedores, de modelos y de datos.
* 
Los pasos iniciales en PostgreSQL requieren el registro, la instalación y la configuración. La mayor parte de este proceso se realiza con independencia de ThingWorx y está documentado en Instalación de ThingWorx.
PostgreSQL HA
También se puede utilizar PostgreSQL High Availability (HA) como parte de la solución de datos. HA ofrece la opción de configurar servidores independientes para capturar lecturas y escrituras de datos en caso de fallo en el servidor de bases de datos. Si HA forma parte de la implementación de PostgreSQL, consulte las secciones adecuadas del manual para ver los detalles recomendados para la instalación y la implementación.
Proceso de nivel superior para la implementación de PostgreSQL
1. Determine si PostgreSQL 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. Descargue e instale PostgreSQL. Este proceso se realiza con independencia de ThingWorx. Se proporciona un ejemplo de implementación en el manual.
* 
En la implementación estándar de PostgreSQL se incluye un proveedor de persistencia, que no se puede editar en ThingWorx. Sin embargo, se puede editar mediante platform-settings.json o servicios.
3. Si desea crear instancias adicionales de proveedor de persistencia en ThingWorx que se vayan a conectar al almacén de datos PostgreSQL, vaya a Almacenamiento de datos > Proveedores de persistencia y pulse en el signo más verde (+).
4. En la pantalla Información general, introduzca un nombre para el proveedor de persistencia.
5. En el campo Paquete de proveedor de persistencia, utilice la varita mágica para seleccionar el paquete de proveedor de persistencia PostgreSQL.
6. Pulse en Configuración y configure las siguientes opciones:
Se pueden editar las siguientes opciones de cola de flujo y de flujo de valor, que se aplicarán a todos los flujos y flujos de valor. No se puede cambiar esta configuración para un flujo o un flujo de valor específico.
Configuración del procesador de flujos
Tipo base
Por defecto
Notas
Tamaño máximo de cola
Número
250000
Número máximo de entradas de flujo para la cola.Cuando se alcanza el valor especificado, las entradas posteriores se rechazarán.
Tiempo de espera máximo para vaciar el búfer de flujo (milisegundos)
Número
2000
Número de milisegundos que el sistema espera antes de vaciar el búfer de flujo.
Número de subprocesos de procesamiento
Número
5
El número de subprocesos de procesamiento asignados al flujo.
Número máximo de elementos para vaciar el búfer de flujo
Número
500
Número máximo de elementos que se pueden acumular antes de vaciar el búfer de flujo.
Número máximo de escrituras de flujo por bloque de proceso
Número
2500
Número máximo de escrituras de flujo para procesar en un bloque.
Velocidad de lectura de estado de búfer (milisegundos)
Número
5
El estado de búfer se verifica con el valor de velocidad especificado en milisegundos.
Configuración de procesador de flujo de valor
Tipo base
Por defecto
Notas
Tamaño máximo de cola
Número
250000
Número máximo de entradas de flujo de valor para la cola.Cuando se alcanza el valor especificado, las entradas posteriores se rechazarán.
Tiempo de espera máximo para vaciar el búfer de flujo de valores (milisegundos)
Número
2000
Número de milisegundos que el sistema espera antes de vaciar el búfer de flujo de valor.
Número de subprocesos de procesamiento
Número
5
Número de subprocesos de procesamiento asignados al flujo de valor.
Número máximo de elementos para vaciar el búfer de valores
Número
500
Número máximo de elementos que se pueden acumular antes de vaciar el búfer de flujo de valor.
Número máximo de escrituras de flujo de valores por bloque de proceso
Número
2500
Número máximo de escrituras de flujo de valores para procesar en un bloque.
Velocidad de lectura de estado de búfer (milisegundos)
Número
5
El estado de búfer se verifica con el valor de velocidad especificado en milisegundos.
Información de conexión necesaria para conectarse a PostgreSQL.
Nombre
Valor por defecto
Notas
URL de JDBC
jdbc:postgresql://localhost:5432/thingworx
El URL de JDBC de la base de datos de la que se deben adquirir las conexiones. Se pueden especificar varios esquemas en este URL.
Nombre de usuario
thingworx
Nombre de usuario que se utiliza para adquirir una conexión de base de datos.
Contraseña
n/d
Contraseña que se utiliza para adquirir una conexión de base de datos.
Tamaño de agrupación de conexión inicial
5
Número de conexiones que una agrupación intentará adquirir en el inicio.
Incremento de adquisición de conexión
5
Permite determinar cuántas conexiones se adquirirán cuando se agote la agrupación.
Tamaño máximo de agrupación de conexión
100
El número máximo de conexiones que una agrupación mantiene en un momento dado.
Tamaño mínimo de agrupación de conexión
5
El número mínimo de conexiones que una agrupación mantiene en un momento dado.
Número máximo de instrucciones en caché
100
Tamaño de la caché PreparedStatement global.
Clase del controlador
org.postgresql.Driver
Clase del controlador JDBC de la base de datos.
Intentos de reintento de adquisición
3
Permite definir cuántas veces la agrupación de conexión intentará adquirir una nueva conexión.
Demora de reintento de adquisición
10000
Tiempo en milisegundos que la agrupación de conexión esperará entre intentos de adquisición.
Tiempo de espera de reintentos de extracción
1000000
El número de milisegundos que un cliente que llama a getConnection esperará a que se archive o adquiera una conexión cuando la agrupación se agote.
Tiempo de inactividad máximo
0
Segundos que una conexión puede permanecer en la agrupación, pero sin utilizar, antes de que se descarte. Cero significa que las conexiones inactivas nunca vencen.
Duración máxima de conexión
0
Las conexiones con una duración mayor que este tiempo, en segundos, se destruirán y depurarán de la agrupación. Cero significa que no se aplica ninguna duración máxima.
Número de subprocesos auxiliares
8
Generalmente, las operaciones JDBC lentas las realizan subprocesos auxiliares que no contienen bloqueos de contención. La distribución de estas operaciones en varios subprocesos puede mejorar significativamente el rendimiento, ya que permitirá que varias operaciones se realicen simultáneamente.
Tiempo de espera de conexiones no devueltas
0
Si la aplicación adquiere una conexión, pero no puede cerrarla dentro del período de tiempo especificado, en segundos, la agrupación destruirá la conexión. Cero significa ningún tiempo de espera y se espera que las aplicaciones cierren sus propias conexiones.
Tiempo de inactividad máximo para conexiones en exceso
300
Número de segundos que debe permitirse que las conexiones en exceso de minPoolSize permanezcan inactivas en la agrupación antes de que se destruyan. Cero significa que no hay ninguna imposición y que las conexiones en exceso no se destruyen.
7. En caso necesario, migre las entidades y los datos.
8. Supervise y mantenga la implementación PostgreSQL. Las prácticas recomendadas para crear un plan de mantenimiento correcto se describen en el manual.