Prácticas recomendadas de modelo y datos de ThingWorx > Gestión de datos > Partición de datos de tiempo de ejecución
Partición de datos de tiempo de ejecución
Partición de value_stream tabla en PostgreSQL (BETA)
Una tabla value_stream con una gran cantidad de datos puede hacer que las consultas basadas en el tiempo y las operaciones de depuración tarden una cantidad significativa de tiempo debido a los escaneos de tabla resultantes y se sumen a la carga general del servidor. Tener particiones semanales o mensuales y operaciones coincidentes drop-partition agilizaría algunos de estos cuellos de botella actuales.
Para la ingesta de datos a gran escala, utilice la línea de comandos partition_value_stream_by_range_setting para particionar la tabla value_stream a fin de controlar fácilmente los rangos de creación de particiones, como cuándo iniciar o finalizar la creación de particiones y los intervalos de creación de particiones. Esto incluye volver a particionar los datos antiguos y cambiar el tiempo de inicio, finalización o intervalo.
El uso de la línea de comandos partition_value_stream_by_range_setting soporta lo siguiente:
1. Adición de nuevas particiones a una tabla o partición existente con un tiempo de inactividad mínimo.
2. Nueva partición de datos antiguos de una hora específica o de todos los datos. Hacerlo puede llevar algún tiempo.
3. Nueva partición con una configuración de rango diferente.
4. Uso de la partición DEFAULT para almacenar información si los datos no pertenecen a ninguna partición.
Para particionar la tabla value_stream, cree particiones periódicas. Utilice la herramienta del programador de base de datos para asegurarse de que todos los datos inyectados en el futuro entren en las siguientes particiones.
En la línea de comandos partition_value_stream_by_range_setting se incluyen los siguientes parámetros:
Nombre del parámetro
Descripción
Valor por defecto.
Comentario
host
host de base de datos
Obligatorio
port
puerto de base de datos
Obligatorio
database
nombre de la base de datos donde existe la tabla value_stream
Obligatorio
username
usuario de base de datos
Obligatorio
password
contraseña de la base de datos
Obligatorio
partition_start_date
* 
Si los datos proporcionados están en el pasado, esto puede provocar un tiempo de inactividad en función de la cantidad de datos que se deben particionar. Se recomienda ejecutar primero esto en un entorno de prueba y analizar cualquier posible tiempo de inactividad. Si partition_start_date se deja vacío, no habrá tiempo de inactividad.
Permite definir a partir de qué momento desea crear particiones. Puede ser en el pasado o en el futuro.
El último valor de la columna "time" de la tabla value_stream. Si no hay datos, la fecha de inicio es la actual.
Opcional
Formatos posibles:
AAAA-MM-DD
AAAA-MM-DD HH:MM
AAAA-MM-DD HH:MM:SS
AAAA-MM-DD HH:MM:SS.MS
partition_end_date
Permite definir a partir de qué momento desea detener la creación de particiones.
Obligatorio
Formatos posibles:
AAAA-MM-DD
AAAA-MM-DD HH:MM
AAAA-MM-DD HH:MM:SS
AAAA-MM-DD HH:MM:SS.MS
Debe ser en el futuro y, como mínimo, ser mayor que el último valor de la columna "time" más el intervalo. Si no hay datos, debe ser mayor que el intervalo actual +.
partition_interval
Intervalo obligatorio para cada partición
Formatos posibles:
1h u hours
1d o 1day
1 month
1y o 1year
repartition_all_data
Obligatorio
no
Valores posibles:
yes o no
Si = yes (opcional), el script desestimará la fecha de inicio y volverá a particionar todos los datos
Después de ejecutar la línea de comandos, la tabla value_stream se particiona según los parámetros y los datos se insertan en la partición correcta.
Para utilizar la línea de comandos partition_value_stream_by_range_setting, haga lo siguiente:
1. Descargue el script partition_value_stream_by_range_setting.sh. Solicite la ubicación de descarga a support.ptc.com.
2. Copie el script en un servidor conectado a la base de datos de ThingWorx.
3. Abra una línea de comandos y ejecute el comando según sea necesario con los parámetros anteriores.
Por ejemplo, ./partition_value_stream_by_range_setting.sh -host localhost -port 5432 -database thingworx -username DBA -password password -partition_start_date '2024-06-17 00:00:00.000' -partition_end_date '2025-06-17 00:00:00.000' -partition_interval '1 months'
* 
Para evitar que se proporcionen repetidamente determinados parámetros, se puede editar el script y definir los siguientes parámetros: DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD.
4. Conserve las particiones. Por ejemplo, cree un programador para añadir particiones futuras y archivar o borrar las antiguas. Sin embargo, un gran número de particiones puede aumentar significativamente el tiempo de planificación de consultas, por lo que se debe evitar el uso de muchos miles de particiones.
¿Fue esto útil?