Bem, dando continuidade a nossa série de posts para a certificação Associate do DB2 LUW, falaremos um pouco sobre Utilitários de Movimentação de Dados.
Este conteúdo pode ser consultado também no e-book Getting Started with DB2 Express-C (possui versão em português), capítulo 9, inclusive possui ao final do capítulo exercícios de fixação.

As ferramentas ou comandos descritos neste post são usados para mover os dados dentro do mesmo banco de dados DB2, ou entre bancos de dados da mesma ou de diferentes plataformas.
A figura abaixo fornece uma visão geral do processo de movimentação de dados para um ambinete DB2 LUW.
Antes de falarmos dos utilitários de movimentação de dados gostaria de deixar abaixo a definição e utilização de cada tipo de arquivo que podemos utilizar neste processo.

  •  ASC = ASCII
  • DEL = ASCII delimitado
  • WSF = formato de planilha
  • IXF = Integrated Exchange Format

Os arquivos ASC e DEL são arquivos de texto, e podem ser abertos e lidos em qualquer editor de texto. WSF é um formato que pode ser usado para movimentar dados para planilhas como o Excel ou o Calc (Open Office). IXF é um formato que não apenas inclui os dados, mas também a DDL (Linguagem de definição de dados) da tabela em questão. O formato IXF é conveniente porque, quando é necessário reconstruir a tabela, isso pode ser feito diretamente a partir de um arquivo com exportação formatada em IXF; isto não é possível caso você utilize os outros formatos.

Utilitário EXPORT

O utilitário EXPORT é usado para extrair dados de uma tabela para um arquivo. Nos bastidores, o que está realmente sendo executado é uma operação SELECT de SQL.
Segue exemplo de um comando EXPORT para extração de dados da tabela  employee do nosso banco de exemplo (SAMPLE).

EXPORT TO employee.ixf OF IXF SELECT * FROM employee FETCH FIRST 10 ROWS ONLY

Para saber mais sobre o utililitário de EXPORT acesse o INFOCENTER.

Utilitário IMPORT

O utilitário IMPORT é utilizado para carregar dados de um arquivo para uma tabela. Nos bastidores, o que está realmente sendo executado é uma operação INSERT de SQL. Como uma operação de INSERT está sendo executada, todos os triggers são acionados, todas as restrições (constraints) são cumpridas imediatamente e o bufferpool do banco de dados é utilizado.
O exemplo abaixo carregará todos os dados do arquivo com formatação IXF employee.ixf para a tabela employee_copy. Criei um novo banco de dados (SAMPLE2) para efetuar a inserção das linhas e criação da tabela EMPLOYEE_COPY.

IMPORT FROM employee.ixf OF IXF REPLACE_CREATE INTO employee_copy

Para saber mais sobre o utililitário de IMPORT acesse o INFOCENTER.

Utilitário LOAD

O utilitário LOAD é uma maneira mais rápida de carregar dados de um arquivo para uma tabela. O LOAD não passa pelo mecanismo DB2; portanto, os Triggers não são ativados, o bufferpool não é usado e as restrições podem ser impostas, mas somente em uma etapa separada. Uma operação LOAD é mais rápida que o IMPORT, pois ela executa um carregamento de dados de baixo nível, acessando diretamente as páginas de dados do disco. O LOAD funciona em três fases: LOAD, BUILD e DELETE.
O exemplo abaixo carrega todos os dados do arquivo com formatação IXF employee.ixf para a tabela employee_copy. Os dados serão carregados no banco de dados SAMPLE2 criado para fazer o IMPORT de dados.

LOAD FROM employee.ixf OF IXF REPLACE INTO employee_copy

Após executar o comando acima, o tablespace onde a tabela reside pode ter sido colocado em estado de CHECK PENDING. Isto significa que é necessário executar o comando SET INTEGRITY para verificar a consistência dos dados.

SET INTEGRITY FOR employee_copy IMMEDIATE CHECKED

Para saber mais sobre o utililitário de LOAD acesse o INFOCENTER.

Utilitário DB2MOVE

Os utilitários EXPORT, IMPORT e LOAD trabalham em uma tabela de cada vez. Embora você possa criar um script para gerar os comandos acima para cada tabela de um banco de dados, outro utilitário, chamado DB2MOVE, pode fazê-lo para você. O utilitário DB2MOVE pode trabalhar somente com arquivos IXF, e os nomes de arquivo serão gerados automaticamente pelo DB2MOVE.
Os exemplos abaixo mostram como executar o DB2MOVE com as opções EXPORT e LOAD, respectivamente, usando o banco de dados SAMPLE.

db2move sample export-sn db2inst2

db2move sample load

Para saber mais sobre o utililitário DB2MOVE acesse o INFOCENTER.

Utilitário DB2LOOK

Enquanto os utilitários EXPORT, IMPORT, LOAD e DB2MOVE permitem mover dados de uma tabela para outra, seja dentro de um banco de dados ou entre diversos bancos de dados, o utilitário DB2LOOK pode ser usado para extrair as expressões DDL, estatísticas de banco de dados, características de tablespace e etc, e armazená-las em um arquivo de script que, mais tarde, poderá ser executado em outro sistema.
Melhor do que dar um exemplo, vou redireciná-los para o post que meu amigo Alexandre Torres escreveu aqui no blog sobre o DB2LOOK. Vale muito à pena conferir. 🙂

Para maiores informações sobre o DB2LOOK acesse o INFOCENTER.

Assim terminamos mais um capítulo dos resumos para a certificação Associate DB2 LUW. Agora é hora de praticarmos. Para isso faça os exercícios deste capítulo e nos informe qualquer dúvida ou sugestão.
Obrigado e bons estudos!!!