(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Cómo cargar archivos CSV en Azure SQL desde Azure Data Factory

João Barros 09 de August de 2026 3 min de lectura

Este tutorial muestra cómo cargar archivos CSV almacenados en Azure Blob Storage en una tabla Azure SQL usando Azure Data Factory, con transformaciones ligeras y manejo de errores. Aprender a automatizar esta tarea es útil para integrar datos de origen en pipelines ETL/ELT y garantizar cargas repetibles y observables.

Requisitos previos

  • Cuenta Azure con permisos para crear recursos
  • Una Azure Storage Account con un contenedor y algunos archivos CSV
  • Una instancia Azure SQL Database con una tabla de destino
  • Una instancia de Azure Data Factory (o permisos para crear una)
  • Azure Key Vault recomendado para secretos (opcional)

Paso 1: Crear Linked Services

Los Linked Services indican al ADF cómo conectarse a las fuentes/destinos. Cree un Linked Service para Azure Blob Storage y otro para Azure SQL Database. Use la interfaz del ADF (Manage > Linked services) y pruebe la conexión. Si utiliza secretos, apunte a Azure Key Vault o use Managed Identity para mayor seguridad.

Paso 2: Crear Datasets para origen y destino

Creé un Dataset del tipo Azure Blob Storage apuntando a los archivos CSV (patrón de nombre o carpeta). Cree un Dataset del tipo Azure SQL Database apuntando a la tabla de destino. En el dataset CSV configure el delimitador, la codificación y si el archivo tiene encabezado.

Paso 3: Pipeline de copia con transformación ligera

Creé un pipeline y añada una actividad Copy. En el panel Source seleccione el Dataset CSV y active la opción de wildcard si es necesario cargar varios archivos (ej.: container/folder/*.csv). En el panel Sink seleccione el Dataset Azure SQL. Para transformación ligera (p. ej.: eliminar columnas o convertir tipos) utilice la sección Mapping o añada una actividad Data Flow si necesita lógica más compleja.

{
  "name": "CopyFromBlobToSql",
  "properties": {
    "activities": [
      {
        "name": "CopyCSVtoSQL",
        "type": "Copy",
        "inputs": [ { "referenceName": "CSV_Dataset", "type": "DatasetReference" } ],
        "outputs": [ { "referenceName": "SQL_Dataset", "type": "DatasetReference" } ],
        "typeProperties": {
          "source": { "type": "DelimitedTextSource" },
          "sink": { "type": "SqlSink" }
        }
      }
    ]
  }
}

Paso 4: Manejar errores y registrar fallos

Añada una actividad If Condition o un pipeline de errores encadenado: configure la propiedad Fault tolerance y la política de retry en la actividad Copy. Para capturar filas con error, configure la Copy activity para escribir en modo "fault tolerant" con una columna de error en un archivo separado en el Blob Storage o en una tabla de auditoría en Azure SQL.

Paso 5: Parametrizar para reutilizar

Parametrizar el pipeline permite usar el mismo flujo para varios archivos o carpetas. Añada parámetros al pipeline (p. ej.: containerName, folderPath, tableName) y páselos a los Datasets vía parámetros. En la interfaz, en los Datasets use expresiones para construir la ruta del archivo con @{pipeline().parameters.folderPath}.

// Ejemplo de parámetro en el dataset (sintaxis de expresión en la interfaz):
"path": "@concat(pipeline().parameters.containerName, '/', pipeline().parameters.folderPath)"

Verificar el resultado

Confirme el éxito verificando el Monitor de Azure Data Factory: compruebe si la actividad Copy terminó con éxito, cuántas filas se leyeron y escribieron. Verifique la tabla Azure SQL para los nuevos registros y el Blob Storage para archivos de error/auditoría. Consulte también el Output de la actividad Copy para mensajes de error detallados.

Conclusión

Ahora tiene un pipeline ADF funcional para cargar archivos CSV desde Azure Blob Storage a Azure SQL con parametrización y manejo básico de errores. Próximos pasos: añadir Data Flows para transformaciones complejas, usar Mapping para emparejar columnas con tipos y automatizar con triggers. Consejo: comience probando con archivos pequeños y active logging detallado antes de escalar.