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.
Figura 16 - Get XML data
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.
Figura 17 - Job de carga de dimensões
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).
Figura 18 - Job Mail
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.
Figura 19 - Anexar log
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.