sap data engineering
Imagen de Ivan Sanchez

Ivan Sanchez

Data Engineer

Otros Artículos:

SAP y data engineering

LinkedIn
Facebook
Twitter
WhatsApp

Probablemente, casi cualquier persona trabajando en el mundo del data engineering ha utilizado en algún proyecto datos originarios de SAP, y es que gran cantidad de empresas guardan sus datos en este sistema. Sin embargo, integrar SAP como fuente de datos en nuestrapipelines de ETL puede convertirse en todo un desafío. En este artículo, veremos cómo disponer de datos de SAP para utilizarlos en procesos de ETL en el caso concreto de Azure Data Factory. 

¿Qué es SAP?

SAP se ha convertido en el software de ERP (Enterprise Resource Planning) por excelencia a nivel global. Fundado en 1972, sus siglas vienen de la traducción al alemán de System Analysis Program development. Como ERP, la principal aportación de SAP es centralizar en un único lugar la gestión de datos de varias áreas de negocioEsto, como ingeniero de datos, simplifica mucho la ingesta de datos; por ejemplo, en mi caso particular trabajando en una empresa productora de minerales industriales, SAP me ha permitido extraer de un mismo origen datos tan diversos como proveedores, materiales, clientes, finanzas, o incluso recursos humanos. 

Conectores de SAP en Azure Data Factory

Las pipelines de Azure Data Factory proporcionan una colección de recursos para alimentar las cargas de trabajo de SAP, en particular ponen a disposición varios conectores de SAP para admitir una amplia variedad de escenarios de extracción de datos. Existen distintos tipos de conectores: SAP BW, SAP CDC, SAP Table, SAP ECC, SAP HANA… 

La elección de un conector u otro depende de varios factores, como el tipo de aplicación SAP, el tipo de datos, el volumen de datos, la latencia esperada o el lugar donde se quieren almacenar los datos. En las páginas oficiales de Microsoft se pueden consultar los detalles de cada conector y cuál es el más indicado en cada situación. Como ejemplo para ilustrar esto, en el caso concreto del proyecto en el que me encuentro actualmente, se usa o bien SAP CDC o bien SAP Table en función de la volumetría de la tabla, distinguiendo en muchas ocasiones si se trata de una tabla maestra o una tabla de hechos. 

Linked services para SAP

Uno de los componentes principales de Azure Data Factory son los servicios vinculados, quizás más comúnmente conocidos por su nombre en inglés linked services. Los linked services son simplemente conexiones a recursos externos, lo cual permite vincular Data Factory a otras herramientas. Estas herramientas externas pueden ser, entre otras cosas, orígenes de datos o lugares de destino de los datos procesados. 

En el caso que nos concierne, nos interesa usar linked services para conectarnos a SAP como origen de datos para realizar la extracción. El proceso se describe a continuación. Desde el área de trabajo de Azure Data Factory, vamos a la pestaña ‘Manage’, seleccionamos ‘Linked services’ y pulsamos ‘New’: 

SAP1

A continuación, buscamos SAP y seleccionamos el conector que nos interese, por ejemplo SAP Table: 

SAP2

Finalmente, se configuran los detalles del servicio, se prueba la conexión y creamos el linked service. 

Creación del dataset

Una vez creado el linked service, tendremos que crear en Data Factory un conjunto de datos o dataset. Un dataset es una vista con nombre de los datos que apunta, mediante el linked service, a los datos de SAP que desearemos utilizar en la pipeline. Para crearlo simplemente tenemos que ir a la pestaña Author y seleccionar Dataset tras pulsar el símbolo ‘+’: 

SAP3

Añadimos el nombre que deseamos para el dataset, en nuestro caso ds_sap_ecc, y seleccionamos el linked service que hemos creado en la sección anterior, el cual habíamos denominado ls_sap_ecc. Con esto ya tenemos el dataset creado: 

SAP4

Extracción de datos

Finalmente, ya podemos añadir a nuestra pipeline de Data Factory la extracción de datos de SAP. Para ello tendremos que crear una actividad Copy data en la canalización; ésta es una de las utilidades básicas de Data Factory, que permite leer datos desde un almacén de datos de origen y escribirlos en el almacén de datos receptor. En la configuración de la actividad de copia, tendremos que entrar en la pestaña ‘Source y, en la casilla ‘Source dataset’, seleccionar el dataset que hemos creado en la sección anterior: 

SAP5

Con esto ya sólo quedará añadir los parámetros que se deseen para la extracción. Podemos añadir el nombre de la tabla, los campos a copiar, filtros sobre las filas de la tabla o gestionar particiones. También se pueden utilizar módulos de función RFC personalizados para leer datos de la tabla de SAP. Aunque no entraremos en detalle con esto ya que queda fuera del objetivo del artículo, RFC (Remote Function Call) es un protocolo de SAP que se utiliza para intercambiar datos con los sistemas de SAP, y nos permite definir cómo se recuperan los datos del sistema SAP y cómo se devuelven al servicio.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Business Data Master Logo

No te pierdas el

WEBINAR
Gratuito

Explicaremos en detalle los contenidos y objetivos del Business Data Master

29/11/2021

18:30 (GTM+1)

Online

BUSINESS DATA MASTER

* Tu información será utilizada exclusivamente para contactarte en relación al Business Data Master. No hacemos spam ni compartimos datos con terceros.