Cómo crear un pipeline de copia en Azure Data Factory
Mover un archivo CSV a una base de datos es una de las tareas más comunes en cualquier proyecto de datos, y un pipeline de copia en Azure Data Factory lo resuelve sin escribir código de integración. Azure Data Factory es el servicio de orquestación de datos de Microsoft en la nube, y su actividad Copy data es la forma más directa de mover datos entre dos sitios. Vas a crear, paso a paso, un pipeline que lee un CSV de Azure Blob Storage y lo carga en una tabla de Azure SQL Database.
Requisitos previos
- Una suscripción de Azure activa con una instancia de Azure Data Factory ya creada.
- Una cuenta de Azure Blob Storage con un contenedor y un archivo CSV (por ejemplo,
clientes.csv). - Una base de datos Azure SQL Database donde tengas permiso para crear tablas.
- Acceso a Azure Data Factory Studio para crear linked services, datasets y pipelines.
Paso 1: Preparar el origen y el destino
Antes de tocar Data Factory, asegúrate de tener los dos lados listos: el archivo en el origen y la tabla en el destino. Un ejemplo sencillo de clientes.csv en Blob Storage:
id,nome,cidade
1,Ana,Lisboa
2,Bruno,Porto
3,Carla,Braga
En Azure SQL Database, crea la tabla que recibirá los datos. Fíjate en que los nombres de las columnas coinciden con los del CSV, lo que simplifica el mapeo automático:
CREATE TABLE dbo.Clientes (
id INT,
nome NVARCHAR(100),
cidade NVARCHAR(100)
);
Paso 2: Crear los linked services
Un linked service es la conexión (dirección y credenciales) a un sistema externo. Abre Data Factory Studio, ve a la pestaña Manage y elige Linked services > New. Crea dos: uno para Azure Blob Storage (el origen) y otro para Azure SQL Database (el destino). En cada uno, prueba la conexión con Test connection antes de guardar, para detectar errores de credenciales aquí mismo.
Paso 3: Crear los datasets
Un dataset describe la forma y la ubicación de los datos dentro de un linked service. En la pestaña Author, elige Datasets > New dataset. Crea un dataset DelimitedText que apunte a clientes.csv (marca la opción que trata la primera fila como encabezado) y un dataset de tabla de Azure SQL que apunte a dbo.Clientes. Estos dos datasets serán el origen y el destino de la copia.
Paso 4: Crear el pipeline y añadir la actividad Copy data
Todavía en la pestaña Author, elige Pipelines > New pipeline. Arrastra la actividad Copy data al lienzo. Ahora configúrala:
- En la pestaña Source, selecciona el dataset del CSV.
- En la pestaña Sink, selecciona el dataset de la tabla SQL.
- En la pestaña Mapping, haz clic en Import schemas para enlazar cada columna del CSV con la columna correspondiente de la tabla.
Paso 5: Ejecutar el pipeline con Debug
Haz clic en Debug para ejecutar el pipeline sin publicar. Data Factory ejecuta la copia y muestra el progreso en la pestaña Output. Si quieres poder volver a ejecutarlo sin acumular filas duplicadas, define en el Sink un pre-copy script que limpie la tabla antes de cargar:
TRUNCATE TABLE dbo.Clientes;
Verificar el resultado
Cuando Debug termine, la pestaña Output debe mostrar el estado Succeeded. Pasa el ratón por encima de la fila para ver los detalles: el número de filas leídas y escritas debe ser igual al del CSV. Para confirmarlo en el destino, ejecuta una consulta sencilla en la base de datos:
SELECT COUNT(*) AS total FROM dbo.Clientes;
Si el total coincide con el número de filas del archivo, la copia funcionó.
Conclusión
Ya tienes un pipeline de copia funcional que mueve datos de Blob Storage a Azure SQL Database. El siguiente paso natural es publicar los cambios y añadir un Schedule trigger para que el pipeline se ejecute solo cada mañana, o parametrizar el nombre del archivo para reutilizar el mismo pipeline con varios CSV. ¿Qué datos de tu día a día serían más útiles si llegaran a la base de datos automáticamente?