Sei sulla pagina 1di 41

1

Jarley Nbrega jpn@cin.ufpe.br

Pentaho Data Integration

Agenda
Manipulao de dados no PDI Controlando o fluxo de dados Transformaes no rowset Tratamento de erros e validao de dados

Manipulao bsica de dados no PDI


Conjunto de steps para transformao
Categoria Transform Criao de novos campos
Uso de expresses Adio de constantes

Clculo de valores Converso de formatos Correspondncia de valores

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Steps de Manipulao de dados


Step Calculator Split fields Add constants Replace in string Number range Descrio Cria novos campos atravs de clculos no stream. Divide um campo em dois ou mais atravs de um separador. Adiciona uma ou mais constantes ao stream. Substitui todas as ocorrncias em uma string por um texto. Cria um novo campo baseado em uma faixa de valores numricos Cria uma correspondncia entre valores de um campo
Janeiro de 2010

Value Mapper
IN1177 - Banco de Dados para Suporte Deciso

Manipulao bsica de dados no PDI

Dvidas sobre o funcionamento de um tipo especfico de step?

http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+v3.2.+Steps

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Exerccios 11, 12 e 13
Manipulando um conjunto de dados com

os steps de transformao Criando grupos de linhas a partir de uma transformao

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Manipulao bsica de dados no PDI


Filtrando informaes
Como descartar linhas de dados sob certas

condies? Step Filter rows (categoria Flow)

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Manipulao bsica de dados no PDI


Step Filter rows (categoria Flow)
Checa a condio para cada rowset Apenas as linhas cuja condio so true sero

enviadas no hop para o prximo step. Possibilidade de fazer if-then-else

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Manipulao bsica de dados no PDI


Exemplo de condio

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Exerccio 14
Filtrando linhas de um dataset

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Controlando o fluxo de dados


At agora...
Fluxo simples de dados
Uma nica direo

Na maioria das vezes


Diviso de stream

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Controlando o fluxo de dados


Como o PDI trata o fluxo de dados?

Cpia do Fluxo
O dataset inteiro copiado para os steps subsequentes

Distribuio do Fluxo
O dataset distribudo em partes iguais e enviado para os steps subsequentes
IN1177 - Banco de Dados para Suporte Deciso Janeiro de 2010

Controlando o fluxo de dados


Como copiar ou distribuir um dataset a

partir de uma condio?


1 opo: usar o Filter rows Problema: ifs aninhados

2 opo: usar o step Switch/Case

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Steps de controle do fluxo de dados


Se voc precisa... Adicionar (append) um dataset em outro, sem importar a ordem. Adicionar (append) um dataset, usando uma ordem especfica. Fazer um merge com dois ou mais datasets, ordenados por um campo. Poder usar... qualquer step. o step Append streams, da categoria Flow. o step Sorted merge, da categoria Joins.

Fazer um merge com dois datasets, eliminando linhas duplicadas

o step Merge rows (diff), da categoria Joins.

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Exerccios 15, 16 e 17
Copiando e distribuindo um dataset

Usando condies para copiar e distribuir um dataset

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Transformaes no Rowset
Algumas transformaes que podem ser

feitas em cima de todo um rowset:


Converter linhas em colunas; Converter colunas em linhas; Operaes em conjuntos de linhas;

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Convertendo linhas em colunas


Na maioria dos datasets cada linha pertence a

um elemento diferente Em alguns casos, uma nica linha no descreve completamente o elemento

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Convertendo linhas em colunas


Soluo do PDI: step Row denormalizer
Converte linhas em colunas
Exemplo:
Dataset final dever ter

uma nica linha por filme

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Convertendo linhas em colunas


Soluo do PDI: step Row denormalizer

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Convertendo linhas em colunas


Soluo do PDI: step Row denormalizer
Regra geral para novos campos:
Se o valor para a chave

de um campo for igual a A, coloque o valor do campo B em um novo campo C.

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Convertendo linhas em colunas


Outra aplicao do step Row denormalizer
Agregao de dados
A partir de um dataset

de entrada, gerar na sada um novo dataset com dados consolidados ou agregados. Semelhana com ferramentas de cross tab (ex.: Pivot no Excel)

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Steps de converso em rowsets


Step Descrio

Group By
Univariate statistics Split fields Row normalizer Row flattener Sort rows Split fields to rows Unique rows

Cria agregaes em grupos de linhas usando Sum, Maximum, etc.


Computa estatsticas bsicas em grupos de linhas Divide um campo em dois ou mais campos Transforma colunas em linhas Faz um nivelamento nas linhas consecutivas Ordena linhas atravs de uma chave Divide um campo de string e cria uma nova linha para cada termo da diviso Remove linhas duplicadas no dataset (precisa de ordenao prvia)

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Exerccio 18
Fazendo converses no rowset

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Tratamento de Erros
At agora...
Erros encontrados nas transformaes Janela de Logging

Tratamento de erros no PDI


Opo Define Error handling (disponveis em alguns

steps) Opo Error handling (disponvel na edio dos steps)

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Tratamento de Erros

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Tratamento de Erros -Configuraes


Campo do Step Nr of errors fieldname Error fields fieldname Error codes fieldname Error descriptions fieldname Descrio Nome do campo que ir armazenar o nmero de erros Nome do campo que registrar os campos onde ocorreram os erros Nome do campo que contm o cdigo do erro Nome do campo que contm a descrio do erro

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Tratamento de Erros
Como tratar?
Detectando o erro e

enviando as linhas com problemas para outro stream. Quando a quantidade de erros grande? Quando os erros so crticos?
Opo: usar o step Abort, da

categoria Flow

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Tratamento de Erros
Como personalizar um arquivo de log no PDI?
Step Write to log, categoria

Utility

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Validao de dados
Boas prticas no desenvolvimento das atividades de ETL

Validar os dados antes de iniciar o processamento

Prevenir a transformao de abortar o processamento

Checar se os dados seguem os requisitos e regras de negcio

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Validao de dados
Categoria de steps Validation
Step Data Validator
Validao de tipos de

dados Validao do contedo dos dados

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Validao de dados step Data Validator


Validao desejada Permitir (apenas) valores nulos Tamanho de um campo est dentro de uma faixa de valores Valor de um campo est dentro de uma faixa de valores Campo selecionado atende a um padro Bloco de opes Data Null allowed? / Only null values allowed? Max string length / Min string length Maximum value / Minimum value Only numeric data expected, Expected start string, Expected end string, Regular expression expected to match Not allowed start string, Not allowed end string, Regular expression not allowed to match Allowed values, Read allowed values from another step?
Janeiro de 2010

Campo selecionado no atende a um padro Campo selecionado um dos valores permitidos em uma lista
IN1177 - Banco de Dados para Suporte Deciso

Exerccio 19
Validando o contedo dos dados

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Resumo da Semana 2
Steps de transformao Filtragem de dados Cpia e distribuio do stream Transformaes no rowset

Tratamento de erros
Validao do tipo e contedo dos dados

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Bibliografia

Site do PDI: http://kettle.pentaho.com/


IN1177 - Banco de Dados para Suporte Deciso Janeiro de 2010

IN1177 - Banco de Dados para Suporte Deciso

Janeiro de 2010

Potrebbero piacerti anche