Agente de extracción de datos
- El agente puede configurarse para que se desencadene cada n minutos. De forma predeterminada, el agente se desencadena cada 10 minutos.
- El agente también puede configurarse para ejecutarse con varias hebras paralelas y varias máquinas virtuales Java (JVM). De forma predeterminada, el agente se ejecuta con 20 hebras.
Debe ejecutar la extracción de datos utilizando solo un único criterio de agente adicional de datos en un servidor de agente dedicado en un momento determinado. No debe ejecutar la extracción de datos con varios criterios de agente al mismo tiempo.
Para obtener más información sobre cómo configurar el agente de extracción de datos para que funcione en los entornos, consulte Configuración de la extracción de datos.
Proceso de extracción de datos
- El agente de extracción de datos hace que la herramienta de extracción se ejecute y lea las configuraciones de tabla de extracción de la base de datos de producción. Se comprueba el estado para cada configuración de tabla válida para determinar de qué tablas es necesario extraer datos. Antes de iniciar el proceso de extracción de datos, si la base de datos de copia de seguridad está inactiva o configurada incorrectamente, la herramienta de extracción muestra un mensaje de aviso.Notas:
- Cuando ejecute la herramienta de extracción por primera vez, y si se visualiza el mensaje de aviso, verifique la configuración de la base de datos de copia de seguridad y vuelva a ejecutar la herramienta de extracción. De lo contrario, espere algún tiempo a que la herramienta de extracción de datos establezca conexión con la base de datos de copia de seguridad.
- La extracción de datos se retrasa cuando la base de datos de copia de seguridad está en modalidad de mantenimiento o reproducción.
Cuando el agente se ejecuta por primera vez, la consulta incluye todos los registros que se han modificado los últimos n días, donde n se especifica mediante el atributo FirstRunExtractInDays que se ha especificado. Cada vez que se ejecuta una consulta después, el agente de extracción considera la hora de inicio como la hora de finalización desde la última vez que se ejecutó la herramienta de extracción para la consulta. La hora de finalización se calcula como la hora actual – 1 hora. El intervalo de 1 hora garantiza que todos los datos que se extraigan se copien en la base de datos de copia de seguridad. El intervalo de 1 hora también garantiza que todos los datos se carguen en la base de datos de copia de seguridad y esta herramienta no está poniendo la carga en el segmento de datos reciente.Nota: De forma predeterminada, el agente utiliza el intervalo de tiempo de 1 hora a menos que se altere temporalmente con un valor de > 1 en la propiedadyfs.yfs.coc.dataextract.fetch.maxhoursold. También puede reducir el valor de 1 hora utilizando la propiedadyfs.yfs.coc.dataextract.fetch.maxminsold. - A continuación, la herramienta de extracción forma consultas basadas en la configuración de tabla.
- La herramienta de extracción se conecta a la base de datos de producción de copia de seguridad y ejecuta la consulta SQL en la base de datos para recuperar los datos que coinciden con los resultados de la consulta. La herramienta de extracción de datos sólo extrae datos de la base de datos de transacciones de copia de seguridad, no de la base de datos de producción primaria. Al extraer los datos de la base de datos de copia de seguridad, el proceso de extracción no tiene ningún impacto sobre el rendimiento de la base de datos primaria.
La herramienta de extracción extrae datos entre las horas de inicio y finalización del proceso de extracción. Estas horas se basan en la indicación de fecha y hora de la última modificación para el último registro extraído de la hora anterior en que se ejecutó el proceso de extracción.
Si la extracción incluye demasiados datos, los datos pueden extraerse en trabajos separados con distintos rangos de hora de inicio y finalización. Para cada configuración de tabla, la herramienta de extracción comprueba la cantidad correspondiente de datos que se van a extraer. A continuación, el agente creará el número necesario de trabajos para extraer los datos.
- La herramienta de extracción escribe los resultados de la consulta en archivos de salida con formato CSV e incluye cada archivo en un archivo comprimido (.zip). Cada archivo de salida tiene el mismo nombre que el correspondiente archivo comprimido para transferir los datos. Los nombres de archivo utilizan el siguiente convenio de denominación:
- taskID__tableName__extractQueryStart_extractQueryEnd_jobNumber_of_totalNumberOfJobs.csv
- taskID
- El ID de la tarea.
- tableName
- El nombre de la tabla de base de datos.
- extractQueryStart
- La indicación de fecha y hora cuando se inicia el proceso de extracción.
- extractQueryEnd
- La indicación de fecha y hora en que se ha completado el proceso de extracción.
- jobNumber_of_totalNumberOfJobs
- El número de serie para el trabajo de extracción de datos en relación con el número total de trabajos de extracción de datos.
- La herramienta de extracción envía los archivos comprimidos en una secuencia al servidor de transferencia de archivos. El archivo no se escribe en el sistema de archivos en un entorno IBM Sterling Order Management System. Cuando se ha procesado el último trabajo, el agente comprueba si la transferencia de archivos se ha completado para todos los archivos de todos los trabajos para cada configuración de tabla que se ejecuta. Si las transferencias se han completado, el agente crea y transfiere un archivo .DONE de cero bytes para cada configuración de tabla.
Formato de archivo de salida
La salida de cada trabajo de extracción de datos se formatea en un archivo con formato CSV.- Valores separados por comas de cada columna que se va a extraer en el mismo orden que se ha definido en el servicio de gestión de configuración
- Ninguna fila de cabecera de nombres de columna
- Cada valor está entre comillas dobles. Las comillas dobles reales dentro de un valor se indican con un carácter de escape mediante otras comillas dobles.
- Se elimina cualquier valor que incluya un carácter de nueva línea, como -remove all.
Escenario de ejecución de ejemplo
Se ha configurado una extracción para ejecutarse para las siguientes condiciones y valores configurados (suponiendo una fecha actual de 6/24/2016):- La frecuencia para la tarea OrderExt y la tabla de base de datos YFS_ORDER_HEADER es 24 horas. La extracción de datos se produce diariamente alrededor de las 8:00.
- Existen 24.000 registros entre las 7:00 del día anterior y las 7:00 del día actual.
- El cálculo de memoria interna limita el proceso de extracción a extraer 7000 registros a la vez.
Los archivos de salida generados se parecen a los archivos siguientes. Cada archivo incluye la indicación de fecha y hora del proceso de extracción dentro del nombre de archivo.
| # | Nombre de archivo | Filas |
|---|---|---|
| 1 | OrderExt__YFS_ORDER_HEADER_20160623050000_20160623070000_1_of_4.zip | 7000 |
| 2 | OrderExt__YFS_ORDER_HEADER_20160623050000_20160623070000_2_of_4.zip | 7000 |
| 3 | OrderExt__YFS_ORDER_HEADER_20160623050000_20160623070000_3_of_4.zip | 7000 |
| 4 | OrderExt__YFS_ORDER_HEADER_20160623050000_20160623070000_4_of_4.zip | 3000 |
| 5 | OrderExt__YFS_ORDER_HEADER_20160623050000_20160623070000.DONE |
Si uno o más archivos de una tabla determinada no se pueden extraer o transferir al servicio de almacenamiento de archivos configurado mientras que otros archivos se extraen o transfieren correctamente, se vuelve a procesar la extracción de tabla completa. Para los archivos que se han extraído y transferido satisfactoriamente, los archivos vuelven a extraerse y transferirse.
Como ejemplo, en este escenario de extracción de ejemplo, si los trabajos 1 y 4 fallan y los trabajos 2, 3 y 5 son satisfactorios, se vuelve a ejecutar todo el proceso. Cuando el proceso se vuelve a ejecutar, los archivos para los cinco trabajos se extraen y transfieren, y los archivos para los trabajos 2, 3 y 5 se vuelven a transferir.
Limpieza de trabajos de extracción de datos
Si está utilizando ampliamente la extracción de datos, la tabla de trabajos de extracción de datos se llena rápidamente. Los datos de esta tabla son útiles para clasificar las extracciones fallidas que se han producido en el pasado. Por lo tanto, no se recomienda suprimir datos del pasado inmediato. Sin embargo, la mayor parte de los datos, que son antiguos, deben limpiarse de la tabla principal para mejorar el rendimiento de las consultas en esta tabla.
Para limpiar la tabla antes de iniciar los trabajos de extracción de datos, puede especificar el número de días durante los cuales se deben suprimir los registros de la tabla estableciendo la propiedad yfs.yfs.coc.dataextract.jobpurge.leadDays .
Esta propiedad no se establece de forma predeterminada, es decir, los registros de trabajo no se borran de forma predeterminada. El valor de esta propiedad debe ser mayor que 120 días.
Si esta propiedad se establece en un valor menor o igual que 120, se genera un error. Los registros de hasta 120 días no se pueden suprimir. Si el proceso de limpieza falla por algún motivo, el proceso de extracción de datos continúa con su tarea principal de extraer datos.