ETL em Big Data

569 views

Published on

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.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
569
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
20
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

ETL em Big Data

  1. 1. BIG HANDLING LARGE DATA Arquitetura Clusterizada ETL em Big Data
  2. 2. A Realidade: Você tem uma pilha enorme de dados para tratar ? E suas ferramentas tradicionais de tratamento são insuficientes para dar conta do recado... Really Big Data
  3. 3. Você pode contratar um trator caro e grande para ajudar no seu trabalho... Really Big Data
  4. 4. … ou então você pode utilizar vários tratores menores e ter o trabalho pronto de uma maneira rápida, sem gastar muito. Really Big Data
  5. 5. Mas se você investiu em um grande trator, o que vai acontecer se ele vier a falhar ? Really Big Data
  6. 6. Com tratores menores, em caso de problemas, um de seus outros tratores poderá continuar o trabalho normalmente. Really Big Data
  7. 7. Qual das opções você vai escolher ? vs
  8. 8. CloverETL Capacidade de Resistência em Cluster Otimizado para robustez...
  9. 9. Falha no Processo Hardware & Software fail-over automático Antes Depois Node 2 Node 1 Node 2Node 1
  10. 10. load balancing automático Load Balancing N ova tarefa Antes Depois Node 2 Node 1 Node 1 Node 2
  11. 11. CloverETL Cluster - BIG DATA Otimizado para ser rápido...
  12. 12. 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 !
  13. 13. 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.
  14. 14. Agora, uma transformação de dados pode ser executada em paralelo em qualquer um dos ‘nodes’ disponíveis no CloverETL Cluster.
  15. 15. Cada um dos “nodes” executando um processo é automaticamente alimentado com porções distintas dos dados de entrada. Parte 1 Parte 2 Parte 3
  16. 16. Parte 1 Parte 2 Parte 3 Agora Antes = = Trabalhando em paralelo, o processo todo é executado com maior rapidez, consumindo menos recursos.
  17. 17. Isso parece ser muito bom. Mas como isso é feito exatamente?
  18. 18. CloverETL permite que certos componentes de tranformação sejam alocados a múltiplos “nodes”do cluster. exec 1x exec 1x exec 3x Alocado para Alocado para Alocadopara Alocadopara Node 1 Node 2 Node 3 CloverETL Cluster Esses componentes então rodam em múltiplas instâncias. Nós chamamos isso de Allocation. Alocado para
  19. 19. 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 1 1st instance 2nd instance 3rd instance
  20. 20. 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
  21. 21. 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 data 1st instance Node 3
  22. 22. Vamos dar uma olhada em detalhes no exemplo a seguir.
  23. 23. 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
  24. 24. Aqui, iremos processar os mesmos dados, agora em paralelo. Nos temos um total de 51 registros novamente. Split Gather job em 3 streams paralelos O processo dos dados de entrada são executados em paralelo Resultados parciais
  25. 25. Resumo da execução em paralelo. ☟ drag&drop drag&drop serial paralelo
  26. 26. 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
  27. 27. Vamos continuar. Mais detalhes sobre os sandboxes
  28. 28. 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
  29. 29. Parte 2 Parte 1 Partitioned sandbox “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.
  30. 30. Partitioned Sandboxes Um partitioned sandbox é uma abstração baseada na estrutura de Cluster do CloverETL. A estrutura lógica do Sandbox com uma visão unificada dos arquivos A estrutura física do Sandbox com as alocações dos “nodes”
  31. 31. 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. ☟
  32. 32. Armadilhas Paralelas Quando 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 stream1 record stream2 record stream3 record 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.
  33. 33. 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
  34. 34. Ordenação (sort) em paralelo merge here sort here 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
  35. 35. 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
  36. 36. 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
  37. 37. Para saber mais, consulte: www.cloveretl.com.br forum.cloveretl.com blog.cloveretl.com www.datamotion.com.br

×