16
O processo de ETL (Extract,Transform and Load) destina-se á extração, transformação e carga dos dados de uma ou mais bases de dados de origem para uma ou mais bases de dados de destino(Data wareHouse). ETL é o processo mais critico e demorado na construção de um Data WareHoruse. A extração e a carga são obrigatórios para o processo, sendo a transformação /limpeza opcional. Somente a extração dos dados leva mais ou menos 60 por cento das horas de desenvolvimento de um DW (KIMBALL, 1998 apud ABREU, 2007). Processo de extração: Segundo PALMA(1998), o processo de aquisição de dados é caro e complexo. A complexidade está em rastrear e mapear informações de vários bancos de dados, projetados por diferentes profissionais, em diferentes épocas, que podem estar em diferentes formatos, plataformas e tecnologias, espalhados por toda a organização, às vezes sem documentação e geralmente redundantes. Fatores que atrasam a extração dos dados: • Ausência de informação • Valores inválidos • Ausência de integridade referencial • Violações de regras de negócios • Cálculos inválidos • Formatos não padronizados • Duplicação de informação e inconsistência • Falhas na modelagem das bases de dados operacionais

O Processo de ETL

Embed Size (px)

Citation preview

Page 1: O Processo de ETL

O processo de ETL (Extract,Transform and Load) destina-se á extração, transformação e carga dos dados de uma ou mais bases de dados de origem para uma ou mais bases de dados de destino(Data wareHouse).

ETL é o processo mais critico e demorado na construção de um Data WareHoruse.

A extração e a carga são obrigatórios para o processo, sendo a transformação /limpeza opcional.

Somente a extração dos dados leva mais ou menos 60 por cento das horas de desenvolvimento de um DW (KIMBALL, 1998 apud ABREU, 2007).

Processo de extração:

Segundo PALMA(1998), o processo de aquisição de dados é caro e complexo.

A complexidade está em rastrear e mapear informações de vários bancos de dados, projetados por diferentes profissionais, em diferentes épocas, que podem estar em diferentes formatos, plataformas e tecnologias, espalhados por toda a organização, às vezes sem documentação e geralmente redundantes.

Fatores que atrasam a extração dos dados:

• Ausência de informação

• Valores inválidos

• Ausência de integridade referencial

• Violações de regras de negócios

• Cálculos inválidos

• Formatos não padronizados

• Duplicação de informação e inconsistência

• Falhas na modelagem das bases de dados operacionais

Se esses fatores não forem corretamente trabalhados no processo de extração, as informações geradas através deles faram que as decisões sejam tomadas erroneamente, podendo afetar diretamente o negocio da organização. (criticidade do processo)

Page 2: O Processo de ETL

Vantagens

Todas as ferramentas de ETL trazem consigo um fluxo visual das cargas e dos processos disponíveis nas mesmas, obviamente de maneira diferente, mas normalmente de forma estruturada e lógica. 

Controle de cargas: 

A maioria das ferramentas de ETL disponíveis no mercado traz consigo a capacidade não apenas de fornecer o monitoramento do sucesso ou não das cargas, mas uns níveis de detalhe de quais problemas ocorreram, em que tabelas, quais registros duplicados ou rejeitados. Algumas delas fornecem modelos prontos para relatórios de operação de cargas. 

Performance: 

As ferramentas com oferecem tuning para os processos de cargas, algumas delas característicos para atender a diferentes bancos de dados. 

Tratamento de Flat Files: 

A possibilidade de mapear arquivos csv"s, txt"s, dbf"s etc...sem grandes esforços também é característico das ferramentas de ETL. 

Desvantagens: 

Alto Custo: 

O preço de uma licença, dependendo da ferramenta pode chegar a 40% do custo total de um projeto de ETL. Tendo em vista que os patrocinadores de um projeto normalmente são usuário de negócio, justificar a compra de um ETL talvez fique inviável. 

Profissionais capacitados: 

