Formato XML en canalizaciones de Azure Data Factory y Synapse Analytics

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. ¡Obtenga más información sobre cómo iniciar una nueva evaluación gratuita!

Siga este artículo cuando desee analizar los archivos XML.

El formato XML se admite para los conectores siguientes: Amazon S3, Amazon S3 Compatible Storage, Blob de Azure, 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. Se admite como origen, pero no como receptor.

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 compatibles con el conjunto de datos de XML.

Propiedad Descripción Obligatorio
type La propiedad type del conjunto de datos debe establecerse en Xml.
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. Consulte los detalles en el artículo de conectores -> sección de propiedades del conjunto de datos.
encodingName El tipo de codificación usado para leer y escribir archivos de prueba.
Los valores permitidos son los siguientes: "UTF-8", "UTF-16", "UTF-16BE", "UTF-32", "UTF-32BE", "US-ASCII", "UTF-7", "BIG5", "EUC-JP", "EUC-KR", "GB2312", "GB18030", "JOHAB", "SHIFT-JIS", "CP875", "CP866", "IBM00858", "IBM037", "IBM273", "IBM437", "IBM500", "IBM737", "IBM775", "IBM850", "IBM852", "IBM855", "IBM857", "IBM860", "IBM861", "IBM863", "IBM864", "IBM865", "IBM869", "IBM870", "IBM01140", "IBM01141", "IBM01142", "IBM01143", "IBM01144", "IBM01145", "IBM01146", "IBM01147", "IBM01148", "IBM01149", "ISO-2022-JP", "ISO-2022-KR", "ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", "ISO-8859-13", "ISO-8859-15", "WINDOWS-874", "WINDOWS-1250", "WINDOWS-1251", "WINDOWS-1252", "WINDOWS-1253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258".
No
nullValue Especifica la representación de cadena del valor null.
El valor predeterminado es una cadena vacía.
No
compression Grupo de propiedades para configurar la compresión de archivo. Configure esta sección si desea realizar la compresión o descompresión durante la ejecución de la actividad. No
type
(en compression )
El códec de compresión usado para leer y escribir archivos XML.
Los valores permitidos son bzip2, gzip, deflate, ZipDeflate, TarGzip, Tar, snappy o Iz4. La opción predeterminada no se comprime.
Tenga en cuenta que actualmente la actividad de copia no admite "snappy" ni "lz4", y que el flujo de datos de asignación no admite "ZipDeflate", "TarGzip" ni "Tar".
Tenga en cuenta que, cuando se utiliza la actividad de copia para descomprimir archivos ZipDeflate/TarGzip/Tar y escribir en el almacén de datos receptor basado en archivos, los archivos se extraen de manera predeterminada en la carpeta: <path specified in dataset>/<folder named as source compressed file>/. Use preserveZipFileNameAsFolder/preserveCompressionFileNameAsFolder en el origen de la actividad de copia para controlar si se debe conservar el nombre de los archivos comprimidos como una estructura de carpetas.
No.
level
(en compression )
La razón de compresión.
Los valores permitidos son Optimal o Fastest.
- Fastest: la operación de compresión debe completarse tan pronto como sea posible, incluso si el archivo resultante no se comprime de forma óptima.
- Optimal: la operación de compresión se debe comprimir óptimamente, incluso si tarda más tiempo en completarse. Para más información, consulte el tema Nivel de compresión .
No

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

{
    "name": "XMLDataset",
    "properties": {
        "type": "Xml",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            },
            "compression": {
                "type": "ZipDeflate"
            }
        }
    }
}

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 compatibles con el origen de XML.

Obtenga información acerca de cómo asignar datos XML y el formato o el almacén de datos receptor desde la asignación de esquemas. Al obtener una vista previa de los archivos XML, los datos se muestran con una jerarquía de JSON y la ruta de acceso de JSON se usa para apuntar a los campos.

XML como origen

En la sección *source* de la actividad de copia se admiten las siguientes propiedades. Obtenga más información del comportamiento del conector XML.

Propiedad Descripción Obligatorio
type La propiedad type del origen de la actividad de copia debe establecerse en XmlSource.
formatSettings Un grupo de propiedades. Consulte la tabla Configuración de lectura de XML a continuación. No
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. Consulte los detalles en el artículo de conectores -> sección de propiedades de la actividad de copia. No

Configuración de lectura de XML admitida en formatSettings:

