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

Cómo crear un Data Flow de transformación en Synapse Analytics: paso a paso

João Barros 30 de September de 2026 4 min de lectura

Este tutorial muestra cómo crear un Data Flow en Azure Synapse Analytics para transformar datos (limpieza, enriquecimiento y agregación) y cargar el resultado en un Data Lake. Aprenderá por qué usar Data Flows para ETL/ELT sin código y cómo evitar errores comunes de rendimiento y de tipos de datos.

Requisitos previos

  • Cuenta Azure con permisos para crear recursos en una suscripción.
  • Workspace de Azure Synapse Analytics creado.
  • Linked service para el Azure Data Lake Storage Gen2 configurado en Synapse.
  • Ficheros de ejemplo en formato CSV en el Data Lake (p. ej.: /raw/sales/).
  • Conocimientos básicos de transformación de datos y SQL.

Paso 1: Crear un Integration Runtime y Linked Service

El Data Flow usa un Integration Runtime gestionado para ejecutar transformaciones. Confirme que el Workspace tiene un Azure IR o cree un Self-hosted IR si necesita acceder a redes privadas. Después, defina un Linked Service para el ADLS Gen2 donde están los ficheros de origen y donde va a escribir la salida.

// Exemplo conceptual de JSON do Linked Service (abrir em Synapse Studio -> Manage -> Linked services)
{
  "name": "LS_ADLS_gen2",
  "properties": {
    "type": "AzureBlobFS",
    "typeProperties": {
      "url": "https://minhaaccount.dfs.core.windows.net/",
      "servicePrincipalId": "",
      "servicePrincipalKey": "",
      "tenant": ""
    }
  }
}

Paso 2: Crear un Data Flow en Synapse Studio

En Synapse Studio vaya a Integrate -> Data flows -> New data flow. Elija un Mapping Data Flow (permite mapear columnas y aplicar transformaciones). Esto proporciona una interfaz visual para operaciones comunes: Select, Filter, Derived Column, Aggregate, Join, Sort y Sink.

Paso 3: Definir el Source y esquema

Agregue un Source y apunte al Linked Service y a la ruta del fichero CSV. Configure el formato (delimitador, header) y el esquema: se recomienda definir explícitamente los tipos de las columnas para evitar conversiones inesperadas.

// Exemplo de configurações no Source (conceptual)
Source:
  dataset: /raw/sales/sales_2026.csv
  format: csv
  firstRowAsHeader: true
  schema:
    SaleId: long
    Date: string
    Amount: decimal
    Region: string

Paso 4: Limpieza y normalización con Derived Column y Filter

Use Derived Column para normalizar campos (p. ej.: convertir fechas, eliminar espacios) y Filter para eliminar filas inválidas (p. ej.: Amount nulo o negativo). En Derived Column cree expresiones simples; p. ej.: toDate(Date, 'yyyy-MM-dd') para normalizar la fecha.

// Exemplo de expressões no Derived Column
cleanDate = toDate(Date, 'yyyy-MM-dd')
cleanRegion = trim(Region)
validAmount = iif(isNull(Amount) || Amount <= 0, null(), Amount)

Paso 5: Agregación y enriquecimiento con Aggregate y Join

Si desea calcular métricas (p. ej.: total de ventas por región y mes) utilice Aggregate: agrupe por Region y month(cleanDate). Para enriquecer, añada un segundo Source (p. ej.: tabla de regiones) y realice un Join por clave.

// Exemplo conceptual de Aggregate
groupBy: [Region, year(cleanDate), month(cleanDate)]
aggregates:
  totalAmount: sum(Amount)
  countSales: count(SaleId)

Paso 6: Configurar el Sink y el formato de salida

Agregue un Sink para escribir el resultado en el Data Lake. Elija el formato de salida: Parquet se recomienda para rendimiento y compresión. Configure particiones lógicas (p. ej.: por año/mes) para optimizar consultas posteriores.

Sink:
  linkedService: LS_ADLS_gen2
  path: /processed/sales/
  format: parquet
  partitionBy: [year, month]
  fileNameOption: PerPartition

Paso 7: Probar localmente y optimizar rendimiento

Ejecute el Data Flow en modo Debug en Synapse Studio con una muestra de datos. Verifique tiempos, memoria y cardinalidad de joins. Ajuste las opciones de rendimiento del Data Flow (clusterSize, cores) si es necesario y evite shuffles innecesarios: prefiera agregaciones previas y columnas reducidas.

Verificar el resultado

Confirme que el fichero Parquet se generó en la ruta /processed/sales/ y que las particiones (p. ej.: year=2026/month=9) existen. Puede usar Synapse Studio -> Data -> Linked -> abrir la ruta y previsualizar. Alternativamente, ejecute una query simple en el SQL Serverless para validar esquema y filas:

SELECT TOP 10 *
FROM OPENROWSET(
  BULK 'https://minhaaccount.dfs.core.windows.net/processed/sales/*/*.parquet',
  DATA_SOURCE = 'LS_ADLS_gen2',
  FORMAT = 'PARQUET'
) AS rows;

Conclusión

Crear un Mapping Data Flow en Azure Synapse Analytics es una forma visual y potente de construir pipelines ETL/ELT sin código complejo, permitiendo limpieza, agregación y escritura en Parquet para mejor rendimiento. Siguientes pasos: automatizar el Data Flow dentro de un Pipeline con programación y monitorización, o probar Sink para Azure SQL/Dedicated SQL Pool. Consejo: comience con muestras pequeñas en Debug y valide esquemas para evitar errores de tipo en producción.