Ao usar o fluxo de dados do SSIS, podemos executar tarefas de ETL que podem ser usadas para migração de dados, descarregamento de dados, design e implementação do data warehouse.
Neste artigo, explico como exportar dados de uma tabela SQL para Excel e arquivo de texto usando a tarefa de fluxo de dados SSIS.
Nesta demonstração, executarei as seguintes etapas:
1. Crie um pacote SSIS e crie um gerenciador de conexões ADO.NET.
2. Crie uma tarefa de fluxo de dados que tenha origem ADO.NET para preencher dados do SQL Server. Os dados serão gravados no arquivo do Excel e no arquivo de texto, portanto, configure o destino do arquivo simples e o destino do Excel.
3. Execute o pacote SSIS e verifique se os dados foram gravados em arquivos Excel e de texto.
Criar pacote SSIS e conexão ADO.NET
Para esta demonstração, usei as ferramentas de dados do SQL Server 2015. Em primeiro lugar, estou criando um novo projeto de serviço de integração chamado “Exportar dados SQL ”:
Após a criação de um projeto SSIS, criarei a tarefa de fluxo de dados. A tarefa de fluxo de dados usará o SQL Server como origem. O arquivo Excel e o arquivo simples serão determinados como destino. Antes da criação da tarefa de fluxo de dados, devemos criar a conexão ADO.NET .
Configurar conexão ADO.NET
Como mencionei acima, vou usar “WideWorldImportors ” banco de dados de demonstração que pode ser baixado aqui.
Para criar uma “Fonte ”, clique com o botão direito do mouse em “Gerenciadores de conexões ” e selecione “Nova conexão ADO.NET ” conforme a imagem abaixo:
Uma caixa de diálogo “Configurar ADO.NET Connection Manager " vai abrir. Na caixa de diálogo, clique em “Novo ” como mostrado na imagem a seguir:
Uma caixa de diálogo “Gerenciador de conexões " vai abrir. Vou configurar os parâmetros de conectividade do SQL:
1. Nome do servidor – é o nome do host ou endereço IP do servidor de banco de dados no qual o SQL está instalado.
2. Autenticação – é um “tipo de autenticação” usado para conectar o servidor selecionado em “Nome do servidor ” caixa suspensa. Pode ser Autenticação SQL ou Autenticação do Windows.
3. Nome do banco de dados – é o nome do banco de dados que vamos usar para extração de dados.
Nesta demonstração, vou usar minha VM local. Usarei a autenticação do Windows para conectar a instância SQL e usarei “WideWorldImporters " base de dados.
Observe a seguinte imagem:
Clique em “Testar conexão ” para verificar a conectividade bem-sucedida. Observe a seguinte imagem:
Depois que a conexão SQL estiver configurada, você poderá ver a conexão nos “Gerenciadores de conexão " janela. Ele está localizado na parte inferior da janela de fluxo de controle, conforme mostrado na imagem a seguir:
Criar tarefa de fluxo de dados
A tarefa de fluxo de dados é usada para mover dados entre origens e destino. Ele pode ser usado para executar tarefas ETL (Extrair, Transformar e carregar). Vou exportar dados do SQL Server para Excel ou arquivo de texto, portanto, usaremos a tarefa de fluxo de dados.
Para configurar a tarefa de fluxo de dados, primeiro vou arrastar e soltar a tarefa de fluxo de dados na janela de fluxo de controle e renomeá-la como “Exportar dados de vendas para Excel ” conforme a imagem abaixo:
Configurar fonte ADO.NET
Para preencher os dados da tabela do SQL Server, devemos configurar o componente de origem ADO.Net. Clique duas vezes em “Tarefa de fluxo de dados " fazer isso. A janela “Configurar tarefa de fluxo de dados " vai abrir. Como alternativa, você pode selecionar “Fluxo de dados ” localizado ao lado de “Fluxo de controle ”. Como já configuramos a conexão SQL, vamos arrastar e soltar o ADO.NET Source na janela de fluxo de dados conforme a imagem abaixo:
Agora vamos configurar o ADO.NET Source para extrair os dados da tabela através da consulta da tabela do SQL Server. Para fazer isso, clique duas vezes em “Origem ADO Net ”. Uma caixa de diálogo será aberta. Na caixa de diálogo devemos configurar os seguintes parâmetros:
1. Gerenciador de conexões ADO.NET – preenche a lista de conexões ADO.NET criadas no pacote SSIS.
2. Modo de acesso a dados tem duas opções:
uma. Se você selecionar “Tabela ou Visualização ” em “Modo de acesso a dados ” caixa suspensa, “Nome da tabela ou visualização ” será preenchido com tabelas e visualizações que existem no banco de dados. Veja abaixo imagem:
b. Se selecionarmos “Comando SQL ”, abrirá uma caixa de texto de várias linhas onde podemos escrever a consulta Ad-Hoc para extrair dados do banco de dados.
Veja abaixo imagem:
Já criamos a conexão ADO.Net, então no gerenciador de conexões ADO.NET, selecione o nome criado para ela. Nesta demonstração, vamos escrever nossa própria consulta para que o método de acesso a dados seja “Comando SQL ”.
Criei uma consulta que me dará a lista de clientes do banco de dados. Esta consulta está abaixo:
SELECT s.CustomerID, s.CustomerName, sc.CustomerCategoryName, pp.FullName AS PrimaryContact, ap.FullName AS AlternateContact, s.PhoneNumber, s.FaxNumber, bg.BuyingGroupName, dm.DeliveryMethodName AS DeliveryMethod, c.CityName AS CityName FROM Sales.Customers AS s LEFT OUTER JOIN Sales.CustomerCategories AS sc ON s.CustomerCategoryID = sc.CustomerCategoryID LEFT OUTER JOIN [Application].People AS pp ON s.PrimaryContactPersonID = pp.PersonID LEFT OUTER JOIN [Application].People AS ap ON s.AlternateContactPersonID = ap.PersonID LEFT OUTER JOIN Sales.BuyingGroups AS bg ON s.BuyingGroupID = bg.BuyingGroupID LEFT OUTER JOIN [Application].DeliveryMethods AS dm ON s.DeliveryMethodID = dm.DeliveryMethodID LEFT OUTER JOIN [Application].Cities AS c ON s.DeliveryCityID = c.CityID
Por fim, o editor de código-fonte ADO.NET se parecerá com a imagem abaixo:
Podemos visualizar a saída da consulta clicando no botão “Visualizar ” na caixa de diálogo. O resultado da consulta será conforme mostrado na imagem abaixo:
Configurar o destino do Excel
Depois de configurar a origem do ADO.NET, configuraremos o destino do Excel.
Na caixa de ferramentas do SSIS, arraste e solte o destino do Excel na janela de fluxo de dados e renomeie-o como “Arquivo Excel de Vendas ” conforme a imagem abaixo:
Clique duas vezes no destino do Excel. Uma caixa de diálogo “Editor de destino do Excel ” será aberto para configurar os seguintes parâmetros:
1. Gerenciador de conexões do Excel – usado para conectar o arquivo excel.
2. Método de acesso a dados . A planilha do Excel é considerada como uma tabela ou exibição. Se você selecionar “Tabela ou Visualização ”, caixa suspensa “Nome da planilha do Excel ” será preenchido com todas as planilhas criadas na pasta de trabalho do Excel.
3. Nome da planilha do Excel . Por padrão, esta caixa suspensa está desabilitada. Ele será ativado automaticamente quando selecionarmos “Tabela ou Visualização ” como modo de acesso a dados. Também podemos selecionar planilha excel apropriada.
Ainda não criamos a conexão de destino do Excel, então primeiro é necessário criar um gerenciador de destino do Excel. Para fazer isso, clique em “Novo ” ao lado de “Gerenciador de conexões do Excel ” como mostrado na imagem abaixo:
A caixa de diálogo “Gerenciador de conexões do Excel " vai abrir. Aqui podemos configurar:
1. Caminho do arquivo do Excel – a localização do arquivo excel.
2. Versão do Excel - pode selecionar a versão do Excel na caixa suspensa.
Para esta demonstração, criei um arquivo do Excel e salvei-o no meu computador. Para localizar o arquivo, clique em Procurar, percorra o sistema de arquivos, selecione o arquivo e clique em OK , como mostra a imagem abaixo:
Agora, selecione o modo de acesso a dados como “Tabela ou visualização ” em “Gerenciador de destinos do Excel ”. A lista de planilhas do Excel será preenchida na caixa suspensa. Selecione “Nome da planilha do Excel ” da caixa suspensa, conforme mostrado na imagem abaixo:
Agora, para exportar os dados da tabela SQL para o arquivo Excel, devemos mapear os campos da tabela SQL e do arquivo Excel. Para fazer isso, arraste a seta azul abaixo de “Dados de vendas do servidor DB ” e solte-o em “Arquivo excel de vendas ” como mostrado na imagem abaixo:
Clique duas vezes em “destino do Excel ” para mapear os campos. “Editor de destino do Excel (Arquivo do Excel de vendas) " vai abrir. Selecione “Mapeamentos ” no painel esquerdo da caixa de diálogo. No mapeamento, as colunas de entrada serão as colunas de saída da Consulta SQL e as colunas de destino serão as colunas do arquivo excel. Sugere-se manter o mesmo nome da saída da Consulta SQL e das colunas do Excel. Isso tornará o mapeamento muito mais fácil porque não precisamos mapear os campos manualmente. O SSIS mapeará as colunas automaticamente.
Para esta demonstração, o arquivo do Excel e a saída da Consulta SQL têm o mesmo nome, portanto, o mapeamento foi realizado automaticamente. Verifique se o mapeamento foi feito corretamente e clique em OK . Veja a imagem abaixo:
Após a conclusão do mapeamento, toda a tarefa de fluxo de dados ficará como na imagem abaixo:
Agora podemos executar o pacote. Para fazer isso, clique em “Iniciar ” que está localizado na barra de menus. Se o pacote for executado com sucesso, você poderá ver o ícone verde em cada componente, conforme mostrado na imagem abaixo:
Configurar o destino do arquivo simples
Como mencionei no início do artigo, no SSIS podemos exportar dados da Tabela SQL para arquivo de texto. Para fazer isso, devemos criar um destino de arquivo simples na tarefa de fluxo de dados. Arraste e solte “destino de arquivo simples ” para a janela de tarefa de fluxo de dados e renomeie-a como “Dados de vendas para arquivo de texto ” como mostra a imagem abaixo:
Agora clique duas vezes em “Destino de arquivo simples ”. Uma caixa de diálogo “Editor de destino de arquivo simples ” será aberto conforme mostrado na imagem abaixo:
Agora clique em “Novo ” ao lado de “Gerenciadores de conexões de arquivos simples ” caixa suspensa. A caixa de diálogo “Formato de arquivo simples " vai abrir. Possui quatro opções:exportar dados para delimitado, largura fixa, largura fixa com delimitadores de linha e direita irregular. Para esta demonstração, escolheremos “Delimitado ”.
Selecione “Delimitado ” e clique em OK como mostra a imagem abaixo:
Outra caixa de diálogo “Editor do gerenciador de conexões de arquivos simples " vai abrir. Nomeie o gerenciador de conexões como “Exportar dados de vendas ” conforme mostrado na imagem a seguir:
Para salvar os dados SQL em um arquivo de texto, podemos criar o novo arquivo de texto ou escolher o existente.
Para esta demonstração, vamos criar um novo arquivo. Vou criar o arquivo chamado “Dados de vendas ”. Para fazer isso, clicarei no navegador e passarei pelo sistema de arquivos conforme mostrado na imagem abaixo:
Agora vamos configurar os parâmetros do arquivo simples:
- Os dados exportados da Tabela SQL serão armazenados no formato delimitado, então selecione “D limitado ” em “Formato ” como mostrado na imagem abaixo:
- “Delimitador de linha de cabeçalho ” será “{CR}{LF} ”, então escolha a opção apropriada na caixa suspensa, conforme mostrado na imagem abaixo:
- No arquivo de texto, a primeira linha será o cabeçalho da coluna, então marque “Nomes das colunas na primeira linha de dados ” conforme mostrado na imagem abaixo:
Clique em OK para fechar o “Editor do gerenciador de conexões de arquivos simples ”.
Agora vamos mapear as colunas. Para fazer isso, clique em “Mapeamentos ” no lado esquerdo de “Editor de destino de arquivo simples ” como mostra a imagem abaixo:
Como os nomes de “entrada de consulta SQL ” e “Destino do arquivo de texto ” são as mesmas, o pacote SSIS mapeia as colunas automaticamente.
Depois que o mapeamento for concluído, toda a tarefa de fluxo de dados ficará como na imagem abaixo:
Agora podemos executar o pacote. Para fazer isso, clique em “Iniciar ” que está localizado na barra de menus. Se o pacote for executado com sucesso, você poderá ver o ícone verde em cada componente, conforme mostrado na imagem abaixo:
Abaixo está a captura de tela dos dados que foram extraídos da tabela SQL:
Resumo
Neste artigo, abordei:
- Criando o gerenciador de conexões ADO.NET
- Criação de tarefa de fluxo de dados e configuração do banco de dados de origem
- Configurando o destino do Excel e exportando dados da tabela SQL para o arquivo do Excel.
- Configurando o destino do arquivo simples e exportando dados da tabela SQL para o arquivo de texto.
Ferramentas úteis:
Componentes de fluxo de dados Devart SSIS – permitem que você integre dados de banco de dados e nuvem por meio do SQL Server Integration Services.