Formato XML em pipelines do Azure Data Factory e do Synapse Analytics
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Dica
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!
Siga este artigo quando desejar analisar os arquivos XML.
O formato XML é compatível com os seguintes conectores: Amazon S3, Armazenamento compatível com Amazon S3, Blob do Azure, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Arquivos do Azure, Sistema de arquivos, FTP, Google Cloud Storage, HDFS, HTTP, Oracle Cloud Storage e SFTP. É compatível como origem, mas não como coletor.
Propriedades do conjunto de dados
Para obter uma lista completa das seções e propriedades disponíveis para definir os conjuntos de dados, confira o artigo sobre Conjuntos de Dados. Esta seção fornece uma lista das propriedades com suporte pelo conjunto de dados XML.
Propriedade | Descrição | Obrigatório |
---|---|---|
type | A propriedade type do conjunto de dados deve ser definida como Xml. | Sim |
local | Configurações de local dos arquivos. Cada conector baseado em arquivo tem seu próprio tipo de local e propriedades com suporte em location . Veja os detalhes na seção do artigo sobre o conector –> 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", "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". |
Não |
nullValue | Especifica a representação de cadeia de caracteres do valor nulo. O valor padrão pode ser uma cadeia de caracteres vazia. |
Não |
compactação | Grupo de propriedades para configurar a compactação de arquivo. Configure esta seção quando desejar fazer compactação/descompactação durante a execução da atividade. | Não |
type (em compression ) |
O codec de compactação usado para ler/gravar arquivos XML. Os valores permitidos são bzip2, gzip, deflate, ZipDeflate, TarGzip, tar, snappyou lz4. O padrão é não compactado. Observação a atividade Copy atualmente não dá suporte a "snappy" e "lz4" e o fluxo de dados de mapeamento não dá suporte a "ZipDeflate", "TarGzip" e "Tar". Observação ao usar a atividade Copy para descompactar arquivos ZipDeflate/TarGzip/Tar e gravar no armazenamento de dados de 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 preserveZipFileNameAsFolder /preserveCompressionFileNameAsFolder na origem da atividade de cópia para controlar se deseja preservar o nome dos arquivos compactados como estrutura de pastas. |
Não. |
nível (em compression ) |
A taxa de compactação. Os valores permitidos são Ideal ou Mais rápida. - Mais rápida: a operação de compactação deve ser concluída o mais rápido possível, mesmo se o arquivo resultante não for compactado da maneira ideal. - Ideal: a operação de compactação deve ser concluída da maneira ideal, mesmo se a operação demorar mais tempo para ser concluída. Para saber mais, veja o tópico Nível de compactação . |
Não |
Veja abaixo um exemplo de conjunto de um 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 de cópia
Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines. Esta seção fornece uma lista das propriedades com suporte pela origem XML.
Saiba mais sobre como mapear dados XML e o formato/armazenamento de dados do coletor do mapeamento de esquema. Ao visualizar arquivos XML, os dados são mostrados com a hierarquia JSON e você deve usar o caminho JSON para apontar para os campos.
XML como origem
As propriedades a seguir têm suporte na seção de *origem* da atividade de cópia. Saiba mais sobre o comportamento do conector XML.
Propriedade | Descrição | Obrigatório |
---|---|---|
type | A propriedade type da origem da atividade de cópia deve ser definida como XmllSource. | Sim |
formatSettings | 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 com suporte em storeSettings . Veja os detalhes na seção do artigo sobre o conector –> Propriedades da atividade Copy. |
Não |
Configurações de leitura XML com suporte em formatSettings
:
Propriedade | Descrição | Obrigatório |
---|---|---|
type | 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 |
namespaces | Se é para habilitar o namespace 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 inteiro, duplo e booliano devem ser detectados. Os valores permitidos são: true (padrão), false. | Não |
compressionProperties | 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 verdadeiro (padrão) , o serviço grava arquivos descompactados em <path specified in dataset>/<folder named as source zip file>/ .• Quando definido como falso, o serviço grava arquivos descompactados diretamente em <path specified in dataset> . Verifique se não há nomes de arquivo duplicados nos arquivos zip de origem diferentes para evitar a corrida ou comportamento inesperado. |
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 zip de origem deve ser preservado como estrutura de pastas durante a cópia. • Quando definido como verdadeiro (padrão) , o serviço grava arquivos descompactados em <path specified in dataset>/<folder named as source compressed file>/ . • Quando definido como falso, o serviço grava arquivos descompactados diretamente em <path specified in dataset> . Verifique se não há nomes de arquivo duplicados nos arquivos de origem diferentes para evitar a corrida ou comportamento inesperado. |
Não |
Mapeamento de propriedades de fluxo de dados
Nos fluxos de dados de mapeamento, é possível ler o formato XML nos seguintes armazenamentos de dados: Armazenamento de Blobs do Azure, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Amazon S3 e SFTP. É possível apontar para arquivos XML usando o conjunto de programas XML ou um conjunto de linhas embutido.
Propriedades da Origem
A tabela abaixo lista as propriedades com suporte de uma origem XML. É possível editar essas propriedades na guia Opções de origem. Saiba mais sobre o comportamento do conector XML. Ao usar o conjunto de linhas embutido, será possível ver as configurações de arquivo adicionais, que são iguais às propriedades descritas na seção Propriedades do conjunto.
Nome | Descrição | Obrigatório | Valores permitidos | Propriedade do script do Fluxo de Dados |
---|---|---|---|---|
Caminhos curinga | Todos os arquivos correspondentes ao caminho curinga serão processados. Substitui a pasta e o caminho do arquivo definido no conjunto de dados. | Não | String[] | wildcardPaths |
Caminho raiz da partição | Para dados de arquivo particionados, é possível inserir um caminho raiz de partição para ler pastas particionadas como colunas | Não | String | partitionRootPath |
Lista de arquivos | Se sua fonte estiver apontando para um arquivo de texto que lista os arquivos a serem processados | Não | true ou false |
fileList |
Coluna para armazenar o nome do arquivo | Criar uma nova coluna com o nome e o caminho do arquivo de origem | Não | String | rowUrlColumn |
Após a conclusão | Exclua ou mova os arquivos após o processamento. O caminho do arquivo inicia a partir da raiz do contêiner | Não | Excluir: true ou false Mover ['<from>', '<to>'] |
purgeFiles moveFiles |
Filtrar pela última modificação | Escolher filtrar arquivos com base na última alteração | Não | Carimbo de data/hora | modifiedAfter modifiedBefore |
Modo de validação | Especifica se o esquema XML deve ser validado. | Não | None (padrão, sem validação)xsd (validar usando o XSD)dtd (validar usando o DTD). |
validationMode |
Namespaces | Se é para habilitar o namespace ao analisar os arquivos XML. | Não | true (padrão) ou false |
namespaces |
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 |
Permitir nenhum arquivo encontrado | Se for true, um erro não será gerado caso nenhum arquivo seja encontrado | não | true ou false |
ignoreNoFilesFound |
Exemplo de script de origem XML
O script abaixo é um exemplo de uma configuração de origem XML nos fluxos de dados de mapeamento usando o modo DataSet.
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:
- É possível 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 por meio do caminho relativo.
Tratamento de namespace:
- O namespace pode ser desabilitado ao usar o fluxo de dados. Neste caso, 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. É possível definir o prefixo de namespace para cada URI de namespace na origem. Neste caso, os nomes do elemento e dos atributos seguem o padrãodefinedPrefix:elementName
oudefinedPrefix:@attributeName
em vez disso.
Coluna de valor:
- Se um elemento XML tiver um valor de texto simples e atributos/elementos filho, o valor de texto simples será analisado como o valor de uma "coluna de valor" com o nome de campo interno
_value_
. E também herda o namespace do elemento, se aplicável.
- Se um elemento XML tiver um valor de texto simples e atributos/elementos filho, o valor de texto simples será analisado como o valor de uma "coluna de valor" com o nome de campo interno