Tutorial Kettle
O Kettle é uma ferramenta para integração de dados, responsável pelo processo de Extração, Transformação e Carga (ETL). Ferramentas ETL são utilizadas mais frequentemente em projetos de data warehouse, mas também podem ser utilizadas para outros propósitos, tais como migração de dados entre aplicações, exportação de banco para arquivos, limpeza de dados e na integração de aplicações.
Parte 6: Extração a partir de XML e XLS, montando um Job e utilizando serviços de FTP/e-mail
Extração a partir de XML
De forma similar a extração de dados de uma tabela é necessário criar um passo para a entrada de dados, neste caso, um "Get XML Data". Os principais pontos neste step são colocar o apontamento para o arquivo xml, informar o nó para loop (figura 14) de onde serão retornados os dados e definir os campos de retorno. Caso no preview não apareça dados deve-se verificar se o arquivo de origem foi corretamente informado e se existem os dados desejados no mesmo, no segundo momento verificar se está buscando o nó correto e por fim pode ser que tenha que editar o xml por conter algum caractere não reconhecido em algum atributo.Extração a partir de uma planilha XLS
Neste passo o principio é o mesmo da extração de um arquivo xml, o que muda é que não se informa o nó, mas a planilha onde estão os dados.Montando um Job
Todas as transformações podem ser executadas individualmente, mas no caso de utilizarem variáveis para o controle das chaves das dimensões é necessário executar esta transformação antes (figura 17). Pela própria definição temos no job uma rotina de execução, nele pode-se organizar e agrupar as cargas, de forma a facilitar a compreensão e a também a rotina de carga.É desejável que separem as dimensões estáticas das de modificação lenta, evita-se com isso processamento desnecessário de tratamento de dados. Uma vez que todas as dimensões foram carregadas deve-se efetuar a carga da tabela de fatos, seguindo obrigatoriamente esta ordem na primeira carga. Em cargas futuras sempre efetuar primeiro as dimensões de modificação lenta e na seqüência efetuar a carga da tabela de fatos.
Utilizando serviços de FTP/e-mail
Utilizando os passos de file transfer pode-se verificar as possibilidades de transferir um ou mais arquivos via FTP, SFTP e SSH. Como exemplo, abaixo está detalhado em uma tabela alguns campos do passo "Get a file with FTP".| Job entry name | Nome do passo no Job. Este nome deve ser único dentro do job em questão. |
| Remote directory | Diretório ou pasta no servidor FTP onde estão os arquivos. |
| Target directory | Diretório ou pasta destino dos arquivos. |
| Wildcard | Especifica uma expressão regular caso deseje selecionar vários arquivos:
.*txt$ : pega todos os arquivos texto A.*[ENG:0-9].txt : pegar arquivos que iniciam com A, terminam com um numero e possuem extensão .txt |
| Use binary mode? | Marcar este campo se os arquivos devem ser transferidos em modo binário. |
Além do que foi colocado na tabela, deve-se lembrar dos campos básicos da conexão: servidor, usuário e senha.
Nota: Observe que estes passos de transferência de arquivos encontram-se disponíveis somente para Jobs.
Utilizando serviços de e-mail
Enviar um e-mail é um passo importante e muito útil que pode ser utilizado em um job. Para que isto seja possível é necessário identificar o(s) passo(s) de onde serão enviadas as mensagens e estabelecer uma conexão (hop) com o envio de e-mail. No Kettle, esta funcionalidade é facilmente encontrada no menu lateral com o nome de "Mail".Ao editar o passo, como primeiras informações, devem-se especificar o endereço de destino e o endereço de quem está enviando a mensagem. Em um segundo momento deve-se especificar o servidor SMTP (figura 18). No exemplo acima foi utilizado para uma conta do Gmail, para que as mesmas configurações acima sejam utilizadas, deve-se certificar que possui uma conta no Gmail.
Na parte da mensagem é importante identificar de qual job está partindo o e-mail, além de poder configurar o formato e alguns atributos da mensagem. Na figura 19 observa-se que é possível anexar arquivos na mensagem a ser enviada, no exemplo utilizou-se o próprio log do job.
Problemas comuns e considerações
- Quando tem uma conexão criada e é feita uma atualização/correção na base de dados, por vezes pode ser necessário recriar a conexão no kettle, pois ele ainda aponta para o esquema anterior, provavelmente armazena em algum local, mas aqui não é o casso de corrigir o problema já que pode ser contornado.
- Deve-se especificar os tipos de campos em toda e qualquer parte da transformação, o kettle não vai entender o tipo do campo no final da extração caso não seja informado.
- Sempre é útil colocar a saída dos dados em uma planilha, mas ela pode ocultar falhas na transformação, assim, caso necessite, faça o teste com a saída em um txt também.
- Caracteres "estranhos" na base de origem podem acabar passando pelo ETL sem identificação, mas na ferramenta de BI acaba apresentando problemas.
- Mudanças nos sistemas transacionais podem implicar em alterações nas rotinas de carga.
- A qualidade do DW depende de um bom cadastro no sistema transacional e uma boa pergunta na ferramenta de análise.
Gostaria de parabenizá-lo pelo artigo. Parece ser uma ferramenta interessante, dado que para BI, conheço somente ferramentas pagas, não caras, mas pagas. Mas, como comentário, ficou faltando somente esclarecer um pouco mais, dado que é uma ferramenta de ETL, sobre as suas bases : Granularidade, Dimensões, Fatos... Bom, mas ficou muito bom.
Parabéns
Abraços