SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
BIG
HANDLING LARGE DATA
Arquitetura Clusterizada
ETL em Big Data
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
Você pode contratar um trator caro e grande
para ajudar no seu trabalho...
Really Big Data
… 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
Mas se você investiu em um grande trator, o que vai
acontecer se ele vier a falhar ?
Really Big Data
Com tratores menores, em caso de problemas, um de seus
outros tratores poderá continuar o trabalho normalmente.
Really Big Data
Qual das opções você vai escolher ?
vs
CloverETL Capacidade de Resistência em Cluster
Otimizado para robustez...
Falha no Processo
Hardware & Software
fail-over automático
Antes Depois
Node 2 Node 1 Node 2Node 1
load balancing automático
Load Balancing
N
ova
tarefa
Antes Depois
Node 2
Node 1 Node 1
Node 2
CloverETL Cluster - BIG DATA
Otimizado para ser rápido...
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 !
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.
Agora, uma transformação de dados pode ser executada em
paralelo em qualquer um dos ‘nodes’ disponíveis no
CloverETL Cluster.
Cada um dos “nodes” executando um
processo é automaticamente alimentado
com porções distintas dos dados de entrada.
Parte 1
Parte 2
Parte 3
Parte
1
Parte
2
Parte
3
Agora
Antes
=
=
Trabalhando em paralelo, o processo todo é executado com
maior rapidez, consumindo menos recursos.
Isso parece ser muito bom.
Mas como isso é feito exatamente?
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
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
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
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
Vamos dar uma olhada
em detalhes no exemplo a seguir.
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
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
Resumo da execução em paralelo.
☟
drag&drop drag&drop
serial
paralelo
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
Vamos continuar.
Mais detalhes sobre os sandboxes
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
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.
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”
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.
☟
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.
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
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
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
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
Para saber mais, consulte:
www.cloveretl.com.br
forum.cloveretl.com
blog.cloveretl.com
www.datamotion.com.br

Mais conteúdo relacionado

Semelhante a ETL em Big Data

AWS Redshift Primer
AWS Redshift PrimerAWS Redshift Primer
AWS Redshift PrimerMateus Aubin
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura OraclePablo Garcia
 
Banco de Dados Distribuídos
Banco de Dados DistribuídosBanco de Dados Distribuídos
Banco de Dados DistribuídosAdail Viana Neto
 
Gerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasGerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasWendel Moreira
 
Como arquiteturas de dados quebram
Como arquiteturas de dados quebramComo arquiteturas de dados quebram
Como arquiteturas de dados quebramGleicon Moraes
 
Data warehouse & olap
Data warehouse & olapData warehouse & olap
Data warehouse & olapBrian Supra
 
Particionamento cassandra
Particionamento   cassandraParticionamento   cassandra
Particionamento cassandraserdg
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveiselliando dias
 
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoBig Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoOpencadd Advanced Technology
 
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftPath to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftAmazon Web Services LATAM
 

Semelhante a ETL em Big Data (20)

Primeiros Passos Com Elasticsearch
Primeiros Passos Com ElasticsearchPrimeiros Passos Com Elasticsearch
Primeiros Passos Com Elasticsearch
 
Cluster
ClusterCluster
Cluster
 
AWS Redshift Primer
AWS Redshift PrimerAWS Redshift Primer
AWS Redshift Primer
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura Oracle
 
Cluster
ClusterCluster
Cluster
 
Banco de Dados Distribuídos
Banco de Dados DistribuídosBanco de Dados Distribuídos
Banco de Dados Distribuídos
 
SQLSat #127
SQLSat #127SQLSat #127
SQLSat #127
 
Gerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasGerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de Consultas
 
Como arquiteturas de dados quebram
Como arquiteturas de dados quebramComo arquiteturas de dados quebram
Como arquiteturas de dados quebram
 
Data warehouse & olap
Data warehouse & olapData warehouse & olap
Data warehouse & olap
 
No sql std
No sql stdNo sql std
No sql std
 
Particionamento cassandra
Particionamento   cassandraParticionamento   cassandra
Particionamento cassandra
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
 
Deep dive de Amazon Redshift
Deep dive de Amazon RedshiftDeep dive de Amazon Redshift
Deep dive de Amazon Redshift
 
4081 my sql
4081 my sql4081 my sql
4081 my sql
 
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoBig Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
 
Deep dive com Amazon Aurora
Deep dive com Amazon AuroraDeep dive com Amazon Aurora
Deep dive com Amazon Aurora
 
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftPath to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
 
GlusterFs
GlusterFsGlusterFs
GlusterFs
 

ETL em Big Data

  • 1. BIG HANDLING LARGE DATA Arquitetura Clusterizada ETL em Big Data
  • 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. Você pode contratar um trator caro e grande para ajudar no seu trabalho... Really Big Data
  • 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. Mas se você investiu em um grande trator, o que vai acontecer se ele vier a falhar ? Really Big Data
  • 6. Com tratores menores, em caso de problemas, um de seus outros tratores poderá continuar o trabalho normalmente. Really Big Data
  • 7. Qual das opções você vai escolher ? vs
  • 8. CloverETL Capacidade de Resistência em Cluster Otimizado para robustez...
  • 9. Falha no Processo Hardware & Software fail-over automático Antes Depois Node 2 Node 1 Node 2Node 1
  • 10. load balancing automático Load Balancing N ova tarefa Antes Depois Node 2 Node 1 Node 1 Node 2
  • 11. CloverETL Cluster - BIG DATA Otimizado para ser rápido...
  • 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. 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. Agora, uma transformação de dados pode ser executada em paralelo em qualquer um dos ‘nodes’ disponíveis no CloverETL Cluster.
  • 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. Parte 1 Parte 2 Parte 3 Agora Antes = = Trabalhando em paralelo, o processo todo é executado com maior rapidez, consumindo menos recursos.
  • 17. Isso parece ser muito bom. Mas como isso é feito exatamente?
  • 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. 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. 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. 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. Vamos dar uma olhada em detalhes no exemplo a seguir.
  • 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. 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. Resumo da execução em paralelo. ☟ drag&drop drag&drop serial paralelo
  • 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. Vamos continuar. Mais detalhes sobre os sandboxes
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Para saber mais, consulte: www.cloveretl.com.br forum.cloveretl.com blog.cloveretl.com www.datamotion.com.br