Uma ferramenta de ETL deviria não demandar muito conhecimento de programação SQL, mas isso não é bem verdade. Além de termos que encontrar profissionais com conhecimento em SQL, algumas ferramentas são bastante complexas e precisamos de profissionais capacitados nas mesmas, o que pode encarecer o custo do recurso. Em alguns casos, é mais eficiente termos um ETL baseado em SQL e contratarmos um bom profissional na linguagem. 

Reduz a flexibilidade: 

Uma solução fornecida, obviamente fica dependente da capacidade de desenvolvimento de seu fabricante, assim como da dependência na resolução de problemas encontrados e atualizações.

Page 3: O Processo de ETL

Requisitos para ferramentas ETL

Para se obter uma boa ferramenta de ETL, esse documento apresenta um conjunto de requisitos considerados para ferramentas deste tipo. Em cada requisito citado, é especificado o seu tipo, a fonte na qual ele teve procedência, sua descrição e seu motivo .

Lista de requisitos para ferramentas ETL

Requisitos Descrição

Requisitos Funcionais

RF1 Permitir extração de dados de diversas fontes

RF2 Detalhamento da execução de uma transformação

RF3 Permitir Schedule de tarefas

RF4 Suportar função de transformação

RF5 Conter módulo de administração de modo a permitir um

gerenciamento centralizado

Requisitos não Funcionais

RNF1 Portabilidade: executar em ambiente multi-plataforma

RNF2 Usabilidade: flexibilidade de uso com ambiente gráfico

ou através de código

RNF3 Performance: permitir independência quanto ao volume

de dados para a carga

RNF4 Confiabilidade: conter mecanismos de transmissão e

retransmissão de dados

RNF5 Performance: permitir compactação de dados

RNF6 Segurança: permitir criptografia de dados

RNF7 Estrutura: possuir arquitetura aberta

RNF8 Usabilidade: facilidade de aquisição da ferramenta e sua

documentação

RNF9 Usabilidade: facilidade de instalação

Fonte: literatura técnica sobre o domínio de ETL, através do livro Extração de Dados para

Data Warehouse (Gonçalves, 2003).

Page 4: O Processo de ETL

RF1 - Permitir extração de dados de diversas fontes

É de profunda importância, por exemplo, que uma ferramenta de ETL possibilite a

integração com diversos tipos de arquivos da empresa, que consiga ler:

arquivos de texto;

planilhas;

arquivos XML;

bancos de dados (Oracle, SQL Server, PostgreeSQL, MySQL.).

Caso contrario a ferramenta perderia o conceito de ETL.

RF2 - Detalhamento da execução de uma transformação

Esse requisito está relacionado ao nível de detalhamento que a ferramenta oferece no

momento da execução de uma transformação. Por exemplo: exibição do tempo de leitura

da fonte, exibição do tempo de escrita no repositório, permitir visualização dos dados que

estão sendo trafegado no momento da execução, exibição da velocidade do tráfego dos

dados de leitura e de escrita.

RF3 - Permitir Schedule de tarefas

Schedule é o agendamento de tarefas ou atividades que devem ser disparadas no horário

programado.

Com Schedule de tarefas pode-se programar que um determinado processo fique rodando

por varias horas não necessitando do auxilio do desenvolvedor. Geralmente esses tipos de

processo são postos para serem executado durante o período da noite, pois os recursos

da máquina ficam disponíveis para que o processo trabalhe com eficiência.

RF4 - Suportar função de transformação

A ferramenta deve conter um esquema de validação dos dados que estão sendo

trabalhados e que vão ser persistidos em um banco de dados (ou outro meio de

armazenamento). Essas funções devem fazer validações tais como: verificação se uma

tabela existe no banco que vai receber os dados, verificar se haverá uma correspondência

de chave estrangeira ou primária, verificar se existe a coluna referente, ou até mesmo se o

banco existe, evitando erros ou simplesmente podendo prevê-los e tratá-los.

Com o uso dessas funções pode-se também ler um campo, executar um cálculo sobre ela

e inserir um valor alterado no repositório.

Page 5: O Processo de ETL

RF5 - Conter módulo de administração de modo a permitir um gerenciamento

centralizado

um módulo de administração consiste em um conjunto de atividades onde se pode

gerenciar e administrar um sistema.

