Formato XML nos pipelines do Azure Data Factory e do Synapse Analytics
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Gorjeta
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!
Siga este artigo quando quiser analisar os arquivos XML.
O formato XML é compatível com os seguintes conectores: 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 e SFTP. Ele é suportado como fonte, mas não coletor.
Propriedades do conjunto de dados
Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte o artigo Conjuntos de dados. Esta seção fornece uma lista de propriedades suportadas pelo conjunto de dados XML.
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type do conjunto de dados deve ser definida como Xml. | Sim |
localização | Configurações de localização do(s) arquivo(s). Cada conector baseado em arquivo tem seu próprio tipo de local e propriedades suportadas em location . Consulte os detalhes no artigo do conector -> seção Propriedades do conjunto de dados. |
Sim |
encodingName | O tipo de codificação usado para ler/gravar arquivos de teste. Os valores permitidos são os seguintes: "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", "IBMibm 737", "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". |
Não |
nullValue | Especifica a representação da cadeia de caracteres do valor nulo. O valor padrão é cadeia de caracteres vazia. |
Não |
compressão | Grupo de propriedades para configurar a compactação de arquivos. Configure esta seção quando quiser fazer compressão/descompactação durante a execução da atividade. | Não |
tipo (em compression ) |
O codec de compressão usado para ler/gravar arquivos XML. Os valores permitidos são bzip2, gzip, deflate, ZipDeflate, TarGzip, Tar, snappy ou lz4. O padrão não é compactado. Observação atualmente A atividade de cópia não suporta "snappy" & "lz4", e o fluxo de dados de mapeamento não suporta "ZipDeflate", "TarGzip" e "Tar". Observe que, ao usar a atividade de cópia para descompactar o(s) arquivo(s) TarGzip/Tar do ZipDeflate/e gravar no armazenamento de dados do coletor baseado em arquivo, por padrão, os arquivos são extraídos para a pasta: <path specified in dataset>/<folder named as source compressed file>/ , use/preserveCompressionFileNameAsFolder preserveZipFileNameAsFolder na fonte de atividade de cópia para controlar se o nome do(s) arquivo(s) compactado(s) deve ser preservado como estrutura de pasta. |
N.º |
nível (em compression ) |
A taxa de compressão. Os valores permitidos são Ótimo ou Mais Rápido. - Mais rápido: A operação de compressão deve ser concluída o mais rápido possível, mesmo que o arquivo resultante não seja compactado de forma ideal. - Ideal: A operação de compressão deve ser compactada de forma ideal, mesmo que a operação demore mais tempo para ser concluída. Para obter mais informações, consulte o tópico Nível de compactação. |
Não |
Abaixo está um exemplo de conjunto de dados XML no Armazenamento de Blobs do Azure:
{
"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"
}
}
}
}
Propriedades da atividade Copy
Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte o artigo Pipelines . Esta seção fornece uma lista de propriedades suportadas pela fonte XML.
Saiba mais sobre como mapear dados XML e colecionar armazenamento/formato de dados a partir do mapeamento de esquema. Ao visualizar arquivos XML, os dados são mostrados com a hierarquia JSON e você usa o caminho JSON para apontar para os campos.
XML como fonte
As propriedades a seguir são suportadas na seção copy activity *source* . Saiba mais sobre o comportamento do conector XML.
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type da fonte de atividade de cópia deve ser definida como XmlSource. | Sim |
formatConfigurações | Um grupo de propriedades. Consulte a tabela de configurações de leitura XML abaixo. | Não |
storeSettings | Um grupo de propriedades sobre como ler dados de um armazenamento de dados. Cada conector baseado em arquivo tem suas próprias configurações de leitura suportadas em storeSettings . Veja os detalhes no artigo do conector -> Seção Copiar propriedades da atividade. |
Não |
Configurações de leitura XML suportadas em formatSettings
:
Property | Descrição | Obrigatório |
---|---|---|
tipo | O tipo de formatSettings deve ser definido como XmlReadSettings. | Sim |
validationMode | Especifica se o esquema XML deve ser validado. Os valores permitidos são nenhum (padrão, sem validação), xsd (validar usando XSD), dtd (validar usando DTD). |
Não |
espaços para nomes | Se o namespace deve ser habilitado ao analisar os arquivos XML. Os valores permitidos são: true (padrão), false. | Não |
namespacePrefixes | URI de namespace para mapeamento de prefixo, que é usado para nomear campos ao analisar o arquivo xml. Se um arquivo XML tiver namespace e o namespace estiver habilitado, por padrão, o nome do campo será o mesmo que no documento XML. Se houver um item definido para o URI do namespace neste mapa, o nome do campo será prefix:fieldName . |
Não |
detectDataType | Se os tipos de dados inteiros, duplos e booleanos devem ser detetados. Os valores permitidos são: true (padrão), false. | Não |
compressionPropriedades | Um grupo de propriedades sobre como descompactar dados para um determinado codec de compactação. | Não |
preserveZipFileNameAsFolder (em compressionProperties ->type como ZipDeflateReadSettings ) |
Aplica-se quando o conjunto de dados de entrada é configurado com compactação ZipDeflate . Indica se o nome do arquivo zip de origem deve ser preservado como estrutura de pastas durante a cópia. - Quando definido como true (padrão), o serviço grava arquivos descompactados em <path specified in dataset>/<folder named as source zip file>/ .- Quando definido como false, o serviço grava arquivos descompactados diretamente no <path specified in dataset> . Certifique-se de que não tem nomes de ficheiros duplicados em ficheiros zip de origem diferentes para evitar corridas ou comportamentos inesperados. |
Não |
preserveCompressionFileNameAsFolder (em compressionProperties ->type como TarGZipReadSettings ou TarReadSettings ) |
Aplica-se quando o conjunto de dados de entrada é configurado com compactação TarGzip/Tar. Indica se o nome do arquivo compactado de origem deve ser preservado como estrutura de pasta durante a cópia. - Quando definido como true (padrão), o serviço grava arquivos descompactados em <path specified in dataset>/<folder named as source compressed file>/ . - Quando definido como false, o serviço grava arquivos descompactados diretamente no <path specified in dataset> . Certifique-se de que não tem nomes de ficheiro duplicados em ficheiros de origem diferentes para evitar corridas ou comportamentos inesperados. |
Não |
Mapeando propriedades de fluxo de dados
No mapeamento de fluxos de dados, você pode ler o formato XML nos seguintes armazenamentos de dados: Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Amazon S3 e SFTP. Você pode apontar para arquivos XML usando um conjunto de dados XML ou um conjunto de dados embutido.
Propriedades de origem
A tabela abaixo lista as propriedades suportadas por uma fonte XML. Você pode editar essas propriedades na guia Opções de origem. Saiba mais sobre o comportamento do conector XML. Ao usar o conjunto de dados embutido, você verá configurações de arquivo adicionais, que são as mesmas que as propriedades descritas na seção de propriedades do conjunto de dados.
Nome | Descrição | Obrigatório | Valores permitidos | Propriedade do script de fluxo de dados |
---|---|---|---|---|
Caminhos curinga | Todos os arquivos correspondentes ao caminho curinga serão processados. Substitui a pasta e o caminho do arquivo definidos no conjunto de dados. | Não | String[] | wildcardCaminhos |
Caminho da raiz da partição | Para dados de arquivo particionados, você pode inserir um caminho raiz de partição para ler pastas particionadas como colunas | Não | String | partitionRootPath |
Lista de ficheiros | Se sua fonte está apontando para um arquivo de texto que lista os arquivos a serem processados | Não | true ou false |
Lista de arquivos |
Coluna para armazenar o nome do arquivo | Criar uma nova coluna com o nome do arquivo de origem e o caminho | Não | String | rowUrlColumn |
Após a conclusão | Exclua ou mova os arquivos após o processamento. O caminho do arquivo começa a partir da raiz do contêiner | Não | Eliminar: true ou false Movimentar-se: ['<from>', '<to>'] |
purgeFiles moveFiles |
Filtrar por última modificação | Opte por filtrar ficheiros com base na data em que foram alterados pela última vez | Não | Carimbo de Data/Hora | modificadoApós modificadoAntes |
Modo de validação | Especifica se o esquema XML deve ser validado. | Não | None (padrão, sem validação)xsd (validar usando XSD)dtd (validar usando DTD). |
validationMode |
Espaços de nomes | Se o namespace deve ser habilitado ao analisar os arquivos XML. | Não | true (por defeito) ou false |
espaços para nomes |
Pares de prefixo de namespace | URI de namespace para mapeamento de prefixo, que é usado para nomear campos ao analisar o arquivo xml. Se um arquivo XML tiver namespace e o namespace estiver habilitado, por padrão, o nome do campo será o mesmo que no documento XML. Se houver um item definido para o URI do namespace neste mapa, o nome do campo será prefix:fieldName . |
Não | Matriz com padrão['URI1'->'prefix1','URI2'->'prefix2'] |
namespacePrefixes |
Não permitir que nenhum arquivo seja encontrado | Se verdadeiro, um erro não é lançado se nenhum arquivo for encontrado | não | true ou false |
ignoreNoFilesFound |
Exemplo de script de código-fonte XML
O script abaixo é um exemplo de uma configuração de origem XML no mapeamento de fluxos de dados usando o modo de conjunto de dados.
source(allowSchemaDrift: true,
validateSchema: false,
validationMode: 'xsd',
namespaces: true) ~> XMLSource
O script abaixo é um exemplo de uma configuração de origem XML usando o modo de conjunto de dados embutido.
source(allowSchemaDrift: true,
validateSchema: false,
format: 'xml',
fileSystem: 'filesystem',
folderPath: 'folder',
validationMode: 'xsd',
namespaces: true) ~> XMLSource
Comportamento do conector XML
Observe o seguinte ao usar XML como fonte.
Atributos XML:
- Os atributos de um elemento são analisados como os subcampos do elemento na hierarquia.
- O nome do campo de atributo segue o padrão
@attributeName
.
Validação do esquema XML:
- Você pode optar por não validar o esquema ou validar o esquema usando XSD ou DTD.
- Ao usar XSD ou DTD para validar arquivos XML, o XSD/DTD deve ser referenciado dentro dos arquivos XML através do caminho relativo.
Tratamento de namespace:
- O namespace pode ser desabilitado ao usar o fluxo de dados, caso em que os atributos que definem o namespace serão analisados como atributos normais.
- Quando o namespace está habilitado, os nomes do elemento e dos atributos seguem o padrão
namespaceUri,elementName
enamespaceUri,@attributeName
por padrão. Você pode definir o prefixo do namespace para cada URI do namespace na origem, caso em que os nomes do elemento e dos atributos seguem o padrãodefinedPrefix:elementName
oudefinedPrefix:@attributeName
, em vez disso.
Coluna Valor:
- Se um elemento XML tiver um valor de texto simples e elementos atributos/filho, o valor de texto simples será analisado como o valor de uma "coluna de valor" com nome
_value_
de campo interno. E ele herda o namespace do elemento também, se aplicável.
- Se um elemento XML tiver um valor de texto simples e elementos atributos/filho, o valor de texto simples será analisado como o valor de uma "coluna de valor" com nome