etl em big data
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.TRANSCRIPT
![Page 1: ETL em Big Data](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/1.jpg)
BIGHANDLING LARGE DATAArquitetura Clusterizada
ETL em Big Data
![Page 2: ETL em Big Data](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/3.jpg)
Você pode contratar um trator caro e grande para ajudar no seu trabalho...
Really B
ig Data
![Page 4: ETL em Big Data](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/4.jpg)
… 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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/7.jpg)
Qual das opções você vai escolher ?
vs
![Page 8: ETL em Big Data](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/8.jpg)
CloverETL Capacidade de Resistência em ClusterOtimizado para robustez...
![Page 9: ETL em Big Data](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/9.jpg)
Falha no Processo Hardware & Software
fail-over automático
Antes Depois
Node 2 Node 1 Node 2Node 1
![Page 10: ETL em Big Data](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/11.jpg)
CloverETL Cluster - BIG DATA
Otimizado para ser rápido...
![Page 12: ETL em Big Data](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/17.jpg)
Isso parece ser muito bom.Mas como isso é feito exatamente?
![Page 18: ETL em Big Data](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/22.jpg)
Vamos dar uma olhadaem detalhes no exemplo a seguir.
![Page 23: ETL em Big Data](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/25.jpg)
Resumo da execução em paralelo.
☟
drag&drop drag&
drop
serial
paralelo
![Page 26: ETL em Big Data](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/27.jpg)
Vamos continuar.Mais detalhes sobre os sandboxes
![Page 28: ETL em Big Data](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050721/559b10131a28ab9c498b45d0/html5/thumbnails/37.jpg)
Para saber mais, consulte:
www.cloveretl.com.brforum.cloveretl.comblog.cloveretl.com
www.datamotion.com.br