• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
Technical Articles

Integre grandes conjuntos de datos desde Flat File a SAP HANA Cloud usando SAP IS JDBC Adapter

By s4pcademy 


Introducción:

Esta publicación de blog detalla un escenario en el que los datos deben cargarse desde archivos de un sistema de planificación de la oferta y la demanda en SAP HANA Cloud DB para crear informes de BI. El proceso de integración debe alcanzar los siguientes requisitos de alto nivel:

  1. Se recibirá un archivo delimitado por tabuladores con cerca de 2 millones de filas a través de SFTP desde el sistema de origen.
  2. La tabla de preparación en SAP HANA Cloud DB debe truncarse antes de cargar los datos.
  3. Los datos deben cargarse desde el archivo sin formato delimitado por tabulaciones en la tabla HANA.
  4. Una vez que se cargan los datos, se debe iniciar una llamada de procedimiento almacenado para tomar una instantánea de los datos en otra tabla que se usará para generar informes.

Al diseñar este proceso de integración, hay algunas cosas a considerar. Primero, dado que hay una gran cantidad de filas en el archivo entrante, es esencial dividirlas en lotes y ejecutarlas en paralelo para evitar que la inserción de DB a través del receptor JDBC se agote o tarde demasiado en responder. En segundo lugar, la llamada al procedimiento debe serializarse y activarse solo una vez que se hayan cargado todos los datos de la tabla. Finalmente, si el proceso demora más de 15 minutos, se debe aumentar el tiempo de espera de bloqueo predeterminado para el SFTP del remitente para evitar una ejecución duplicada.

Requisitos previos:

  1. Cree un usuario de JDBC en SAP HANA Cloud a través de SAP HANA Cockpit -> Gestión de usuarios y roles -> Gestión de usuarios
  2. Otorgue los roles requeridos para el esquema bajo el cual existen las tablas y ejecute privilegios de objeto para el procedimiento almacenado también a través de SAP HANA Cockpit -> Gestión de usuarios y roles -> Gestión de privilegios
  3. Cree una fuente de datos JDBC utilizando el usuario JDBC creado anteriormente en SAP Integration Suite -> Administrar seguridad -> Material JDBC URL de JDBC: jdbc:sap://:443/?encrypt=trueReferirse – JDBC para la nube de SAP HANA | Portal de ayuda de SAP (No pase la propiedad databaseName para poder conectarse con éxito a SAP HANA Cloud). Puedes referirte a Propiedades de conexión JDBC | Portal de ayuda de SAP para un conjunto completo de propiedades de conexión JDBC

Flujo del proceso de integración:

Proceso de Integración

  1. remitente SFTP el canal sondea el archivo y lo recoge para procesarlo cuando esté disponible.
  2. Modificador de contenido: hace una copia de seguridad del nombre del archivo entrante para recuperarlo más tarde en caso de alguna excepción.
  3. Multidifusión en paralelo: se utiliza para archivar el archivo entrante en el servidor interno de una sucursal y para cargar los datos en HANA en otra sucursal.
  4. Modificador de contenido: genera SQL para truncar la tabla de etapas y realiza una copia de seguridad del conjunto de datos entrante en la variable de propiedad para recuperarlo más tarde.
  5. Solicitud-Respuesta: llama a SAP HANA Cloud usando el adaptador de receptor JDBC para ejecutar la consulta SQL construida en el modificador de contenido.
  6. Modificador de contenido: establece una carga útil ficticia para crear dos procesos serializados una vez que se recibe un mensaje de éxito de la llamada JDBC
  7. Divisor de iteración: configurado con salto de línea y procesamiento paralelo desactivado para crear dos subprocesos serializados
  8. Modificador de contenido: crea una propiedad para el cuerpo de la carga útil ficticia del divisor en la rama DBInsert o ProcedureCall. El motivo para almacenarlo en la propiedad es que el enrutador no permite el uso de la expresión ${in.body} en la condición de enrutamiento necesaria para derivar ambos procesos serializados a ramas diferentes.
  9. Enrutador: rama basada en el subproceso entre DBInsert y ProcedureCall.
  10. Modificador de contenido: restablece los datos del archivo entrante original (separados por tabuladores) de la variable de propiedad de la que se realizó una copia de seguridad en pasos anteriores.
  11. Divisor general: divide las filas de los archivos de pestañas en varios grupos de 10k registros, que se pueden ejecutar en paralelo utilizando el máximo de procesos simultáneos admitidos (50)
  12. Conversor de CSV a XML: convierte los datos en cada proceso dividido en XML, que se utiliza para mapear para insertar la estructura de la base de datos.
  13. Asignación de mensajes: El mapeo de mensajes se usa para mapear los datos entrantes en la estructura en el lado del receptor para la inserción de datos. Consulte la Ayuda de SAP Operación y carga útil por lotes | Portal de ayuda de SAP
  14. Receptor JDBC: Esto se configura en modo por lotes para insertar múltiples registros en una sola llamada. Una vez que todos los registros se actualizan en la tabla de todos los procesos concurrentes divididos. Luego se inicia la segunda rama para la llamada al procedimiento.
  15. Modificador de contenido en la sucursal 2 (Llamada a Trámite): configurar el cuerpo con una llamada de procedimiento almacenado que debe ejecutarse después de que se complete la carga de la tabla.
  16. Solicitud-Respuesta: El adaptador de receptor JDBC envía la llamada de procedimiento a SAP HANA Cloud.
  17. Enviar (rama 2 en Parallel Multicast): se usa para archivar el archivo entrante en un servidor SFTP externo localmente usando un adaptador de receptor SFTP.

