• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
best practices  ·  job optimization  ·  real time job  ·  Technical Articles

Servicios de datos de SAP Trabajos en tiempo real: descripción general y mejores prácticas

By s4pcademy 


Objetivo:

La motivación detrás de este blog es brindar una descripción general de las mejores prácticas en lo que respecta al procesamiento de trabajos en tiempo real dentro de los servicios de datos. Para Batch Jobs, una gran cantidad de métricas de ajuste de rendimiento, las mejores prácticas están fácilmente disponibles y se pueden implementar con las referencias, mientras que aquí las mejores prácticas de optimización de trabajos en tiempo real se han anotado en base a la experiencia del mundo real y la investigación de varios recursos de SAP.

Antes de entrar en las mejores prácticas reales, consejos y trucos, echemos un breve vistazo al funcionamiento, los componentes, el diseño del trabajo, los modelos, etc. de los trabajos en tiempo real de SAP Data Services.

Trabajos en tiempo real:

SAP Data Services puede recibir mensajes de sistemas ERP o aplicaciones web y luego puede responder en poco tiempo con los datos de un caché de datos o cualquier otra aplicación

El procesamiento de datos en un trabajo en tiempo real puede requerir el uso de un caché de datos. El trabajo en tiempo real puede agregar datos adicionales al mensaje proveniente de una memoria caché de datos o el trabajo en tiempo real puede cargar los datos del mensaje en la memoria caché de datos.

Función de un servidor de acceso en trabajos en tiempo real:

En el momento en que un trabajo en tiempo real recibe un mensaje, es el servidor de acceso el que enruta el mensaje a un proceso de espera que luego realiza un conjunto de operaciones con respecto al tipo de mensaje.

Cuando el trabajo en tiempo real devuelve una respuesta, nuevamente el servidor de acceso envía una respuesta a la aplicación ascendente.

Consulte el siguiente diagrama para comprender mejor el funcionamiento de los trabajos en tiempo real de servicios de datos

Trabajo%20%20en tiempo real

Trabajo en tiempo real

Diseño de trabajo en tiempo real:

Un trabajo en tiempo real puede contener un solo flujo de datos, múltiples flujos de datos, flujos de trabajo, scripts, condicionales, bucles while, etc.

Tanto los flujos de datos únicos como múltiples pueden contener los siguientes objetos:

  • Una sola fuente y destino en tiempo real: Mensaje XML (obligatorio).
  • Fuentes y objetivos: Archivos, archivos XML y tablas, incluidas tablas de SAP y tablas de plantillas.
  • Transformaciones y consultas.

En múltiples flujos de datos se puede incluir un objeto adicional:

  • Tablas de memoria: Que se pueden usar como tablas de preparación para mover datos al flujo de datos posterior en el trabajo.

Además, IDOC también se puede utilizar para crear trabajos en tiempo real.

Modelos de trabajos en tiempo real:

Modelo de flujo de datos único:

Como sugiere el nombre con este modelo, podemos crear un trabajo en tiempo real utilizando un flujo de datos singular. Solo incluye un origen de mensaje único y un destino de mensaje único.

Modelo único%20Datos%20Flujo%20

Modelo de flujo de datos único

Modelo de flujo de datos múltiples

El modelo de flujo de datos múltiples le permite crear un trabajo en tiempo real utilizando más de un flujo de datos en el procesamiento en tiempo real.

Múltiple%20Data%20Flujo%20modelo

Modelo de flujo de datos múltiples

Mediante el uso de varios flujos de datos, los datos de cada mensaje se procesan por completo en un flujo de datos inicial antes de pasar al procesamiento cuando se inician los flujos de datos posteriores.

Por ejemplo, si los datos tienen 10 elementos, los 10 deben pasar por el primer flujo de datos a una tabla de preparación o una tabla de memoria antes de pasar al flujo de datos subsiguiente. Esto le permitirá tener más control y le permitirá recopilar todos los datos en cualquier momento.

Ahora, puede preguntarse por qué en tiempo real en lugar de procesamiento de trabajos por lotes.

  1. Necesita una respuesta al sistema de origen cuando los datos se mueven al almacén de datos para llevar a cabo los siguientes pasos según los casos de uso comercial.
  2. No hay un tiempo fijo asignado cuando los trabajos se pueden programar según los datos entrantes en 3rd aplicaciones de fiesta
  3. No desea esperar un disparador interno o programar un trabajo y desea ejecutar el trabajo más rápido (dependiendo de la cantidad de datos) ya que solo está esperando una respuesta del servidor de acceso dedicado.

