sexta-feira, 17 de julho de 2015

SQL Server – Explorando recursos para Importação e Exportação de Dados




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 artigoInstalando 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