Importar documentos XML para tabelas do SQL Server usando pacotes SSIS

Importar documentos XML para tabelas do SQL Server usando pacotes SSIS

Importar documentos XML para tabelas do SQL Server usando pacotes SSIS 1


Este artigo orienta você na importação de documentos XML para tabelas SQL usando pacotes SSIS.

Introdução ao XML

XML (Extensible Markup Language) é uma linguagem de marcação simplificada. É uma linguagem padrão W3C de código aberto e usada principalmente para armazenar e transportar dados. Foi derivado da Linguagem de Marcação Generalizada Padrão (SGML). É diferente do HTML, mas possui algumas semelhanças.

  • HTML é estático enquanto XML é de natureza dinâmica

  • Em HTML, usamos tags predefinidas, enquanto o XML usa tags definidas pelo usuário

  • XML é uma linguagem que diferencia maiúsculas de minúsculas, enquanto HTML não é

  • HTML concentra-se nos dados apresentados, enquanto o foco XML está no armazenamento e transporte de dados

A definição de esquema XML (XSD) é usada para validar, formatar e descrever um arquivo XML. Um documento deve ser validado no XSD para ser um arquivo XML válido. Um documento XML é válido se o XSD definir as tags e atributos para ele. XSD também é uma recomendação do W3C (World Wide Web Consortium)

Às vezes, trabalhamos com os vários formatos de dados e obtemos o requisito de carregar os dados no SQL Server. A fonte de dados pode ser um banco de dados relacional diferente, Excel, CSV, HTML.

Podemos obter um requisito para carregar dados XML nas tabelas do SQL Server. No artigo, Trabalhando com dados XML no SQL Server, falamos sobre dados do SQL Server em formatos XML. Convido você a ler este artigo para entender a conversão de dados no formato XML a partir de tabelas SQL.

O pacote SQL Server Integration (SSIS Package) é uma ferramenta ETL (Extract-Transform-Load) para trabalhar com estruturas de dados complexas, transformar e carregar no SQL Server ou em qualquer outro destino. Neste artigo, exploraremos o processo de usar um pacote SSIS para carregar arquivos XML nas tabelas do SQL Server.

Dados e pré-requisitos de amostra

Neste artigo, usamos o seguinte XML para carregar no SQL Server. Eu baixei esse XML de exemplo do Microsoft Docs.

Dados XML de amostra

  • Instale o Visual Studio 2019 com o SQL Server Data Tools. Você pode acessar os documentos da Microsoft para fazer o download e instalá-lo

Você deve obter conhecimento básico dos pacotes SSIS antes de continuar com este artigo. Caso você seja iniciante, pode consultar os artigos do SSIS no SQLShack.

Etapas para importar dados XML para o SQL Server usando um pacote SSIS

Inicie o Visual Studio 2019 e crie um projeto de serviço de integração. Você deve escolher um nome de projeto e um pacote SSIS apropriados. Não é um requisito, mas uma prática recomendada para reconhecer projetos com seus nomes.

Projeto de pacote SSIS no Visual Studio

No pacote SSIS, adicione um Tarefa Fluxo de Dados na área de controle de fluxo. Clique com o botão direito do mouse e renomeie a tarefa de fluxo de dados.

Tarefa Fluxo de Dados

Como você sabe, temos dados de origem no formato XML. Para esse fim, usamos uma tarefa XML Source da caixa de ferramentas do pacote SSIS. Arraste essa fonte XML no fluxo de dados. O SSIS adiciona a tarefa à tarefa de fluxo de dados criada anteriormente.

Renomeie a tarefa SSIS

Para a configuração da fonte, clique duas vezes na fonte XML e você obtém um editor de fonte XML.

Editor de fonte XML

Temos a seguinte opção de configuração no editor de código-fonte.

Modo de acesso a dados

Por padrão, você obtém o modo de acesso a dados como Local do Arquivo XML. É a opção apropriada para nós devido aos nossos dados de origem em um arquivo XML. Podemos escolher outras opções – arquivo XML da variável e dados XML da variável.

Localização XML

No local XML, navegue até o diretório do arquivo XML. Depois de selecionar o arquivo XML, você recebe um erro que não definimos o esquema XML (XSD).

Modo de acesso a dados

Usar esquema embutido

Se tivermos um esquema XML definido no próprio arquivo XML, podemos usar esta opção. Você deve verificar seu arquivo XML se o arquivo XML contém XSD ou não.

Localização XSD

Se tivermos um arquivo separado para a definição XML, podemos procurar o arquivo e selecionar o arquivo XSD. Não temos um arquivo XSD na minha demonstração. Na maioria dos casos, se obtivermos um arquivo XML de qualquer fonte externa, você também obterá um arquivo XSD apropriado.