Propiedad Descripción Obligatorio
type El tipo de formatSettings debe establecerse en XmlReadSettings.
validationMode Especifica si se debe validar el esquema XML.
Los valores permitidos son ninguno (predeterminado, sin validación), xsd (validar con XSD) y dtd (validar con DTD).
No
espacios de nombres Indica si habilitar el espacio de nombres al analizar los archivos XML. Los valores permitidos son: True (valor predeterminado) y False. No
namespacePrefixes Identificador URI del espacio de nombres a la asignación del prefijo, que se usa para asignar un nombre a los campos al analizar el archivo XML.
Si un archivo XML tiene un espacio de nombres y este está habilitado, de forma predeterminada, el nombre del campo es el mismo que en el documento XML.
Si hay un elemento definido para el URI del espacio de nombres en esta asignación, el nombre del campo es prefix:fieldName.
No
detectDataType Si se van a detectar tipos de datos enteros, dobles y booleanos. Los valores permitidos son: True (valor predeterminado) y False. No
compressionProperties Un grupo de propiedades sobre cómo descomprimir datos para un códec de compresión determinado. No
preserveZipFileNameAsFolder
(en compressionProperties->type como ZipDeflateReadSettings)
Se aplica cuando el conjunto de datos de entrada se configura con compresión ZipDeflate. Indica si se debe conservar el nombre del archivo ZIP de origen como estructura de carpetas durante la copia.
- Cuando se establece en true (valor predeterminado) , el servicio escribe los archivos descomprimidos en <path specified in dataset>/<folder named as source zip file>/.
- Cuando se establece en false, el servicio escribe los archivos descomprimidos directamente en <path specified in dataset>. Asegúrese de que no tenga nombres de archivo duplicados en distintos archivos ZIP de origen para evitar comportamientos acelerados o inesperados.
No
preserveCompressionFileNameAsFolder
(en compressionProperties->type como TarGZipReadSettings o TarReadSettings)
Se aplica cuando el conjunto de datos de entrada está configurado con la compresión TarGzip/Tar. Indica si se debe conservar el nombre del archivo de origen comprimido como estructura de carpetas durante la copia.
- Cuando se establece en true (valor predeterminado) , el servicio escribe los archivos descomprimidos en <path specified in dataset>/<folder named as source compressed file>/.
- Cuando se establece en false, el servicio escribe los archivos descomprimidos directamente en <path specified in dataset>. Asegúrese de que no haya nombres de archivo duplicados en distintos archivos de origen para evitar comportamientos acelerados o inesperados.
No

Propiedades de Asignación de instancias de Data Flow

En los flujos de datos de asignación, puede leer el formato XML en los almacenes de datos siguientes: Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Amazon S3 y SFTP. Puede apuntar a archivos de XML mediante un conjunto de datos de XML o mediante un conjunto de datos alineado.

Propiedades de origen

En la tabla siguiente se enumeran las propiedades que admite un origen XML. Puede editar estas propiedades en la pestaña Opciones del origen. Obtenga más información del comportamiento del conector XML. Al usar un conjunto de valores alineados, verá configuraciones de archivo adicionales que son iguales a las propiedades descritas en la sección Propiedades del conjunto de datos.

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 Marca de tiempo modifiedAfter
modifiedBefore
Modo de validación Especifica si se debe validar el esquema XML. No None (predeterminado, sin validación)
xsd (validar con XSD)
dtd (validar con DTD).
validationMode
Espacios de nombres Indica si habilitar el espacio de nombres al analizar los archivos XML. No true (predeterminado) o false espacios de nombres
Pares de prefijo de espacio de nombres Identificador URI del espacio de nombres a la asignación del prefijo, que se usa para asignar un nombre a los campos al analizar el archivo XML.
Si un archivo XML tiene un espacio de nombres y este está habilitado, de forma predeterminada, el nombre del campo es el mismo que en el documento XML.
Si hay un elemento definido para el URI del espacio de nombres en esta asignación, el nombre del campo es prefix:fieldName.
No Matriz con patrón['URI1'->'prefix1','URI2'->'prefix2'] namespacePrefixes
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

Ejemplo de script de origen XML

En el script siguiente se presenta un ejemplo de una configuración de origen XML en flujos de datos de asignación mediante un modo de conjunto de datos.

source(allowSchemaDrift: true,
    validateSchema: false,
    validationMode: 'xsd',
    namespaces: true) ~> XMLSource

El script siguiente es un ejemplo de una configuración de origen XML que utiliza el modo de conjunto de datos alineado.

source(allowSchemaDrift: true,
    validateSchema: false,
    format: 'xml',
    fileSystem: 'filesystem',
    folderPath: 'folder',
    validationMode: 'xsd',
    namespaces: true) ~> XMLSource

Comportamiento del conector XML

Tenga en cuenta lo siguiente al utilizar XML como origen.

  • Atributos XML:

    • Los atributos de un elemento se analizan como subcampos del elemento en la jerarquía.
    • El nombre del campo de atributo sigue el patrón @attributeName.
  • Validación de esquema XML:

    • Puede optar por no validar el esquema o bien validar el esquema mediante XSD o DTD.
    • Al utilizar XSD o DTD para validar archivos XML, se debe hacer referencia a XSD/DTD dentro de los archivos XML a través de la ruta de acceso relativa.
  • Control de espacios de nombres:

    • El espacio de nombres se puede deshabilitar cuando se usa el flujo de datos, en cuyo caso los atributos que definen el espacio de nombres se analizarán como atributos normales.
    • Cuando el espacio de nombres está habilitado, los nombres del elemento y los atributos siguen el patrón namespaceUri,elementName y namespaceUri,@attributeName de forma predeterminada. Puede definir el prefijo del espacio de nombres para cada URI de espacio de nombres en el origen, en cuyo caso los nombres del elemento y los atributos siguen el patrón definedPrefix:elementName o definedPrefix:@attributeName en su lugar.
  • Columna de valor:

    • Si un elemento XML tiene un valor de texto simple y atributos o elementos secundarios, el valor de texto simple se analiza como el valor de una "columna de valor" con el nombre de campo _value_ integrado. Además, hereda también el espacio de nombres del elemento, si corresponde.