Organização dos dados
O SQL Server Integration Services permite importar dados de diversas fontes de dados e uma dela são as planilhas do Excel. Os dados devem está organizados e não possuir formatação alguma. A figura abaixo apresenta o exemplo de uma planilha que é possível importar os dados para um banco de dados no SQL Server 2005/2008.
Observe na figura acima que a primeira linha de cada coluna possui a descrição da mesma. É importante manter este padrão porque após a importação para o banco de dados esse nomes serão os mesmos usados nas colunas da tabela onde os dados ficarão.
Ferramentas usadas
Como este tutorial tem objetivo de apresentar o uso do SQL Server Integration Services estaremos criando um projeto no SQL Server Business Intelligence Development Studio. Também é necessário que o SQL Server 2005/2008 esteja instalado e exista permissão para criação de banco de dados.
Criando o projeto
Para criar um projeto no SQL Server Business Intelligence Development Studio clique em iniciar/Programas/ Microsoft SQL Server/ SQL Server Business Intelligence Development Studio.

Nota: O caminho pode para acessar o SQL Server Business Intelligence Development Studio pode variar de acordo com a versão instalada.
Crie um novo projeto do tipo Integration Services Project, coloque o nome de ImportarDadosExcel e clique em OK.
Após a realização do procedimento anterior será criado o projeto de com a estrutura apresentada na figura seguinte.
O SSIS permite criação pacotes para executar operações sobre os dados. Essas operações podem ser Extração, transformação e carga. Neste tutorial estaremos apenas realizando a carga de dados de uma planilha do Microsoft Excel para uma tabela no banco de dados do SQL Server.
Observado a figura anterior em que está apresentado o ambiente do projeto criado temos algumas partes importantes. No lado esquerdo temos o Solution Explorer que apresenta toda a estrutura do projeto. Expandindo a árvore podemos ver o nó SSIS Package que o pacote que realizará a carga de dados. Um pacote no SSIS é a estrutura mais importante para realização de tarefas. Ele é composto de Fluxo de controle (Control Flow) e Fluxo de dados (Data Flow) principalmente. O fluxo de controle é responsável por criar um fluxo entre as tarefas a ser realizadas em um banco de dados, ou seja, não envolve fluxo de dados e sim alterações estruturais como criação de tabelas, execução de scripts, organização de índices, entre outros. O controle de dados é de responsabilidade do Data Flow é ele que conecta na fonte de origem e destino, permite também realizar classificação dos dados, uso de merges, entre outros.
Usando o assistente de importação e exportação
Neste tutorial estaremos usando o assistente de importação e exportação de dados do SSIS para criar um fluxo de controle e um fluxo de dados automaticamente. Para usar o assistente leve o cursor do mouse até SSIS Package no Solution Explorer e clique com o botão direito e acione SSIS Import and Export Wizard e janela do assistente será aberta de acordo com a figura seguinte.
Leia o conteúdo da tela do assistente (SQL Server Import and Export Wizard) e clique em Next. A próxima tela deve ser inserida as informações do tipo da fonte de dados de e a sua localização. No nosso caso, será uma planilha do Excel (Customers) que faz parte dos exemplos do SQL Server. Caso não possua esta planilha no diretório C:\Arquivos de programas\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Basic Package\Sample Data\Customers.xls é porque os exemplos do SQL Sever não estão instalados. Esses exemplos podem ser obtidos na internet ou pode ser usada outra planilha. Marque a opção First row column name essa opção diz para o SSIS usar a primeira linha da planilha como nome das colunas da tabela para onde os dados serão importados. A figura seguinte mostra como deve ficar a tela.
Após completar está etapa clique em Next para ir para a tela onde deve ser informado o destino dos dados importados da planilha.
Nesta tela deve ser informado que será o destino que neste caso é um banco de dados do SQL Server 2008. O servidor onde a instancia do SQL Server está localizada e o tipo de autenticação usada para conectar na instancia devem ser informados. E finalmente o banco de dados de destino. Existe possibilidade de criar um novo banco ou de usar um existente. A figura seguinte mostra como deve ficar as configurações na tela.
A próxima tela deve ser especificada se os dados de origem serão copiados de uma tabela(Copy data from one or more tables or views) ou se será realizado uma consulta (write a query to specify the data to transfer). Escolha a segunda opção conforme a figura seguinte.
Na tela seguinte informe a consulta que deve ser realizado na planilha. Neste caso queremos todos os campos e todos os dados da planilha. Então use: SELECT * FROM [Customers$]. Para verificar se a sintaxe da consulta está correta clique em Prase. A figura seguinte mostra como essa tela deve ficar.
Na tela seguinte é apresentado a fonte e o destino dos dados, altere o nome do destino. Depois disto clique em Edit Mapping para alterar nome e tipo das colunas. A figura seguinte mostra como deve ficar esta tela.
A tela seguinte mostra todas as etapas que serão realizadas para importar os dados. Veja na figura seguinte.
Após clicar em Finish os dados serão importados para o banco de dados especificado no destino e uma tela de sucesso será apresentada.
Se todo processo ocorrer corretamente uma tela semelhante acima. Clique em Close para votar na tela do projeto e um fluxo para importação de dados será criado. Selecionado a aba Control Flow na tela do projeto é possível visualizar o fluxo de controle. A primeira tarefa Preparation SQL Task 1 é a tarefa responsável pela criação da tabela no banco de dados e a tarefa seguinte Data Flow Task 1 é responsável por realizar a carga dos dados da planilha para a tabela no banco de dados. A figura abaixo apresenta as tarefas.
Para visualizar como os dados são carregados para o banco de dados clique duas vezes em cima da tarefa Data Flow Task 1. Após realizar esta operação a tela mudará para representação dos fluxos no Data Flow. Nesta tela temos o Source-Query que é responsável por realizar um consulta aos dados na origem (SELECT * FROM [Customers$]). Destination-Pessoas é responsável por inserir os dados no destino que no nosso caso é uma tabela no banco SSIS do SQL Server 2008. A figura abaixa apresenta a representação na tela do projeto.
Agora para completar só falta executar o pacote criado com o assistente do SSIS. Para isto pressione F5 ou clique em Start Debugging. Se tudo ocorrer corretamente à tela abaixo será apresenta, onde todas as tarefas do fluxo estão com a cor verde. Confira no banco de dados se os dados foram importados corretamente.
Neste tutorial foi apresentada uma forma simples de criar um pacote usando o assistente do SSIS para importar dados de uma planilha do Excel com rapidez e eficiência.
2 comentários:
Caro Milton,
Gostaria de sua opinião em um projeto. Voce tem disponibilidade e interesse?
Firvave@hotmail.com
Olá,
Não sei se pode ajudar no meu problema, eu tenho 3 bases de dados 1 planilha do Excel uma base em Acces e uma base do SQL Server.
Eu quero fazer um ETL dessas 3 bases e mover seu conteúdo para uma base multidimensional para assim criar um cubo, acontece que não consigo enviar os dados de cada uma dessas bases para a base multidimensional pelo Integration Service, estou tentando carregar a informação de cada coluno nas tabelas dimensões mas algumas pessoas que pedi ajuda me disseram que não pode carregar direto nas dimensões deve carregar a fato mas fiquei confuso já que a tabela fato vai ter informações cruzadas das dimensões. Pode me ajudar?
Postar um comentário