Para uma ferramenta de ETL é importante se ter um módulo de onde se pode administrar

cada atividade, ou seja, um módulo que gerencie desde o local de onde será extraída uma

informação determinada até como ela será inserida ou trabalhada e de que forma ela se

associará com as demais informações.

Page 6: O Processo de ETL

Kettle

Em sua tradução a Kettle (Kettle Extraction, Transformation, Transportation and

Loading Environment). A Kettle é uma ferramenta de ETL código open source criada pela

Pentaho em 2004 usada na construção de um Data Warehouse.

Em julho de 2006, a Pentaho fez uma publicação na revista Intelligent Enterprise

(2006) da qual sua plataforma de BI bateu o recorde de download mensal com mais de

55.000 tornando-se um código open source mais baixado na área de ETL.

Com sua estrutura baseada em Java a Kettle possui algumas características

próprias da ferramenta que são:

Spoon: é a área gráfica onde os dados são modelados para a transformação

adequada e se eles serão gravados no repositório ou não;

Pan: comanda cada transformação que está sendo gerada no spoon;

Chef: local onde as jobs são modelados;

Kitchen: utilizado para executar as transformações criadas no Chef.

Por seu ambiente não utiliza programação para modelar as transformações, mas

gera o código da transformação, a Kettle conta principalmente de duas características sua

a spoon e chef de grande importância para seu funcionamento (Santos, 2006).

Ao iniciar a ferramenta o usuário determina onde será feita o armazenamento das

transformações se em um banco de dados ou arquivo XML, e esse repositório será usado

por todo período em que a ferramenta for trabalhada ou gere um novo repositório (Santos,

2006).

A Kettle dispõe de dois painéis em seu ambiente de desenvolvimento como mostra

a Figura 3:

O painel 1 - Localiza-se o Explorer onde ficam Transformation e Jobs para fazer

a modelagem do cenário.

O painel 2 - É a parte do ambiente gráfico a ser definido das transformações

que estão sendo geradas.

Page 7: O Processo de ETL

Talend

A Talend Open Studio (TOS) é uma ferramenta open source, que também auxilia

na fase de desenvolvimento de data warehouse fazendo o processo de ETL. Seu ambiente

gráfico é baseado no Eclipse (Talend, 2008).

Desde o seu lançamento no final de 2006 a Talend Open Studio chegou a

quinhentos mil downloads. Em 21 de outubro de 2008 a Talend anuncia a disponibilização

da mais nova Talend Open Studio versão 3.0 fazendo agora conexão com sistema SAP.

A TOS possuir uma arquitetura distribuída se torna um diferencial entre as outras

ferramentas de ETL fazendo com que a uma redução do seu custo ao mesmo tempo

melhoria no seu desempenho (Santos, 2006).

Na TOS oferece a opção qual a linguagem de geração sendo ela Java ou Perl.

Além disso, a TOS oferece conectividade:

Para pacote de aplicativos (ERP, CRM, etc.), base de dados, mainframes, Web

Services, arquivos, para abordar disparidade das fontes;

Data warehouse, Data Marts, aplicações OLAP- para fazer a analise,

elaborações de relatórios, dashboarding, scorecarding.

Built-in componente avançado para ETL, incluindo manipulação de string,

movimentação automática lookup e projetos em Java.

O ambiente da TOS é composto por quatro painéis, conforme pode ser visto na

Figura.

Page 8: O Processo de ETL

Repositório - É a parte onde se localiza todos os componentes de

armazenamento que serão usados na transformação;

Área gráfica - É a área responsável para editar o modelo a ser definido pelo

usuário (pode ser por desenho ou via código) das transformações que estão

sendo geradas. O lado direito do painel é composto dos conectores que serão

usados nas transformações;

Outline/Code Viewer – São as informações dos jobs. A aba Outline mostra uma

visualização das estruturas do modelo a ser gerado. A aba Code Viewer mostra

a linha de código correspondente a cada job;

Configuração do sistema – Nessa aba destaca várias informações a respeito da

transformação a ser feita. Nela apresenta as propriedades dos Jobs, os erros

das operações, run e Schedule do job a ser trabalhado.

