37
BIG HANDLING LARGE DATA Arquitetura Clusterizada ETL em Big Data

ETL em Big Data

Embed Size (px)

DESCRIPTION

Uma explanação de como o uso do ETL é útil e fundamental nos projetos de Big Data. A DataMotion é uma empresa líder em soluções de Integração e Qualidade de Dados, especializada no tratamento e cruzamento de dados para os principais países da América Latina.

Citation preview

Page 1: ETL em Big Data

BIGHANDLING LARGE DATAArquitetura Clusterizada

ETL em Big Data

Page 2: ETL em Big Data

A Realidade:Você tem uma pilha enorme de dados para tratar ?

E suas ferramentas tradicionais de tratamentosão insuficientes para dar conta do recado...

Really B

ig Data

Page 3: ETL em Big Data

Você pode contratar um trator caro e grande para ajudar no seu trabalho...

Really B

ig Data

Page 4: ETL em Big Data

… ou então você pode utilizar vários tratores menores e tero trabalho pronto de uma maneira rápida, sem gastar muito.

Really B

ig Data

Page 5: ETL em Big Data

Mas se você investiu em um grande trator, o que vaiacontecer se ele vier a falhar ?

Really B

ig Data

Page 6: ETL em Big Data

Com tratores menores, em caso de problemas, um de seusoutros tratores poderá continuar o trabalho normalmente.

Really B

ig Data

Page 7: ETL em Big Data

Qual das opções você vai escolher ?

vs

Page 8: ETL em Big Data

CloverETL Capacidade de Resistência em ClusterOtimizado para robustez...

Page 9: ETL em Big Data

Falha no Processo Hardware & Software

fail-over automático

Antes Depois

Node 2 Node 1 Node 2Node 1

Page 10: ETL em Big Data

load balancing automático

Load Balancing

Nova

tare

fa

Antes Depois

Node 2

Node 1 Node 1

Node 2

Page 11: ETL em Big Data

CloverETL Cluster - BIG DATA

Otimizado para ser rápido...

Page 12: ETL em Big Data

Tradicionalmente, transformações de dados rodavam em um grande e único servidor, com múltiplas CPUs, repletas de memória RAM.

E isso era caro !

Page 13: ETL em Big Data

Então o time do CloverETL desenvolveu um conceito para uma transformação de dados em cluster.

Assim nasceu o CloverETL Cluster

Uma poderosa solução de transformação de dados que pode rodar em máquinas usuais de baixo custo.

Page 14: ETL em Big Data

Agora, uma transformação de dados pode ser executada em paralelo em qualquer um dos ‘nodes’ disponíveis no

CloverETL Cluster.

Page 15: ETL em Big Data

Cada um dos “nodes” executando um processo é automaticamente alimentado

com porções distintas dos dados de entrada.

Parte 1

Parte 2

Parte 3

Page 16: ETL em Big Data

Parte

1

Parte

2

Parte

3

Agora

Antes

=

=

Trabalhando em paralelo, o processo todo é executado com maior rapidez, consumindo menos recursos.

Page 17: ETL em Big Data

Isso parece ser muito bom.Mas como isso é feito exatamente?

Page 18: ETL em Big Data

CloverETL permite que certos componentes de tranformação sejam alocados a múltiplos “nodes”do cluster.

exec1x

exec1x

exec3x

Alocado para

Alocado para

Alocado para

Alocado paraNode 1

Node 2

Node 3

CloverETL Cluster

Esses componentes então rodam em múltiplas instâncias.

Nós chamamos isso de Allocation.

Alocad

o para

Page 19: ETL em Big Data

Componentes Especiais permitem que os dados de entrada sejam divididos e encaminhados em paralelo para múltiplos “nodes” onde o processamento será realizado.

Node 1

Node 2

Node 3

Serial data Partitioned data

Node 11st instance

2nd instance

3rd instance

Page 20: ETL em Big Data

Outros componentes agrupam os dados em fluxos paralelos, direcionando e unificando o processamento.

Node 1

Node 2

Node 3

Serial dataPartitioned data

Node 1

1st instance

2nd instance

3rd instance

Page 21: ETL em Big Data

A tranformação original é automaticamente “reescrita” em diversas partes menores, que serão executadas dentro do cluster.

Cada “node”que será utilizado será gerido pelo Allocation.

Node 1

Node 2 Node 3

2nd instance

3rd instance

Serial data Serial dataPartitioned data1st instance

Node 3

Page 22: ETL em Big Data

Vamos dar uma olhadaem detalhes no exemplo a seguir.

Page 23: ETL em Big Data

Neste exemplo, iremos ler dados de endereço de uma empresa, que totalizam10.499.849 registros.

Consolidado do agrupamento

Nos temos um total de 51 records – um para cada estado americano

processamento serial

Page 24: ETL em Big Data

Aqui, iremos processar os mesmos dados, agora em paralelo.

Nos temos um totalde 51 registros

novamente.

Split Gather

job em3 streamsparalelos

