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

Cómo cargar archivos Avro en ADLS Gen2 con Azure Data Factory

João Barros 16 de October de 2026 4 min de lectura

Este tutorial muestra cómo cargar archivos Avro en ADLS Gen2 usando Azure Data Factory, convirtiéndolos a Parquet para optimizar almacenamiento y lectura. Es útil cuando recibe dumps Avro de sistemas externos y desea preparar datos para análisis en Power BI o procesamiento en Synapse.

Prerequisitos

  • Cuenta Azure con permisos para crear recursos.
  • Storage account con ADLS Gen2 (hierarchical namespace) o OneLake de destino.
  • Azure Data Factory (V2) creado.
  • Archivos Avro disponibles en un Blob Storage, endpoint HTTP o FTP.
  • Conocimientos básicos de pipelines en Azure Data Factory.

Paso 1: Crear Linked Services para origen y destino

Primero, cree dos Linked Services en Azure Data Factory: uno para el origen donde están los archivos Avro (Blob Storage, HTTP o FTP) y otro para el ADLS Gen2 de destino. Usar Managed Identity es recomendable por razones de seguridad.

// Exemplo JSON mínimo de Linked Service para Azure Blob Storage (a interface de authoring do ADF faz isto automaticamente)  {
  "name": "LS_BlobSource",
  "properties": {
    "type": "AzureBlobStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net"
    }
  }
}

Paso 2: Crear Datasets Avro y Parquet

Crear un Dataset que represente los archivos Avro (source) y otro Dataset para Parquet (sink). En el Dataset Avro seleccione el formato Avro; en Parquet elija el formato Parquet y defina la carpeta de salida en ADLS Gen2.

// Dataset Avro (exemplo de schema opcional)  {
  "name": "DS_Avro_Source",
  "properties": {
    "type": "AzureBlob",
    "typeProperties": {
      "format": {
        "type": "Avro"
      }
    }
  }
}

Paso 3: Pipeline con actividad Copy para conversión Avro→Parquet

Agregue una actividad Copy en el pipeline. Defina la source para el Dataset Avro y el sink para el Dataset Parquet. En el Mapping elija Auto mapping (o defina un mapeo manual si desea renombrar campos). Configure performance y paralelismo según el tamaño de los archivos.

// Exemplo simplificado de activity Copy JSON (ADF pipeline)  {
  "name": "Copy_Avro_to_Parquet",
  "type": "Copy",
  "inputs": [{ "referenceName": "DS_Avro_Source", "type": "DatasetReference" }],
  "outputs": [{ "referenceName": "DS_Parquet_Sink", "type": "DatasetReference" }],
  "typeProperties": {
    "enableStaging": false,
    "source": { "type": "AvroSource" },
    "sink": { "type": "ParquetSink" }
  }
}

Paso 4: Manejar archivos de gran tamaño y rendimiento

Si los archivos Avro son grandes, configure MaxConcurrentConnections y utilice PolyBase o copia paralela cuando el sink sea Azure SQL/Synapse. Para ADLS Gen2, aumente el grado de paralelismo de la copia (degree of copy parallelism) y ajuste el block size en Parquet para mejorar la lectura posterior.

// Exemplo: propriedades de performance na actividade Copy
"typeProperties": {
  "parallelCopies": 8,
  "dataIntegrationUnit": 32
}

Paso 5: Tratar esquemas inconsistentes (errores comunes)

Errores comunes: schema drift en Avro, campos opcionales o tipos distintos entre archivos. Use Mapping Data Flows si necesita lógica para normalizar campos, o añada una actividad If Condition + Lookup para validar el schema antes de la copia.

// Pseudocódigo: verificar existência de campo via Get Metadata + If Condition  Get Metadata -> schema
If schema contém campoX -> executar Copy
Else -> enviar alerta via Web Activity

Paso 6: Automatizar con trigger y logging

Creé un trigger programado o basado en evento (BlobCreated) para disparar el pipeline cuando lleguen nuevos archivos Avro. Configure diagnóstico/logging en ADF para capturar fallos y tiempos de ejecución, y utilice Azure Monitor para alertas.

// Exemplo: trigger tipo Event Grid para BlobCreated (a UI do ADF cria este JSON)  {
  "name": "Trigger_OnBlobCreated",
  "type": "BlobEvents",
  "properties": {
    "events": [ "Microsoft.Storage.BlobCreated" ]
  }
}

Verificar el resultado

Compruebe la carpeta de destino en ADLS Gen2: debería ver archivos Parquet con el tamaño y número esperados. Abra un archivo Parquet con herramientas como Azure Storage Explorer o utilice Synapse/Databricks para leer y validar el schema y muestras de datos. En ADF Monitor vea los detalles de la ejecución (Run details) de la actividad Copy para confirmar rowsCopied y tiempo.

Conclusión

Al convertir Avro a Parquet en Azure Data Factory obtiene archivos en formato columnar listos para análisis y optimiza costes y rendimiento. Próximos pasos: añadir validación de calidad (Data Flows) o integrar con Synapse para catálogos de tablas. Consejo: probar con archivos pequeños primero ayuda a ajustar el paralelismo sin costes elevados — ¿ha probado usar schema drift con Mapping Data Flows?