Apatar

A Apatar-Open-Source-Data-Integração é uma ferramenta de ETL com código

open source, criada por Renat Khasanshyn em fevereiro de 2007, para fazer integração

das informações dos clientes com diversas fontes de dados ou fontes hospedadas na web

(Brodkin, 2007).

A ferramenta Apatar está disponível de duas maneiras á Apatar open source da

qual o código é livre para download e modificação para se adequar ao usuário. Nesse caso

para um apoio e manutenção da ferramenta open source, se necessitar, há um suporte no

valor de U$ 1.900 (um mil e novecentos dólares) anual. A outra forma, Apatar Enterprise

Edition, dispõem de todos os recursos adicionais até mesmo suporte (Feinman, 2007).

O ambiente de desenvolvimento mostrado na Figura 5 dispõe de dois painéis para

projeta as transformações necessárias do projeto a ser executado.

Aigura 5: Ambiente Apatar

Page 9: O Processo de ETL

O painel 1 - Localizam-se todos os conectores “functions” que a ferramenta

disponibiliza para fazer a modelagem do cenário.

O painel 2 - É a parte do ambiente gráfico a ser definido das transformações

que estão sendo geradas.

A Apatar por possui seu código 100% open source onde disponibiliza seu código

fonte para alteração, oferecendo guias aos usuários para que possam criar novos

conectores e funções a serem usados no ambiente de projeto. Além disso, a Apatar pode

também criar projetos através do IDE Eclipse (Apatar, 2008).

As anotações que foram feitas dizem respeito à velocidade (em linhas por segundo – rows

for second). Com Base nos resultados da velocidade foi calculado a média e desvio

padrão, que está contida nas tabelas.

A Tabela abaixo mostra os resultados dos testes com leitura de arquivo TXT e

repositório PostgreSQL e na Figura 21 o seu gráfico correspondente.

EntidadeQtd.

Registros

Kettle TOS Apatar

M D M D M D

regimes 8 57,73 2,38 188,24 76,38 33,54 4,27

situacoesorgaos 12 70,93 2,27 308,23 15,83 68,07 11,69

instrucoes 14 75,37 5,10 200,21 30,66 87,75 64,58

estados 27 112,93 2,54 960,67 107,62109,0

2 39,56

situacoes 76 224,03 2,97 1118,29 32,91117,6

0 3,73

funcoes 247 303,07 0,85 2268,14 3006,78582,7

5 29,47

municipios 419 208,97 3,05 364,05 40,49154,5

8 35,99

bairros 832 278,10 0,20 150,95 3,03140,8

2 2,75

orgaos 7909 220,23 2,41 670,02 18,48857,8

1 1,86

servidores 63981 3141,43 2,72 3463,47 59,13 16,08 0,02

dadospessoais 63981 3335,83 6,05 3155,03 26,62 16,76 0,12

financeiro 3636705 107,80 - 120,30 - - -

Page 10: O Processo de ETL

0,00 500,00 1000,00 1500,00 2000,00 2500,00 3000,00 3500,00

regimes

situacoesorgaos

instrucoes

estados

situacoes

funcoes

municipios

bairros

orgaos

servidores

dadospessoais

Velocidade

Kettle M TOS M Apatar M

PENTAHO KETTLE VS INFORMATICA

Informatica é uma boa suíte de integração de dados comerciais. Foi fundada em 1993 , é líder de mercado na integração de dados (Gartner Dataquest) Ele tem 2600 clientes. Destes, há empresas da Fortune 100, empresas no Dow Jones e organização do governo.

 único foco da empresa é a integração de dados. Tem um grande leque de empresas para integrar seus sistemas, limpar seus dados e pode se conectar a um vasto número de atual e sistemas legados. É muito caro, será necessário ter funcionários capacitados para usá-lo e provavelmente exigirá a contratação de consultores também. (Eu ouço consultores Informatica são bem pagos).  É muito rápido e pode ser escalado para grandes sistemas.

 Ele tem " Otimização Pushdown ", que usa uma abordagem ELT que usa o banco de dados fonte para fazer a transformação -.