O processo dos dados de entrada são

executados em paralelo

Resultados parciais

Page 25: ETL em Big Data

Resumo da execução em paralelo.

drag&drop drag&

drop

serial

paralelo

Page 26: ETL em Big Data

Qual é o truque?

Divisão do arquivo de entrada em blocos paralelos.

Fazer o trabalho pesado em porções menores - todas rodando em paralelo.

Trazer as porções individuais do resultado em um conjunto final.

☜Resultado

Page 27: ETL em Big Data

Vamos continuar.Mais detalhes sobre os sandboxes

Page 28: ETL em Big Data

O Sandbox

Um pouco mais de detalhe sobre o SANDBOX.

SANDBOX é um nome lógico para uma estrutura de arquivos gerenciada por um servidor. Isso permite que projetos individuais no servidor sejam separados em unidades distintas. Cada transformação de dados pode acessar multiplos sandboxes, tanto local quanto remotamente.

Vamos olhar para um tipo de Sandbox especial – partitioned

Page 29: ETL em Big Data

Parte 2

Parte 1 Partitionedsandbox“SboxP”

Parte 3

Node 1

Node 2

Node 3

SboxP

Em um partitioned Sandbox, o arquivo de entrada é dividido em sub-arquivos, cada um residindo em diferentes “nodes” do Cluster Cluster em uma mesma estrutura de diretório.

Page 30: ETL em Big Data

Partitioned Sandboxes

Um partitioned sandbox é uma abstração baseada na estrutura de Cluster do CloverETL.

A estrutura lógica do Sandbox com umavisão unificada dos arquivos

A estrutura física do Sandbox com as alocações dos “nodes”

Page 31: ETL em Big Data

Partitioned Sandbox

Partitioned sandbox define como o dado é particionado

no CloverETL Cluster

Allocation

Allocation define como o processo de transformação é distribuido ao longo

do ambiente CloverETL

☜☞A alocação pode ser baseada no layout do sandbox.

O processamento ocorre onde o dado reside

Nos costumamos dizer que o cluster que executa nossos componentes de transformação, também contêm porções de dados que deseja processar.

Page 32: ETL em Big Data

Armadilhas ParalelasQuando o processamento é feito em paralelo, alguns pontos importantes devem ser considerados.

Aggregating, Sorting, Joining…

Trabalhando em paralelo, significa produzindo resultados parciais.

Primeiro nós produzimos 4 resultados parciais. Então

agregamos esse processo transitório até chegar o resultado final.

➔semi-result1➔semi-result 2

➔semi-result3➔semi-result4

record stream1record stream2record stream3record stream4

Esses resultados parciais servirão de base para a criação do resultado final

do processamento.

➔resultado finalsemi-result1,2,3,4 ➔

Uma notícia boa: Quando aumentamos a quantidade de processos em paralelo, nós não

alteramos a tranformação em si.

Page 33: ETL em Big Data

Armadilhas Paralelas

Transformação Completa – aggregation & post-processing

sum()here

count()here

Explicando !

Exemplo: contagem de ocorrência de empresas por estado utilizando a função count().

No passo 1, nós produzimos resultados parciais. Em função dos registros serem particionados, os dados referentes aos estados irão aparecer em múltiplas instâncias,

Por exemplo, nós poderíamos ter os dados de NY distribuidos em 4 processos parciais, em 4 streams distintas.

No passo 2, poderíamos combinar os 4 processos do passo 1 em uma única sequência e então agregar novamente os resultados finais.

Nesta etapa de agregação dos dados poderíamos por exemplo, utilizar a função sum()

Passo 1

Aggregating, Sorting, Joining…

Passo 2

Page 34: ETL em Big Data

Ordenação (sort) em paralelo

mergehere

sorthere

Explicando !

Sorting em paralelo ➔ registros são sorteados em streams parelelos individuais, respeitando-se a prioridade de cada conteúdo

O processo de sort é reunido em um único stream ➔ registros são combinados respeitando-se as mesmas chaves da etapa 1

1 2

Aggregating, Sorting, Joining… Armadilhas Paralelas

Page 35: ETL em Big Data

Explicando !

Consolidação em paralelo ➔ registros master & slave(s) devem ser particionados por uma mesma chave. Esse mesmo conteúdo será utilizado em momentos futuros.

Aggregating, Sorting, Joining…

Consolidação em paralelo

Armadilhas Paralelas

Page 36: ETL em Big Data

Resumindo…

Optar pelo processamento paralelo é fácil!Consulte-nos.

☞ Os problemas de BIG DATA podem ser resolvidos utilizando-se Clusters

☞ Transformações tradicionais podem ser facilmente convertidas

☞ Não existe máquina, pois os usuários tem controle completo de tudo

☞ CloverETL possui recursos de controle de falhar e load balancing

Page 37: ETL em Big Data

Para saber mais, consulte:

www.cloveretl.com.brforum.cloveretl.comblog.cloveretl.com

www.datamotion.com.br