Validação de dados no Pentaho Data Integration

O pentaho data integration é uma ferramenta de ETL (Extract, Transform, Load) que tem o objetivo de carregar informações de uma ou mais fontes de dados, transformar, manipular ou validar esses dados e carregá-los em um destino. A ferramenta já foi citada aqui e aqui também.

Nesse post vou mostrar um exemplo de como validar a consistência dos dados utilizando o componente Data Validator do Pentaho DI.

 Descrição do cenário

O objetivo dessa transformação será carregar os dados de um arquivo CSV, conforme figura 1:

post-img1
Figura 1 – Exemplo de dados para validação

 

E realizar as seguintes validações:

  • Campos código, nome e telefone não podem ser nulos;
  • Campo código deve ser numérico;
  • Campo nome deve ter no mínimo 1 e no máximo 10 caracteres;
  • Telefone deve estar no formato (99) 999-9999;
  • Estado deve ter exatamente 2 caracteres e somente os valores PR, SC e RS são aceitos.

 

Montando a transformação

1 – Para começar, vamos criar uma nova transformação através do menu File > Novo > Transformação (sim, nem todos os labels estão em português).

post-img2
Figura 2 – Criando nova transformação

 

2 – Na aba “Design, expanda a pasta “Input e localize o step “CSV file input. Arraste-o para a área de trabalho da transformação.

post-img3
Figura 3 – Incluindo step CSV file input

 

3 – Dê dois cliques no step e preencha o nome, o caminho do arquivo csv e informações de delimitadores e encoding. Clique no botão “Obter campos” para carregar os nomes e tipo das colunas.

post-img4
Figura 4 – Configurando step CSV file input

 

4 –  Na aba “Design”, expanda a pasta “Validation” e localize o step “Data validator”. Arraste-o para a área de trabalho da transformação.

post-img5
Figura 5 – Incluindo step Data Validator

5 – Com o mouse posicionado em cima do componente “CSV file input”, clique no ícone do hop e arraste até o componente “Data validator”. Clique no componente e escolha a opção “Main output of step”. Isso indicará que os dados devem ser lidos do arquivo csv e enviados para o componente “Data Validator”, caso nenhum problema ocorra.

post-img6
Figura 6 – Conectando steps

 

6 – Dê dois cliques no componente “Data Validator” e vamos começar a definir as regras da validação.

7 – Clique no botão “New Validation” e defina um nome para a validação do campo código. Clique na validação recém criada e aparecerá uma lista de propriedades que podem ser definidas para essa validação. Se lembra quais eram as regras para o campo código? Ele não pode ser nulo e deve ter um valor numérico. Vamos marcar as opções para tais validações, conforme figura. Vamos aproveitar também e definir uma descrição para o erro no campo “ErrorDescription”.

post-img7
Figura 7 – Configurando validação do campo código

 

8 – Para o campo nome, além de não permitir valor nulo, definiremos também o tamanho mínimo e máximo de caracteres permitido.

post-img8
Figura 8 – Configurando validação do campo nome

 

9 – Para o campo telefone, incluiremos uma expressão regular para garantir que somente valores no formato (99) 999-9999 sejam aceitos.

post-img9
Figura 9 – Configurando validação do campo telefone

 

10 – Finalmente, para o campo Estado, vamos permitir somente estados da região sul.

post-img10
Figura 10 – Configurando validação do campo estado

 

11 – Para verificarmos o resultado da validação, vamos gravar os registros inválidos num arquivo de saída. Para isso, inclua um componente “File Output”, ligue-o ao componente “Data Validator” através de um conector de “Error handling”. Informe o caminho e nome do arquivo no campo “Filename” e defina as colunas que serão gravadas na aba “fields”. Inclua também uma coluna “ErrorDescription”.

post-img12
Figura 11 – Conectando steps

 

12 – Selecione o componente “Data validator” com o botão direito e clique na opção “Error Handling”. No campo “Error descriptions fieldname”, defina o nome “ErrorDescription”, conforme colocamos no “File Output”.

post-img11
Figura 12 – Configurando nome do campo error description

13 – A transformação ficou assim:

post-img13
Figura 13 – Transformação completa

Pronto. Agora só rodar e conferir o arquivo de saída.

O que achou desse post? Tem alguma dúvida? Conseguiu criar a transformação? Deixe seu comentário.

Por MARCIA TANIMOTO

Formada em Informática - UEM/Maringá. Analista de Sistemas, apaixonada pela profissão, curiosa e MATERANA de coração.

Postado em: 04 de março de 2016

Confira outros artigos do nosso blog

[Webinar] Profile de aplicações Java com Oracle Mission Control e Flight Recorder

24 de julho de 2017

Danival Calegari

Criando Mocks de serviços REST com SoapUI

27 de junho de 2017

Monise Costa

Three laws that enable agile software development

09 de março de 2017

Celso Gonçalves Junior

Medindo performance de uma API REST

21 de fevereiro de 2017

Monise Costa

Deixe seu comentário