Neste
artigo gostaria de abordar um tema muito solicitado em nosso suporte técnico e
em geral pela maioria das pessoas, a exportação e importação de dados. A
pergunta que não cala é: Qual a melhor forma para realizar esta tarefa? Na
realidade existem diversas maneiras para realizar esta tarefa e ultimamente em
meus projetos a que se tornou mais prática e ágil foi a utilização do “SQL Server Integration Services (SSIS)”, uma ferramenta que
usamos para executar operações de “ETL”, ou seja, (E)xtração, (T)ransformação e
(C)arga de dados, um dos recursos disponíveis na instalação do Banco de Dados da
Microsoft, o SQL Server. Podemos desfrutar deste recurso a partir da versão 2005,
mas ressalto que a base deste artigo será redigido na versão do SQL Server
Express 2008. Caro leitor, caso não possua o mesmo instalado recomendo a
leitura do artigo “Instalando e configurando o SQL
Server 2008 Express Edition With Tools” do mês de Março de 2011,
que poderá ser encontrado no nosso site no link abaixo:
Características
Podemos destacar algumas características, tais como:
-
Recuperação de dados a partir de diversos tipos de fontes;
- Carregar
dados em quase qualquer fonte;
-
Realização de transformações nos dados, como por exemplo de um tipo para o
outro.
Utilizaremos o assistente de Importação e
Exportação de Dados, o que nos ajudará muito. Teremos como base de exemplo a
Importação de dados oriundos de uma planilha do Excel (.xls) para uma tabela do
banco de dados SQL Server 2008.
Descrição das Estruturas
A seguir estarei comentando sobre a estrutura
desta planilha e da tabela.
- Planilha do Excel (.xls)
Criaremos alguns campos de diversos tipos,
Ver sugestão na Imagem 01.
Figura
01: Planilha Clientes.xls.
- Tabela Clientes
Já a
tabela de clientes deverá ser idêntica aos tipos de campos da planilha abordada
acima. Podemos conferir o código para criação da mesma na listagem abaixo.
CREATE TABLE [dbo].[Clientes](
[Id_Cliente] [int] NOT NULL,
[Nome] [varchar](50) NULL,
[Tipo]
[varchar](30) NULL,
[Ativo] [int] NULL,
[Data_Nasc] [date] NULL,
CONSTRAINT [PK_Clientes] PRIMARY
KEY CLUSTERED
(
[Id_Cliente] ASC
)WITH (PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS =
ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Criando o Exemplo
Para iniciarmos
iremos executar o “Importar e Exportar Dados (32 bits)” clicando no menu “Iniciar/Todos
os Programas/Microsoft SQL Server 2008”. Ver imagem 02 abaixo:
![]() |
Figura 02: Importar e Exportar Dados. |
Na tela
seguinte nos deparamos com o Assistente de Importação de Exportação de Dados, o
qual irá nos auxiliar a criar pacotes para a tarefa em questão. Clique em “Avançar”. Ver Imagem 03.
![]() |
Figura 03: Assistente para Importação e Exportação SQL Server. |
Na próxima
tela escolheremos a Fonte de Dados, a origem da qual os dados devem ser
copiados, especificação onde os dados deverão ser copiados. Neste caso
selecione “Microsoft Excel”, e
em “Caminho do Arquivo do Excel”, digite (ou clique no botão ”Procurar”) o
caminho da sua planilha a ser exportada, o exemplo que criei para este artigo
está com o nome de “Clientes.xlsx”. Devemos também nos atentar para a versão do
Excel e checar o item “A primeira linha possui nomes de colunas”. Ver Imagem 04.
![]() |
Figura 04:Origem dos Dados. |
Após isso
aparecerá uma janela para selecionar o Destino, especificação onde os dados
deverão ser copiados, que seria o próprio Banco de Dados SQL Server, definindo
como: “SQL Server Native Client 10.0”. Na caixa de Diálogo “nome do Servidor”
indica onde o mesmo está instalado, como por exemplo: “THIAGO-NOTE\SQLEXPRESS”.
Em autenticação use a mesma da instalação do BD. Já em Banco de Dados
localizaremos a Base de Dados criada. Para proceder clique no botão “Avançar“,
Ver Figura 05.
![]() |
Figura 05: Destino dos Dados. |
Na próxima
tela, dentre as duas opções disponíveis, deveremos escolher a “copiar dados de
uma ou mais tabelas ou exibições”. Ver Imagem 06.
![]() |
Figura 06: Especificar Cópia ou Consulta de tabela. |
Já na
próxima etapa irão aparecer as opções para criação ou utilização de tabelas com
base nas planilhas, Ver Figura 07.
![]() |
Figura 07: Tabelas e Exibições. |
Dando um
duplo clique na opção da planilha ou selecionando uma clicando no botão “Editar
Mapeamentos…”, aparecerá a seguinte janela, onde você irá definir os
tipos de dados de cada campo, bem como suas propriedades (se permite valores
nulos, tamanho, etc). Nesta mesma janela ao clicar no botão “Editar SQL…”,
teremos a possibilidade para editar a instrução para criação da tabela na base
de dados. Após isso, clique em OK até retornar à janela que está o botão “Editar
Mapeamentos…”. No botão “Visualização”, poderemos consultar
os registros da planilha a serem inseridos no SQL Server. Clique em “Avançar” para
continuar.
Ver Imagem
08.
![]() |
Figura 08: Mapeamentos de Colunas. |
Nas próximas
etapas o assistente nos permite revisar todo Mapeamento de Tipo de Dados,
selecionando a tabela para verificar como seus tipos de dados são mapeados para
aqueles no destino. Além disso, podemos escolher o modo como o assistente lida
com problemas de conversão. Ver figura 09.
![]() |
Figura 09:Revisão de Mapeamentos de Tipos de Dados. |
Após a conclusão teremos um resultado idêntico ao da
Figura 10.
Figura 10: Execução Concluída.
Ao abrir a tabela importada no SSMSS (SQL
SERVER MANAGEMENT STUDIO EXPRESS) e visualizá-lo, tereemos todos os registros
da tabela mostrados abaixo: Ver Imagem 11.
![]() |
Figura 11: Resultado da Consulta SQL Server. |
Conclusões
Vimos neste artigo o uso prático de um
dos recursos presentes no SQL Server, o “SQL
Server Integration Services (SSIS)”. Aprendemos com base na importação de uma
planilha do Excel para uma tabela do SQL Server, mas ressalto que temos
diversas possibilidades como: .Net Frameworks Data Providers (Dbexpress, ODBC,
Oracle, SQL Server, etc...), Microsoft Access, Microsoft OLE DB (Analysis
Services, Data Mining, OLAP, Oracle, etc..). Uma informação importante que não
podia deixar de salientar é que a primeira versão do SSIS foi lançada com o SQL
Server 2005. SSIS é uma substituição para o Data Transformation Services (DTS),
que estava disponível com o SQL Server 7.0 e SQL Server 2000. SSIS baseia-se
nas capacidades introduzidas com DTS.
Fica aí a dica, um abraço a todos e até o
mês que vem!
Nenhum comentário:
Postar um comentário