Exportación de datos generalizada
El método de exportación de datos generalizada permite una exportación basada en ficheros de los datos en formato JSON. La exportación de datos de un objeto de mantenimiento con este método implica una exportación inicial de todos los datos de una entidad, seguida de una exportación en curso de los cambios efectuados a lo largo del tiempo. Estos procesos se ilustran en el siguiente diagrama:
-
Activar entidades para la exportación en el portal Panel de control de exportación generalizada. Puede activar varias entidades a la vez. Este paso también permite activar la exportación en curso de estas entidades.
-
Ejecutar el proceso por lotes Iniciador de exportación inicial generalizada (F1-GEXPI) para exportar el contenido actual de todas las entidades activadas. Este paso ejecuta un proceso por lotes independiente para cada entidad activada para exportación.
-
Programar el proceso por lotes Exportación en curso generalizada (F1-GEEXO) para que se ejecute de forma periódica.
En las secciones siguientes se describen con mayor detalle los conceptos y directrices relacionados con el método de exportación de datos generalizada.
Elegibilidad
-
La entidad gestiona volúmenes de datos extremadamente grandes. El seguimiento de los cambios en estas entidades doblará el volumen de los datos gestionados y afectará al rendimiento general.
-
La entidad se actualiza con mucha frecuencia. El seguimiento de estos eventos puede tener impacto en el rendimiento general.
-
La infraestructura y los procesos operativos del producto utilizan la entidad. Estas entidades se mantienen de forma diferente y no pueden estar sujetas a los métodos de exportación de datos generalizada.
Por defecto, un objeto de mantenimiento es elegible para el método de exportación de datos generalizada, salvo que se marque de forma explícita lo contrario en la opción Clase de exportación de datos. La opción se puede utilizar para marcar una entidad de forma que no permita ningún tipo de exportación o que permita exclusivamente una exportación especializada. La falta de esta opción explícita implica que el objeto de mantenimiento es elegible para la exportación generalizada.
Un método se ajusta a todo
El método de exportación de datos generalizada está diseñado para dar cabida a muchos objetos de mantenimiento elegibles de una forma genérica, que también debe tener en cuenta las consideraciones de rendimiento. Por este motivo, el método no soporta las opciones de filtrado específicas para entidades ni las reglas personalizadas de ningún tipo.
-
Se exportan todos los datos.
-
Todos los campos de todas las tablas pertenecientes al objeto de mantenimiento se exportarán, salvo en el caso de las tablas de "clave" y de "log", si existen.
-
Las tablas de logs de objetos de mantenimiento no suelen contener información de negocio útil y, por eso, se omiten de la exportación por motivos de rendimiento y volumen de datos. Sin embargo, hay entidades para las que los registros de log proporcionan un valor analítico. Cuando proceda, utilice la opción Exportar tablas de logs para incluir explícitamente tablas de logs para un objeto de mantenimiento específico.
-
-
Se utilizan la misma estructura de datos y el mismo formato para todas las entidades. Para obtener más información, consulte la sección Formato de registro.
-
Los datos se exportan solo a ficheros. Para obtener más información, consulte Exportación exclusiva a ficheros.
-
Todos los cambios se capturan. No se pueden excluir determinados cambios del seguimiento para una exportación en curso, según las reglas de negocio personalizadas.
-
Cuando cambian los datos, se realiza una instantánea completa de los datos relacionados con dicha entidad para evitar la fusión de datos pesados en destino.
-
Cuando se suprime la entidad, solo se exporta la clave primaria de la entidad, junto con una indicación de que se ha suprimido.
Exportación exclusiva a ficheros
El destino inmediato de los procesos de exportación, tanto inicial como en curso, son los ficheros de una ubicación especificada por el cliente. En una instalación en la nube, los ficheros se crean en un almacenamiento de objeto propiedad del cliente.
Según las necesidades de negocio, podrá consumir estos ficheros posteriormente mediante aplicaciones descendentes como, por ejemplo, lagos de datos, etcétera.
Activación de exportación de datos
Para activar la exportación de datos de un objeto de mantenimiento elegible, deberá crearse un registro de Control de exportación de datos. Este registro conserva una indicación que señala si ha finalizado o no la exportación inicial del objeto de mantenimiento y si los cambios efectuados en la entidad deben someterse a seguimiento y exportarse de forma continua. Un portal designado permitirá activar la exportación de datos generalizada para muchos objetos de mantenimiento a la vez, así como supervisar el estado de exportación actual mediante una consulta rápida. Para obtener más información, consulte Panel de control de exportación generalizada.
Las opciones de exportación en curso se almacenan en distintas memorias caché en línea o por lotes. Para que estas opciones tengan efecto y para realizar el seguimiento de los cambios de entidad efectuados por cualquier proceso en línea o por lotes, las distintas memorias caché deben vaciarse correctamente cuando se modifican estas opciones. El uso de los portales designados para activar las entidades para exportación dispara un vaciado 'global' de las memorias caché. Si los trabajadores de grupos de threads de lotes están configurados para refrescar sus cachés cuando se solicita un vaciado global, entonces este es el único paso necesario. De lo contrario, debería ejecutarse también la tarea por lotes F1–FLUSH con el fin de refrescar los cachés utilizados para el procesamiento por lotes. Consulte Visión general del almacenamiento en caché para obtener más información.
Exportación inicial de datos
Cada objeto de mantenimiento elegible para el método de exportación de datos generalizada está asociado a un control de lotes de exportación de datos inicial, al que se hace referencia en el objeto de mantenimiento mediante la opción Control de lotes de exportación. El mismo programa por lotes común se utiliza en todos los controles de lote para exportar todos los datos de una entidad a los ficheros. El proceso tiene varios threads y, por defecto, genera un fichero por thread. Un parámetro por lotes opcional permite la generación de varios ficheros de menor tamaño por thread, definiendo un límite del número de registros que se puede escribir en cada fichero. Para obtener más información, consulte Tamaño de fichero.
En lugar de ejecutar de forma manual el proceso por lotes de exportación inicial generalizada para cada objeto de mantenimiento activado para la exportación, ejecute el proceso por lotes de Iniciador de exportación inicial generalizada, F1-GEXPI, para ejecutarlos todos a la vez de forma automática.
El proceso de exportación inicial de cada objeto de mantenimiento actualiza el registro de control de exportación de datos correspondiente para que el objeto de mantenimiento indique que el proceso se ha iniciado, y lo actualiza de nuevo tras la finalización. De esta forma, el usuario puede ver el estado global de la exportación inicial en todas las entidades activadas del portal Panel de control de exportación generalizada.
Debe tener en cuenta que el proceso por lotes del iniciador solo ejecuta los procesos por lotes de objetos de mantenimiento activados que, según el registro de control de exportación de datos, aún no han iniciado su exportación inicial. Si necesita exportar de nuevo una o más entidades, restablezca la indicación de estado de exportación inicial en los registros de control de exportación de datos y ejecute de nuevo el proceso por lotes del iniciador.
INIT_EXPORT[_file prefix(optional)]_[maintenance object]_[batch run]_[thread]_[thread count]_[timestamp][_file sequence].json.gz
La parte de "secuencia de fichero" del nombre del fichero solo se utiliza cuando se ha creado más de un fichero por thread. El sufijo de secuencia se rellena de la siguiente manera, empezando desde el segundo fichero, _2.Para obtener más información, consulte cualquiera de los controles de lotes individuales de exportación inicial generalizada y el control de lotes del iniciador.
Restricción de la exportación inicial por fecha
Por defecto, el proceso por lotes de exportación de datos iniciales exporta todos los datos de una entidad. En algunas situaciones, generalmente con datos históricos de gran volumen, es posible que se necesite restringir la exportación a los datos más recientes, por ejemplo, los de los últimos meses.
El proceso por lotes de exportación inicial soporta un parámetro de lote opcional Restringir por fecha que se puede utilizar para limitar el ámbito de los datos que se van a exportar. El parámetro hace referencia a un campo de fecha y a un marco temporal solicitado en términos de número de días antes de la fecha hábil. Consulte el control de lotes F1-GEIXP Plantilla Exportación inicial generalizada para obtener más información.
Exportación de datos en curso
El seguimiento de los cambios de datos se realiza en el algoritmo de auditoría de objeto de mantenimiento Capturar cambio para exportación en curso (F1-MO-REGCHN). El algoritmo registra la clave primaria de una entidad modificada en una tabla de actualización de exportación de datos designada, que sirve como cola de las entidades modificadas para exportar. Posteriormente, la cola se consume en el proceso por lotes de exportación de datos en curso.
La regla de auditoría se añade a un objeto de mantenimiento cuando la opción de exportación de datos en curso en el registro de control de exportación de datos correspondiente está activada. Del mismo modo, la regla de auditoría se elimina del objeto de mantenimiento cuando se desactiva la opción de exportación en curso.
Al contrario de lo que sucede con el proceso por lotes de exportación inicial, que necesita que se defina un control de lotes para cada objeto de mantenimiento elegible, se utiliza un único proceso por lotes para exportar los cambios en curso que se realizan en todas las entidades.
-
Todos los cambios en cola de la tabla Actualización de exportación de datos se exportan a un fichero de exportación en curso designado. Para obtener más información, consulte la sección Gestión de grandes atrasos.
-
Se exporta una instantánea completa de los datos relacionados con la entidad modificada para evitar la fusión de datos pesados en destino.
-
Una vez exportados, los registros se suprimen de la tabla de actualización de exportación de datos.
El proceso incluye varios threads y, por defecto, se genera un fichero independiente para cada uno. Un parámetro por lotes opcional permite la generación de varios ficheros de menor tamaño por thread, definiendo un límite del número de registros que se puede escribir en cada fichero. Para obtener más información, consulte Tamaño de fichero.
INC_EXPORT_[batch run]_[thread]_[thread count]_[timestamp][_file sequence].json.gz
La parte de "secuencia de fichero" del nombre del fichero solo se utiliza cuando se ha creado más de un fichero por thread. El sufijo de secuencia se rellena de la siguiente manera, empezando desde el segundo fichero, _2.Para obtener más información, consulte el control de lotes Exportación en curso generalizada (F1-GEEXO).
Tamaño de fichero
Por defecto, el proceso por lotes de exportación inicial genera un único fichero por thread. Para entidades de gran volumen, esto puede traducirse en ficheros demasiado grandes para gestionar. Para generar varios ficheros de menor tamaño para una entidad específica, limite el número de registros que se escribirá en cada fichero, definiendo el parámetro correspondiente en el control de lotes de exportación inicial definido para la entidad. Se puede indicar el mismo parámetro al enviar el proceso por lotes del iniciador de exportación inicial, en cuyo caso el valor de iniciador se utilizará solo cuando no se haya definido un valor correspondiente en el registro de control de lotes específico de la entidad.
Del mismo modo, el proceso por lotes de exportación en curso genera, por defecto, un único fichero por thread. Para generar varios ficheros de menor tamaño, limite el número de registros que se escribirá en cada fichero, definiendo el parámetro correspondiente en el control de lotes.
Para evitar la creación de un número excesivo de ficheros en una única ejecución por lotes, el sistema define un límite máximo aproximado de 500 ficheros por ejecución. Cuando se determina que el número solicitado de registros por fichero va a provocar que el número de ficheros generados supere el límite del sistema, se ajustará el valor real utilizado para cumplir dicho límite.
Gestión de grandes atrasos
Cuando por algún motivo se acumula una gran cantidad de cambios atrasados en la cola de exportación en curso, el siguiente lote tarda más en realizar la exportación, lo que supone un retraso en el paso de importación descendente. Se considera mejor opción eliminar el atraso en "partes" más pequeñas, permitiendo al proceso descendente su importación a medida que se encuentran disponibles.
Se puede limitar el número de registros que exporta el proceso por lotes mediante el parámetro por lotes Límite de procesamiento de threads. Cuando se especifica, el número de registros que se exporta en cada thread se limita con un valor específico, de forma que los registros restantes se consumen en posteriores ejecuciones por lotes. En lugar de esperar a una nueva ejecución por lotes programada, se puede ejecutar de forma automática un nuevo proceso por lotes, si se solicita de forma explícita mediante el parámetro por lotes Liquidación de atrasos automática.
Es importante comprobar de forma periódica que los atrasos se eliminan gradualmente y la cola regresa a su tamaño normal. En consecuencia, el límite de procesamiento debe definirse como un valor adecuado para promover la adecuada liquidación de la cola. Para ello, cada ejecución por lotes en todos los threads debe consumir al menos un 20% de la cola, con un número no inferior a 100000 registros. Si el límite especificado no cumple la necesidad de liquidación mínima, el límite de procesamiento deberá ajustarse según convenga.
Formato de registro
Por motivos de rendimiento, los datos se recuperan y se exportan directamente de la base de datos en operaciones de lectura masiva. Por tal motivo, la estructura que se utiliza no refleja el modelo de datos lógico de la entidad, sino su lista física de tablas. Los datos de una instancia indicada se organizan en tablas, seguidos por las filas de cada tabla y, para cada fila, la lista de campos en formato JSON.
A continuación, se describen el formato y la estructura utilizados:
{
"OBJ": "<mo name>",
"TIMESTAMP": "<export time in ISO format for example 2019-07-25T11:06:04.740615Z>",
"PK1": "<mo pk1 value>",
"PK2": "<mo pk2 value if any>", ← PK2-5 should only be included when applicable
"PK3": "<mo pk3 value if any>",
"PK4": "<mo pk4 value if any>",
"PK5": "<mo pk5 value if any>",
"DELETED": true, ← should only be included when the entity is deleted
"DATA":
{
"<MO table name 1>":
[
{<name value pairs of all fields in row 1 in that table>},
{<name value pairs of all fields in row 2 in that table>},...
{<name value pairs of all fields in row n in that table>},...
],
"<MO table name 2>":
[
{<name value pairs of all fields in row 1 in that table>},
{<name value pairs of all fields in row 2 in that table>},...
{<name value pairs of all fields in row n in that table>}
],...
"<MO table name n>":
[
{<name value pairs of all fields in row 1 in that table>},
{<name value pairs of all fields in row 2 in that table>},...
{<name value pairs of all fields in row n in that table>}
]
}
Notas sobre los valores de campo y los formatos:
-
Se incluyen todos los campos de una fila aunque el campo esté vacío o sea nulo.
-
Los espacios finales sobrantes se recortan en todos los valores de cadena pero, si un campo está vacío, se exporta como cadena vacía "" y no nula.
-
Cuando no existan registros para la entidad de la tabla, se utilizará una matriz vacía para un nodo de tabla.
-
La información de fecha y hora se convertirá a la zona horaria UTC y se exportará en formato ISO, por ejemplo: 2019-07-25T11:06:04.740615Z.
-
Las supresiones incluyen un indicador explícito en la cabecera.
Orden de consumo de ficheros
Es importante aplicar todos los ficheros de exportación inicial de un objeto de mantenimiento antes de hacerlo con los ficheros de cambio en curso, para garantizar la coherencia de los datos.
-
Aplique todos los ficheros de exportación de datos inicial antes que los ficheros de exportación en curso.
-
Aplique los ficheros iniciales de un objeto de mantenimiento en orden de número de ejecución.
-
Aplique los ficheros de exportación en curso en orden de número de ejecución.
-
Si hay disponible una nueva exportación inicial, deberá cambiarse de forma temporal el procedimiento de consumo de ficheros de la siguiente manera:
-
Detenga el consumo de ficheros de exportación en curso.
-
Aplique los nuevos ficheros de exportación inicial.
-
Reanude el consumo de ficheros de exportación en curso.
-
Recuperación de un fichero de exportación en curso que se ha perdido
El proceso por lotes de exportación en curso conserva una copia de seguridad de todas las claves de entidad que se han exportado en una ejecución por lotes concreta, en una tabla de copias de seguridad designada. En las pocas situaciones en las que se suprime un fichero de exportación en curso o se daña antes de procesarlo, se puede utilizar la tabla de copias de seguridad para identificar los cambios que faltan y volver a exportarlos.
Utilice el proceso por lotes Restaurar claves de exportación generalizadas (F1-GERST) para recuperar de esta situación. El proceso identifica las entidades que se han exportado durante una ejecución por lotes especificada y las vuelve a añadir a la cola de cambios en curso desde la tabla de copia de seguridad. Entonces se exportarán las entidades de nuevo cuando se ejecute la siguiente exportación en curso. Este método no restablece el contenido exacto del fichero original que se ha perdido, porque no se puede reproducir. En cambio, el proceso garantiza que las entidades incluidas en el fichero perdido se vuelvan a exportar.