Ahora veamos algunas de las mejores prácticas con trabajos en tiempo real:

1.Uso del almacén de datos de memoria para trabajos en tiempo real

Los almacenes de datos de memoria son ventajosos para procesar trabajos en tiempo real que manejan pequeñas cantidades de datos, ya que permiten el acceso instantáneo a los datos.

Las tablas de memoria sirven como modelos para almacenar temporalmente datos intermedios. Almacenan en caché datos de archivos de datos jerárquicos y tablas de bases de datos relacionales. SAP Data Services almacena estos datos en caché en la memoria, lo que garantiza el acceso inmediato sin necesidad de acceder a los datos de origen originales.

El repositorio almacena esquemas de tablas de memoria en un almacén de datos de memoria, que difiere de un almacén de datos de base de datos típico que se conecta a un adaptador, una base de datos o una aplicación.

Ventajas del almacén de datos de memoria:

  • Al almacenar en caché datos intermedios y permitir que los flujos de datos accedan a ellos desde el caché en lugar de la base de datos remota, las tablas de memoria pueden mejorar el rendimiento del trabajo, especialmente para trabajos con múltiples flujos de datos. Se recomienda utilizar tablas de memoria cuando se trata de pequeñas cantidades de datos para lograr el mejor rendimiento.
  • Además de mejorar el rendimiento del trabajo, las tablas de memoria también mejoran el rendimiento de las funciones en las transformaciones. Las funciones como Lookup_Ext que no requieren operaciones de base de datos pueden acceder a los datos de la memoria directamente, eliminando la necesidad de leerlos desde una base de datos remota.

2. Utilizar servidores de trabajos separados para trabajos en tiempo real y por lotes

Cada vez que se realiza una solicitud de servicio web, se reenvía a la capa de servicios web de servicios de datos con la ayuda de los protocolos HTTP/SOAP y el servicio web los enruta hacia el servidor de acceso. Sin embargo, cuando se utilizan las API de un cliente de mensajes, las solicitudes se envían directamente al servidor de acceso, lo que evita la capa de servicios web y, a cambio, mejora el rendimiento.

Es importante que los servicios en tiempo real estén configurados y, para cada servicio, se deben definir los servidores de trabajo que manejarán las solicitudes y la cantidad de proveedores de servicios (procesos AL_ENGINE) que se crearán para atender las solicitudes en cada servidor de trabajo. .

La gestión adecuada de las instancias mínimas y máximas es necesaria para lograr la escalabilidad del servicio en cada servidor de trabajo. Es importante tener en cuenta que DOP no escala los trabajos en tiempo real, pero sí la cantidad de proveedores de servicios (procesos). Por lo tanto, es crucial equilibrar las cargas con el consumo de memoria por implementación física y la cantidad de servicios admitidos por cada servidor de trabajo.

Se sugiere utilizar un servidor de trabajo separado (tanto físico como virtual) para el procesamiento por lotes y en tiempo real para asegurarse de que se cumplan los SLA para las solicitudes en tiempo real.

3. Servicios en tiempo real Ajuste del rendimiento en SAP Data Services

La cantidad de instancias Mín./Máx. que establece al crear servicios en tiempo real determina cómo se ampliará el servicio. Cada instancia crea un proceso AL_ENGINE en el servidor, y cada proceso maneja una solicitud de mensaje en tiempo real a la vez. Para optimizar el rendimiento, es importante ajustar las instancias Mín./Máx. según la cantidad de proveedores de servicios que está configurando en cada servidor de trabajo y la cantidad de CPU/núcleos disponibles. Comenzar con un aumento en las instancias Min/Max a ‘2’ puede ser un buen punto de partida.

Es importante monitorear las estadísticas en la consola de administración, como los tiempos de respuesta promedio y las longitudes de las colas, para garantizar que las solicitudes no se acumulen en las colas y que los tiempos de respuesta cumplan con el SLA requerido. Vale la pena señalar que la primera solicitud de mensaje a través de un proceso AL_ENGINE determinado puede demorar más que las solicitudes posteriores debido a la inicialización, que solo puede ocurrir con la primera solicitud. Esto puede resultar en tiempos de solicitud sesgados en la consola de administración.