Comparando Informatica vs  Pentaho, informática tem muito mais recursos corporativos, por exemplo, balanceamento de carga, entre servidores de banco de dados.

O Pentaho requer menos treinamento que o Informatica. Penatho não exige custos iniciais enormes como Informatica .

Informatica é mais rápido que o Pentaho. Infromatica tem Optimization Pushdown, mas com alguns ajustes para Pentaho e algum conhecimento do banco de dados de origem, você pode melhorar a velocidade de Pentaho. Você pode colocar Pentaho Kettle em vários servidores diferentes (Já que é de graça) e usá-lo como um cluster.

 Informatica tem ferramentas de monitoramento muito melhores que o Pentaho.

Resultado:  é realmente Informatica é bem superior em empresas ETL suite, mas é muito grande e caro. 

Se o sistema é de pequeno/médio porte, eu prefiro utilizar Pentaho como alternativa e há muitos e muitos casos de uso, onde as grandes empresas utilizadas Pentaho .

Page 11: O Processo de ETL

Algumas dessas empresas estão implementado conceitos atuais como a baixo:

API Google de Geocodificação permitindo a validação de endereços. A API Google irá

corrigir endereços e enriquecer os dados com informações de geocodificação, como

latitude e longitude.

Page 12: O Processo de ETL

Vivo economiza US$ 28 milhões com data warehouseProjeto da operadora unificou dados de seis empresas, que transacionavam cerca de 2 bilhões de registros diários.

Criada a partir de seis empresas de telecomunicações, a operadora Vivo se viu diante de um grande desafio no processo de unificação das companhias: reunir, em um único data warehouse corporativo (ou repositório de dados), todas as informações de seus mais de 46 milhões de clientes. O cenário era complexo. As empresas reunidas contavam com ferramentas de diversos fornecedores de business intelligence (BI), diferentes processos e mais de mil usuários.

Tudo isso gerava um tempo de resposta muito alto para a operadora. Para solucionar o problema, a empresa optou pela integração de todos os sistemas na plataforma da teradata. Esta tarefa envolveu 40 áreas de negócios e 100 usuários concentrados no projeto, focados em integrar 2 bilhões de registros diários. Hoje, o tamanho do banco de dados é de 100 terabytes.

Para chegar à receita ideal, a extração e a análise de dados ficou a cargo de solução da MicroStrategy e todo o processo de desenvolvimento teve relação estreita com a área de negócios. A ordem era não implementar nada que não partisse de uma necessidade dessas áreas. Resultado: uma economia de 28 milhões de dólares.

Deste valor, 15 milhões de dólares foram economizados com impostos, segundo Daniela calaes, gerente de sistemas de BI da Vivo, que falou em evento da teradata realizado esta semana em Washington (EUA). Além disso, ao conseguir obter um retrato mais fiel dos consumidores com potencial para se tornarem devedores, a Vivo conseguiu reduzir em 13 milhões de dólares a receita perdida em situações de clientes devedores.

Outro benefício, de acordo com Daniela, foi a possibilidade de dirigir melhor campanhas de marketing para incentivar o consumo de diferentes produtos por clientes com potencial para aumentar gastos. E a própria rede e a cobertura tiveram melhorias. A partir das ferramentas de análise, a Vivo avaliou comportamentos atuais e históricos da rede para otimizar seu uso, identificar falhas e ampliar a infraestrutura onde fosse necessário. Assim, o custo da manutenção caiu em 20% e a capacidade da rede foi ampliada.

Para o futuro, a empresa prepara a integração com a Telemig Celular, cuja conclusão da compra foi realizada em abril do ano passado, e a implementação de novos módulos de informações, que já estão sendo requeridos pelas áreas de negócios. A área de TI da companhia quer também o aumento da performance do data warehouse, buscando garantir a informação sempre em tempo real.

Implementada a ferramenta, a meta agora é transformar o data warehouse na única fonte de dados da companhia, integrando todas as informações isoladas que ainda persistem na corporação.

Fonte<http://computerworld.uol.com.br/tecnologia/2009/10/20/vivo-economiza-us-15-milhoes-com-integracao-de-data-warehouse/>