Formato Avro en Azure Data Factory

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Siga este artículo cuando quiera analizar los archivos Avro o escribir los datos en formato Avro.

El formato Avro se admite para los conectores siguientes: Amazon S3, Amazon S3 Compatible Storage, Azure Blob, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure Files, File System, FTP, Google Cloud Storage, HDFS, HTTP, Oracle Cloud Storage y SFTP.

Propiedades del conjunto de datos

Si desea ver una lista completa de las secciones y propiedades disponibles para definir conjuntos de datos, consulte el artículo sobre conjuntos de datos. En esta sección se proporciona una lista de las propiedades que admite el conjunto de datos de Avro.

Propiedad Descripción Obligatorio
type La propiedad type del conjunto de datos debe establecerse en Avro.
ubicación Configuración de ubicación de los archivos. Cada conector basado en archivos tiene su propio tipo de ubicación y propiedades compatibles en location. Vea los detalles en el artículo de conectores -> sección de propiedades del conjunto de datos.
avroCompressionCodec El códec de compresión que se usará al escribir en archivos Avro. Al leer desde archivos Avro, Data Factory determina automáticamente el códec de compresión según los metadatos del archivo.
Los tipos admitidos son "none" (valor predeterminado), "deflate", "snappy". Tenga en cuenta que la actividad de copia no es compatible actualmente con Snappy cuando hay archivos Avro de lectura y escritura.
No

Nota

No se admiten espacios en blanco en el nombre de columna de los archivos Avro.

A continuación se muestra un ejemplo de un conjunto de datos de Avro en Azure Blob Storage:

{
    "name": "AvroDataset",
    "properties": {
        "type": "Avro",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            },
            "avroCompressionCodec": "snappy"
        }
    }
}

Propiedades de la actividad de copia

Si desea ver una lista completa de las secciones y propiedades disponibles para definir actividades, consulte el artículo sobre canalizaciones. En esta sección se proporciona una lista de las propiedades que admiten el receptor y el origen de Avro.

Avro como origen

En la sección *source* de la actividad de copia se admiten las siguientes propiedades.

Propiedad Descripción Obligatorio
type La propiedad type del origen de la actividad de copia debe establecerse en AvroSource.
storeSettings Un grupo de propiedades sobre cómo leer datos de un almacén de datos. Cada conector basado en archivos tiene su propia configuración de lectura admitida en storeSettings. Vea los detalles en el artículo de conectores -> sección de propiedades de la actividad de copia. No

Avro como receptor

En la sección *sink* de la actividad de copia se admiten las siguientes propiedades.

Propiedad Descripción Obligatorio
type La propiedad type del origen de la actividad de copia debe establecerse en AvroSink.
formatSettings Un grupo de propiedades. Consulte la tabla Configuración de escritura de Avro a continuación. No
storeSettings Un grupo de propiedades sobre cómo escribir datos en un almacén de datos. Cada conector basado en archivos tiene su propia configuración de escritura admitida en storeSettings. Vea los detalles en el artículo de conectores -> sección de propiedades de la actividad de copia. No

Configuración de escritura de Avro compatible en formatSettings:

Propiedad Descripción Obligatorio
type La propiedad type de formatSettings debe establecerse en AvroWriteSettings.
maxRowsPerFile Al escribir datos en una carpeta, puede optar por escribir en varios archivos y especificar el número máximo de filas por archivo. No
fileNamePrefix Se aplica cuando se configura maxRowsPerFile.
Especifique el prefijo de nombre de archivo al escribir datos en varios archivos, lo que da como resultado este patrón: <fileNamePrefix>_00000.<fileExtension>. Si no se especifica, el prefijo de nombre de archivo se generará automáticamente. Esta propiedad no se aplica cuando el origen es un almacén basado en archivos o un almacén de datos habilitado para la opción de partición.
No

Propiedades de Asignación de instancias de Data Flow

En los flujos de datos de asignación, puede leer y escribir en formato Avro en los siguientes almacenes de datos: Azure Blob Storage, Azure Data Lake Storage Gen1 y Azure Data Lake Storage Gen2.

Propiedades de origen

En la tabla siguiente se enumeran las propiedades que admite un origen Avro. Puede editar estas propiedades en la pestaña Source options (Opciones de origen).

Nombre Descripción Obligatorio Valores permitidos Propiedad de script de flujo de datos
Rutas de acceso comodín Se procesarán todos los archivos que coincidan con la ruta de acceso comodín. Reemplaza a la carpeta y la ruta de acceso del archivo establecidas en el conjunto de datos. no String[] wildcardPaths
Ruta de acceso raíz de la partición En el caso de datos de archivos con particiones, puede especificar una ruta de acceso raíz de la partición para leer las carpetas con particiones como columnas. no String partitionRootPath
Lista de archivos Si el origen apunta a un archivo de texto que enumera los archivos que se van a procesar. no true o false fileList
Columna para almacenar el nombre de archivo Se crea una nueva columna con el nombre y la ruta de acceso del archivo de origen. no String rowUrlColumn
Después de finalizar Se eliminan o mueven los archivos después del procesamiento. La ruta de acceso del archivo comienza en la raíz del contenedor. no Borrar: true o false
Mover: ['<from>', '<to>']
purgeFiles
moveFiles
Filtrar por última modificación Elija si desea filtrar los archivos en función de cuándo se modificaron por última vez. no Timestamp modifiedAfter
modifiedBefore
No permitir que se encuentren archivos Si es true, no se devuelve un error si no se encuentra ningún archivo. no true o false ignoreNoFilesFound

Propiedades del receptor

En la tabla siguiente se enumeran las propiedades que admite un receptor Avro. Puede editar estas propiedades en la pestaña Configuración.

Nombre Descripción Obligatorio Valores permitidos Propiedad de script de flujo de datos
Borrar la carpeta Si la carpeta de destino se borra antes de escribir. no true o false truncate
Opción de nombre de archivo El formato de nombre de los datos escritos. De forma predeterminada, un archivo por partición en formato part-#####-tid-<guid>. no Patrón: String
Por partición: String[]
Como datos de columna: String
Salida en un solo archivo: ['<fileName>']
filePattern
partitionFileNames
rowUrlColumn
partitionFileNames
Entrecomillar todo Incluye todos los valores entre comillas. no true o false quoteAll

Compatibilidad con tipos de datos

Actividad de copia

No se admiten tipos de datos complejos de Avro (registros, enumeraciones, matrices, asignaciones, uniones y fijos) en actividad de copia.

Flujos de datos

Al trabajar con archivos Avro en flujos de datos, puede leer y escribir tipos de datos complejos, pero asegúrese de borrar primero el esquema físico del conjunto de datos. En flujos de datos, puede establecer la proyección lógica y derivar columnas que sean estructuras complejas, y después asignar automáticamente esos campos a un archivo Avro.

Pasos siguientes