En preparación para la puesta en marcha, es crucial tener un panorama que se parezca mucho a PROD y tenga un volumen de nivel de PROD, lo que nos permitirá revisar las métricas de rendimiento.

Vigile el consumo de memoria en el servidor, ya que cada proceso AL_ENGINE para trabajos en tiempo real puede utilizar una cantidad sustancial de memoria, incluso para trabajos simples.

Asegúrese de tener suficiente memoria para todos los servicios y la cantidad prevista de proveedores de servicios (configuración Máx./Mín.) en un servidor de trabajo determinado.

Para el equilibrio de carga, debemos tener dos servidores y podemos aumentar la capacidad de los servidores si encontramos problemas de memoria o CPU. Si es necesario, podemos ajustar los parámetros de nivel de trabajo o descargar más procesamiento a la base de datos examinando el diseño del trabajo.

Para el dimensionamiento de los motores, se puede utilizar la siguiente fórmula:

supongamos m = Número de motores:

m*consumo de memoria por motor = consumo total de RAM

m*Uso de CPU por motor = consumo total de CPU

4.Establezca el tamaño de recuperación de la matriz en función de la velocidad de su red

Tenemos que considerar los siguientes factores para determinar el valor óptimo para el tamaño de recuperación de la matriz:

  • El tamaño de las filas de la tabla en la fuente (incluye el número y tipo de columnas)
  • Tiempo necesario para las solicitudes y respuestas de la base de datos de ida y vuelta de la red.

Si su entorno informático es potente, es decir, las máquinas que ejecutan el servidor de tareas, las bases de datos relacionadas y las conexiones son rápidas, intente aumentar el tamaño de recuperación de la matriz. Sin embargo, se recomienda probar el rendimiento de sus trabajos para encontrar la mejor configuración.

También es importante tener en cuenta que una configuración de recuperación de matriz más alta consumirá más memoria de procesamiento proporcionalmente a la longitud de los datos en cada fila y la cantidad de filas en cada recuperación.

5. Generalidades Sugerencias de diseño de trabajos en tiempo real de SAP Data Services

Al crear flujos de datos para trabajos en tiempo real, es importante seguir ciertas pautas.

En primer lugar, si está uniendo una fuente en tiempo real con una tabla, los datos en tiempo real se incluirán como el bucle externo de la unión. Al unir más de una fuente complementaria, puede determinar qué tabla se incluye en el siguiente bucle más externo utilizando rangos de unión.

En segundo lugar, evite almacenar en caché datos de fuentes secundarias en trabajos en tiempo real, a menos que sean estáticos, ya que los datos se leerán cuando se inicie el trabajo y no se actualizarán durante el tiempo de ejecución.

Además, si no se pasan filas al destino XML, el trabajo devuelve una respuesta vacía al servidor de acceso y debe proporcionar instrucciones al usuario para manejar este escenario.

Finalmente, para evitar descartar filas, estructure los formatos de origen y destino del mensaje de modo que una «fila» sea igual a un mensaje, utilizando el Modelo de datos relacionales anidados (NRDM) para estructurar cualquier cantidad de datos en una sola «fila» incorporando otros tablas dentro de la columna

Gracias por leer el blog hasta aquí. Espero que el blog haya sido informativo y pueda ser útil para cualquier persona que necesite las mejores prácticas de trabajo en tiempo real de servicios de datos sugeridas.

Siéntete libre de hacer cualquier pregunta o déjame saber en los comentarios si te ayudó. Haré todo lo posible para responder.

¡Gracias!




datosDescripcióngeneralmejoresprácticasrealSAPserviciostiempotrabajos

Artículos relacionados


abap  ·  Business Trends  ·  sap activate  ·  SAP Analytics Cloud  ·  SAP HANA  ·  SAP S/4HANA  ·  skills
Las habilidades de SAP más importantes para 2023 y cómo adquirirlas
customer interest  ·  FINT  ·  FINTSHOW  ·  Technical Articles
Reversión de Ejecución de Interés | Blogs de SAP
#btp  ·  Personal Insights
日本のSAPコミュティ(BTP編)についてまとめてみた | Blogs de SAP
Obsolescencia de Cloud Foundry Stack cflinuxfs3 y migración a cflinuxfs4
Previo
Instalación, migración y HA de SAP Mobile Platform 3.1
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.