Conclusión:

Opté por usar una combinación de Divisor y Enrutador en lugar de multidifusión secuencial para garantizar que la llamada del proceso dividido se complete antes de la próxima llamada, en lugar de simplemente asegurar que el paso se ejecute primero sin esperar a que se complete.

En mis pruebas en nuestro arrendatario SAP IS, el flujo de integración tarda unos 5 minutos en finalizar para un archivo entrante con aproximadamente 1,7 millones de filas, lo que considero un rendimiento decente.

Con suerte, este blog ayudará a los desarrolladores y arquitectos de SAP IS a diseñar soluciones de integración para cargar datos en SAP HANA Cloud, incluso para conjuntos de datos más grandes.

Para obtener más información sobre el uso del adaptador JDBC con el servidor MS SQL, consulte la publicación del blog en https://blogs.sap.com/2021/09/30/sap-cloud-integration-cpi-jdbc-adapter-step-by-step-guide-pre-requisites-and-configuration-jdbc-batch-insert- cpp/.

Además, hay disponible otra publicación de blog sobre SAP HANA como servicio como referencia, aunque tenga en cuenta que el nombre de la base de datos ya no es necesario en la propiedad de conexión JDBC para SAP HANA Cloud, y la conexión fallará si se especifica. Esta publicación se puede encontrar en https://blogs.sap.com/2021/03/02/hana-as-a-service-integration-with-cpi/

Además, existen enfoques alternativos para cargar datos desde archivos a SAP HANA Cloud, incluido el adaptador de archivos SAP SDI. Referirse Configuración de SDI: conecte el agente de aprovisionamiento de datos (SDI) al entorno de Cloud Foundry y habilite los adaptadores (adaptador de archivo, adaptador ABAP y adaptador HANA) | Blogs de SAP




AdapterCloudConjuntosdatosdesdeFileFlatgrandesHANAIntegreJDBCSAPusando

Artículos relacionados


cloud solution  ·  Product Information  ·  scheduling  ·  user experience
¿Es SAP Field Service Management una buena opción para que las empresas de servicios públicos mejoren los procesos de mantenimiento, medición y servicio?
#batch  ·  #hire  ·  #SAPSuccessFactors  ·  generatepersonID  ·  Technical Articles
Cómo usar la operación generarNextPersonID y $batch para contratar a un empleado en SuccessFactor usando CPI
sap bas  ·  SAP BTP  ·  sap fiori  ·  Technical Articles
Implementar el concepto de autorización para que las aplicaciones de Fiori se muestren en la zona de trabajo de compilación de SAP en función de los roles configurados en BTP
Primer vistazo a ChatGPT y su potencial para ABAPers
Previo
Anuncio de Graph en SAP Integration Suite
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.