Gerar XSD

O SSIS fornece uma opção para gerar o arquivo XSD a partir do arquivo XML. Essa opção funciona bem, no entanto, para um arquivo XML complexo, e você deve fornecer o arquivo XSD separadamente no local XSD.

Vamos clicar na opção Gerar XSD. Ele gera o XSD na mesma pasta do arquivo XML. Você também pode especificar um local separado, se necessário. É melhor gerar o arquivo no local de origem para evitar conflitos.

Gere XSD no pacote SSIS

Vamos abrir o arquivo XSD em um programa adequado, como o Edit Plus ou o Visual Studio. Na imagem a seguir, vemos que ele tem uma definição para cada coluna de dados, juntamente com seu tipo de dados. Devemos ter cuidado ao fazer alterações neste XSD, pois a validação XML falhará em caso de qualquer problema de consistência entre os arquivos XML e XSD.

Abra o arquivo XSD

Clique em OK e ele relata as seguintes mensagens de aviso. Podemos ignorar esta mensagem de aviso. Isso não nos impede de importar os dados. Para resolver esse erro, você pode especificar o comprimento mínimo e máximo no arquivo XSD para cada coluna. Você deve conhecer o conhecimento da linguagem XML para fazer alterações nos arquivos XML e XSD.

Exibir avisos

Clique em OK e você verá as colunas de dados disponíveis no arquivo XML e no XSD. Se quisermos parar a operação, clique em Cancelar.

Colunas externas disponíveis

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Clique em OK e você pode ver que a tarefa de origem XML foi configurada com sucesso. Não recebemos um ícone de cruz vermelha quando a configuração da tarefa é concluída.

Tarefa configurada

Queremos inserir dados na tabela do SQL Server. Para isso, adicione uma tarefa de Destino do OLE DB e configure-a com os detalhes da sua instância.

Se você já possui uma tabela SQL, pode selecionar a tabela na lista suspensa. Caso contrário, clique em Novo e especifique um nome de tabela. O SSIS detecta automaticamente as colunas de dados e seus tipos de dados. Você pode alterar o tipo de dados e seu valor no Criar a tabela script também, se necessário. Você deve configurar um tipo de dados apropriado e seu valor para evitar qualquer truncamento de dados.

Script Criar tabela

Depois de clicar em OK, ele mostra a tabela SQL de destino.

Editor de destino do OLE DB

Agora, clique em Mapeamentos. Aqui, podemos definir e verificar o arquivo XML de origem e os mapeamentos de coluna da tabela SQL de destino. É uma etapa obrigatória para validar os mapeamentos de coluna. Não podemos prosseguir com o pacote SSIS sem validar os mapeamentos.

Mapeamentos de colunas

Clique em OK após o mapeamento da coluna, ele configura a tarefa de destino do OLE DB. Podemos ver abaixo o pacote SSIS configurado para importar um arquivo XML, como mostrado abaixo.

Pacote SSIS configurado

Vamos executar este pacote e ele transferiu com êxito três linhas da fonte XML para a tabela SQL.

Pacote de sucesso

Conecte-se à instância SQL no SSMS e verifique os dados na tabela SQL.

Exibir dados XML em tabelas SQL

Editor avançado do SSIS para fonte XML

Podemos ir ao Editor avançado da fonte XML para configurar várias propriedades dos dados de origem. Clique com o botão direito do mouse na fonte XML -> Mostrar Editor Avançado.

Editor avançado do SSIS para fonte XML

Ele abre o seguinte Editor Avançado para a fonte XML.

Propriedades do componente

Navegue para as propriedades de Entrada e Saída. Ele fornece propriedades de coluna para dados de origem e de saída para colunas individuais.

Propriedades de entrada e saída

Às vezes, recebemos erros devido a tipos de dados inválidos. Nesse caso, podemos ir para a respectiva coluna e modificar o tipo de dados em uma lista suspensa.

Tipos de dados da coluna

Conclusão

Podemos carregar rapidamente dados de um arquivo XML nas tabelas do SQL Server usando pacotes SSIS. Você deve ter um documento XML adequado e sua definição em um arquivo no formato XSD. Você pode gerar um arquivo XSD a partir do SSIS, mas ele não funciona corretamente para dados XML complexos. Você também deve configurar o tratamento de erros nos pacotes SSIS para evitar falhas no pacote e investigá-lo em caso de problemas rapidamente.

Rajendra Gupta
Últimas mensagens de Rajendra Gupta (ver todos)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Leia Também  Aonde assistir Ignite - SQL TECH BLOG