¿Alguna vez has necesitado llevar tus datos desde una API REST a un servicio de almacenamiento en la nube?, ¡Hoy te contamos cómo puedes lograrlo fácilmente utilizando la herramienta Copy Data en Azure Data Factory!
Para efectos de nuestro ejercicio, es necesario haber aprovisionado previamente una Tabla de Almacenamiento de Azure y una instancia de Azure Data Factory.
A continuación, nuestro objetivo será copiar algunos datos en formato JSON que provienen de la API pública y gratuita Employee, en nuestra Tabla de Almacenamiento de Azure por medio de Data Factory.
Paso 1
Desde Azure Data Factory Studio crearemos dos servicios vinculados que nos permitiran establecer conexiones con nuestra API y nuestra tabla de almacenamiento de Azure:
Si nos dirigimos a la pestaña Manage del área de trabajo de Azure Data Factory, en la sección Linked services encontraremos la opción de New Linked service, damos clic allí y a continuación buscamos el conector específico llamado REST, éste es el servicio que nos permitirá hacer solicitudes a nuestra API REST mediante los métodos GET y POST desde Azure Data Factory:
Hecho esto, pasaremos a la configuración de los detalles del servicio REST que hemos seleccionado. En la sección de Base URL ingresamos la URL del servicio REST Employee: https://dummy.restapiexample.com/api/v1/employees, para el tipo de autenticación elegimos Anonymous, y dejamos los demás detalles de la configuración como aparecen por defecto.
Ahora crearemos un nuevo servicio vinculado que nos permita establecer la conexión con nuestra Tabla de Almacenamiento. Nuevamente, estando en la pestaña Manage del área de trabajo, en la sección de Linked Services damos clic en New Linked service y seleccionamos el conector Azure Table Storage. A continuación, seleccionaremos como método de autenticación Account Key, método de selección de cuenta From Azure subscription, elegimos la suscripción de Azure y la cuenta de almacenamiento en la que aprovisionamos nuestra Tabla de Almacenamiento, los demás detalles de la configuración se dejaran como aparecen por defecto.
Paso 2
Una vez hemos configurado los servicios vinculados que necesitamos, el siguiente paso consiste en crear conjuntos de datos de origen y destino.
Para hacer esto, nos dirigimos a la pestaña de Author del área de trabajo de Azure Data Factory, en la sección Dataset, damos clic en New dataset. Dado que nuestro proposito es leer datos de una API REST, seleccionaremos REST para especificar la ubicación y estructura del conjunto de datos de origen, elegimos el servicio REST creado en el paso anterior y finalmente hacemos una prueba de conexión al conjunto de datos.
De manera similar, para definir un conjunto de datos de destino, nos dirigimos a la pestaña de Author del área de trabajo, en la sección Dataset damos clic en New dataset, seleccionamos Azure Table Storage y elegimos el servicio vinculado y aquella Tabla de Almacenamiento de Azure en la que deseamos escribir los datos que provienen de la API. Hecho esto, validamos la conexión al conjunto de datos.
Paso 3
Finalmente, crearemos un pipeline que nos permita definir la actividad de copia de datos desde nuestra API REST hacia la Tabla de Almacenamiento de Azure que hemos aprovisionado.
En la misma pestaña de Author, en Azure Data Factory Studio, seleccionamos New pipeline. Luego, en el panel de actividades, buscamos la actividad de Copy data y la arrastramos hacia nuestro lienzo. Hecho esto, debemos configurar algunos detalles de la actividad de Copia de datos. En la pestaña General podemos, entre otras cosas, darle un nombre ilustrativo a la actividad que acabamos de crear.
En la pestaña Source podemos seleccionar el conjunto de datos de origen vinculado al servicio REST. En la pestaña Sink seleccionamos el conjunto de datos de destino, en este caso, nuestra Tabla de Almacenamiento y finalmente, en la sección Mapping podemos importar el esquema de los datos, seleccionar y cambiar el nombre de aquellas columnas que deseamos almacenar.
Para finalizar, damos clic en Trigger now, ¡y listo! una vez finalice la ejecución del pipeline, podemos comprobar que los datos provenientes de la API Employee, se encuentran almacenados en nuestra Tabla de Almacenamiento de Azure.