Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

A continuación, se explicará el proceso completo que sigue el nuevo componente para la verificación de procesos en su ejecución.

Este verificador se encargara de comprobar distintos procesos y verificar su correcta carga de datos en plataforma.

Ademas de ello nos permitira añadir distintas reglas a estos procesos para un mayor control de los datos insertados, tales como una regla que compruebe la correcta integridad de los datos cargados ( dataExist ), como una que nos permita controlar el nuemero de registros cargados ( volumetry ).

Seguidamente se muestra un diagrama explicativo sobre el funcionamiento de este verificador:


Entidad bitácora:

Esta entidad hace referencia a los procesos que deseamos verificar, en ella debemos tener cierta información de esta además de las reglas que deseamos aplicar.

  • process: en este campo se registrará el nombre del proceso.

  • date: hace referencia al campo del proceso que almacena la fecha de la inserción de información.

  • granularity: frecuencia de los datos insertados.

  • temporality: frecuencia con la que se insertan los datos.

  • day_week: día de la semana en la que se realiza la carga de datos (Lunes = 1, Domingo = 7).

  • day_month: día del mes en el que se realiza la carga de datos.

  • monthly_mismatch: diferencia de meses entre la carga de datos y la información que esta referencia.

  • weekly_mismatch: diferencia de semanas entre la carga de datos y la información que esta referencia.

  • daily_mismatch: diferencia diaria entre la carga de datos y la información que esta refencia.

  • comments: comentarios que podemos añadir sobre el proceso para más información.

  • rules: campo que alberga la definición de las reglas que aplican a cada proceso. Este campo se divide a su vez de la siguiente forma:

type: tipo de regla que aplica para este proceso.

records: registros esperados para este proceso (solo aplica en regla “volumétrica”).

tolerance: tolerancia de registros esperados (solo aplica en regla “volumétrica”).

Entidad Registro:

Esta entidad es en la que dejaremos registro de los procesos y si han superado las distintas reglas que le apliquen.

  • process: nombre del proceso.

  • date: fecha donde se ha realizado la verificación.

  • type: tipo de regla que se ha verificado.

  • detail: información en caso de error en la verificación.

  • status: registro sobre el estado del proceso para cierta regla(“Passed” o “Failed”).


Flujo principal:

Este es el fujo inicial, en el tendremos un “trigger” manual que nos permitirá lanzar el proceso cuando nosotros queramos. Para ello deberemos entrar en el nodo “parametrización manual” y cambiar la fecha a la que nosotros deseemos.

Por lo contrario, este proceso es lanzado dinámicamente por el nodo “trigger dynamic” una vez por día.

En los nodos de parametrización definimos las siguientes variables:

  • fecha: fecha de día de hoy.

  • ont: entidad bitácora de la cual obtendremos la información.

  • ontLog: entidad registro donde insertaremos la información.


Flujo de ejecución de reglas:

Este es el flujo en el que se plantea toda la configuración necesaria antes de verificar las distintas reglas de cada proceso

En el nodo de “parametrización consulta” se lleva a cabo la formación de la query necesaria para obtener la información de cada proceso y almacenarla en la variable “msg.payload”

Con el nodo “payload to JSON” simplemente se transforma la salida de la query a un JSON, mientas que el nodo “split payload” nos separa el este JSON en distintos objetos.

Después de esto se debe realizar la separación de reglas, esto se realizar en el nodo “split rules”, donde creamos una nueva variable ( msg.rule ) que utilizaremos en el siguiente nodo “switch” para separar los objetos y aplicaremos la regla que le aplique.

Después de pasar por el flujo de la regla que se deba aplicar realizaremos la inserción del resultado en la entidad registro.


Reglas:

Después de separar por reglas entramos a la definición de cada una de ellas en sus respectivos flujos. Podremos añadir cuantas reglas deseemos, inicialmente se incluyen estas dos:

Regla dataExist

En esta regla comprobamos la existencia de datos para la granularidad especificada en el proceso, en caso de no existir datos se dará la regla como “Failed” y se dejará reflejado en el campo “detail” un mensaje explicativo del motivo del error.

En el caso contrario la regla quedara como “Passed”.

Regla volumetry

Con esta regla se comprueba el volumen de datos registrados para un proceso en específico. El número de registros esperados y la tolerancia (número porcentual) viene dados dentro de la misma regla.

En caso de recibir un numero de registros que este dentro de los esperados se dará la regla como “Passed”, pero en caso contrario esta quedará como “Failed” y se añadira en el campo “detail” un mensaje explicativo del fallo.


Ejemplo de ejecución

A continuación, mostraremos un ejemplo de la ejecución de este verificador para estos procesos:

Proceso 1:

  • process: Process1

  • date: datetime

  • fromat: yyyy/mm/dd

  • granularity: daily

  • temporality: weekly

  • day_week: 0

  • day_month: 0

  • monthly_mismatch: 0

  • weekly_mismatch: 0

  • daily_mismatch: 0

  • rules:

    • Item 1

      • type: dataExist

    • Item 2

      • type: volumetry

      • records: 336

      • tolerance: 20

Proceso 2:

  • process: Process2

  • date: datetime

  • fromat: yyyy/mm/dd

  • granularity: daily

  • temporality: weekly

  • day_week: 0

  • day_month: 0

  • monthly_mismatch: 0

  • weekly_mismatch: 0

  • daily_mismatch: 0

  • rules:

    • Item 1

      • type: dataExist

    • Item 2

      • type: volumetry

      • records: 1

      • tolerance: 20

Para este caso no existirán datos del proceso 1 el día 14/22/2023, además de ello el total de registros insertados del proceso 2 es 66.

Tras lanzar nuestro verificador de procesos el resultado en la entidad registro será el siguiente:

  • No labels