Palestra ministrada em Porto Alegre na trilha de Big data.
https://pt.slideshare.net/tdc-globalcode/tdc2017-poa-trilha-bigdata-a-jornada-para-construir-um-data-lake-na-nuvem
Construindo um Data Lake na nuvem com Google Cloud e AWS
1. Trilha Big Data:
A jornada para construir um
Data Lake na nuvem
Matheus Espanhol
2. O que vem por aí...
Google Cloud Storage
Google BigQuery
SPECTRUM
3. Se você pensar em um Data Mart como uma garrafa de água:
limpa, embalada e estruturada para fácil consumo. O Data Lake é
onde a água se encontra em seu estado mais natural. Essa água
veio de diversas fontes e várias pessoas podem vir a examinar,
mergulhar ou colher amostras da água do lago.
James Dixon - Pentaho CTO
8. DATA LAKE
Fácil adaptação
a mudanças
Insights rápidos
Todos os dados da organização em um só lugar
Armazena dados em formato natural
9. DATA LAKE
Suporta todos os
tipos de dados
Fácil adaptação
a mudanças
Insights rápidos
Todos os dados da organização em um só lugar
Armazena dados em formato natural
10. DATA LAKE
Suporta todos os
tipos de dados
Fácil adaptação
a mudanças
Acessível para
diferentes perfis de
usuários
Insights rápidos
Todos os dados da organização em um só lugar
Armazena dados em formato natural
13. Google Cloud Storage (GCS)
Durabilidade de 99.999999999%
Disponibilidade de 99.95%
Acesso instantâneo a todas classes de storage
$0.026/GB $0.023/GB $0.016/GB $0.010/GB
14. A Movile
Líder em marketplaces móveis
100 milhões de pessoas utilizam os serviços da Movile todo mês
Estamos conectados a mais de 70 operadoras em toda América
15. Comparativo entre cloud storages
Tabela: event_YYYYMM - 380 GB/mês
9 meses
2017
5 anos (event_201201 - event_201612)
3 meses
2017
Coldline Nearline Regional
18.2 TB 3.4 TB 1.1 TBGCS: $ 184,68 / mês
9 meses
2017
5 anos (event_201201 - event_201612)
IA Standard
18.2 TB 3.4 TB 1.1 TB
Glacier
12 meses
2017
5 anos (event_201201 - event_201612)
Standard
18.2 TB 4.5 TB
IA
S3: $ 141,81 / mês
S3: $ 296,97 / mês
19. Amazon Elastic Map Reduce (EMR)
Facilita a configuração e gerenciamento de clusters Hadoop
EMR File System (EMRFS) para compatibilidade entre S3 e HDFS
Possibilidade de alocar instâncias Spot
Substituição automática de nós do cluster
Monitoramento com CloudWatch
20. Presto no EMR
Consultar diretamente os dados no S3
Dados mais utilizados no HDFS
Scale-up e Scale-down online
Excelente suporte SQL
21. Presto no EMR
Consultar diretamente os dados no S3
Dados mais utilizados no HDFS
Scale-up e Scale-down online
Excelente suporte SQL
Vamos substituir o Redshift?
22.
23. Gargalo
Download do arquivo CSV do S3
Solução
Mudar formato de arquivo (Parquet, ORC)
Mudar compactação (Gzip, Snappy, LZ)
Aumentar número de worker nodes
24. Presto - Spark - Hive - EMR
Text Gzip Parquet Snappy Parquet Gzip ORC
Tempo de conversão do arquivo 93 min 37 min 78 min
Tamanho do arquivo no S3 61.4 GB +197.1 GB +45.1 GB +42.3 GB
Tempo de count 3:35 min 1:01 min 11 sec 16 sec
Tempo de query com agregação 3:40 min 47 sec 2:19 min 22 sec
Linhas transferidas por segundo 1.72M rows/s 6.12M rows/s 34.7M rows/s 19.7M rows/s
Taxa de transferência 292MB/s 1.85GB/s 2.93GB/s 14.6MB/s
Tamanho dos dados varridos 61.4 GB 112 GB 31.3 GB 274 MB
25. Presto - Estimativa de custo mensal
Serviço AWS $/hora Horas/mês Custo/mês
1 EMR EC2 m4.xlarge full time (MASTER) $0,30 720 $218,87
15 EMR EC2 m4.xlarge full time (CORE + TASK) $0,30 10800 $3.283,05
Extra S3 Storage (ORC) $230,52
1 RDS PostgreSQL db.t2.micro para os metadados $0,019 720 $14,33
Retorno de dados S3/IA $262,15
$4.008,92
Serviço AWS $/hora Horas/mês Custo/mês
1 EMR EC2 m4.xlarge full time (MASTER) $0,30 720 $218,87
5 EMR EC2 m4.xlarge full time (CORE + TASK) $0,30 3600 $1.094,35
10 EMR EC2 m3.xlarge SPOT (TASK) $0,06 7200 $467,32
Extra S3 Storage (ORC) $230,52
1 RDS PostgreSQL db.t2.micro para os metadados $0,019 720 $14,33
Retorno de dados S3/IA $262,15
$296,97 + $2.287,54
-$1.721,38
Storage
26. Bigquery
SQL as a Service
Suporte a operações batch ou stream
Suporte ANSI SQL
Permite o mapeamento de arquivos no GCS
28. BigQuery - Estimativa de custo mensal
Storage BQ Processamento
$243,49
$674,06
Período / GCS
CSV Gzip
(TB) Usuários
Consultas
por mês
TBs
processados
Custo
Bigquery
3 meses (Regional) 1.1 10 150 7.10 $35,50
9 meses (Nearline) 3.4 3 2 17.8 $50,60
5 anos (Coldline) 18.2 3 0,2 8.11 $47,50
$133,60$296,97
Storage S3
29. Amazon Athena
Serviço de SQL sobre dados armazenados S3
“Presto as a Service”
Sistema de cobrança semelhante ao Google Bigquery
Uso de expressões regulares para parser de logs
33. Athena - Estimativa de custo mensal
Período / S3
CSV Gzip
(TB) Usuários
Consultas
por mês
TBs
processados
Custo
Athena
Custo
leitura S3
12 meses (Standard) 4.5 13 152 24.9 $86.10
5 anos (I/A) 18.2 3 0,2 8.11 $47,50 $83,05
$133,60 $83,05
$216,65
$296,97
Storage S3 Processamento
$513,62
34. Tabelas externas no Redshift
Utiliza o metadado do Athena
Permite cruzar dados do S3 com tabelas do Redshift
Utiliza o processamento do cluster Redshift
Redshift Spectrum
SPECTRUM
35. CREATE EXTERNAL SCHEMA IF NOT EXISTS messages
FROM DATA CATALOG DATABASE 'messages'
iam_role 'arn:aws:iam::2222222222:role/movile-redshift-athena'
CREATE EXTERNAL DATABASE IF NOT EXISTS;
CREATE EXTERNAL TABLE messages.sent_messages(
id bigint
,sequence varchar
,msisdn bigint
...
) ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
STORED AS TEXTFILE LOCATION 's3://movile-data-lake/mobile-
content/redshift/messages/sent_messages/csv;
Redshift Spectrum
37. Data Lake - Próximos passos
Utilizar ferramentas open source para gerenciar metadados
AWS Glue: https://aws.amazon.com/glue
Kylo: https://kylo.io/
Apache Atlas: http://atlas.apache.org/
Metacat: https://github.com/Netflix/metacat
Facilitar a análise de dados mantendo a governança
Dremio: https://www.dremio.com/
40. Pense nisso...
Utilize a ferramenta certa para cada situação
Invista em governança e metadados
Comece a entregar valor desde o início
41. Pense nisso...
Utilize a ferramenta certa para cada situação
Invista em governança e metadados
Comece a entregar valor desde o início
As pessoas não vão mais precisar de você
para encontrar e entender os dados
Boa tarde pessoal...antes de mais nada eu gostaria de saber de vocês...Levantem a mão por favor; Quem daqui conhece pelo menos 1 ferramenta ou serviço dentre esses ai? Obrigado podem abaixar a mão.
Então eu gostaria de dizer para você que já conhece pelo menos uma delas, você terá a oportunidade de comparar com as demais e aprender com os nossos erros e acertos. Mas se você não conhece nenhuma delas, ou Bigdata ainda é um termo que te assusta e não é prioridade nesse momento, não tem problema, quem sabe uma dessas ferramentas, mesmo que fora do contexto de Data Lakes, possa fazer a diferença para a sua empresa?
Eu sou Matheus Espanhol, sou líder técnico da área de Data Engineering na Movile. Lá na Movile, nos últimos 2 anos, a forma com que estamos explorando nossos dados está mudando bastante. Isso aconteceu devido ao surgimento e a consolidação de ferramentas do universo de Big data, em especial alguns serviços disponibilizados por Google e AWS.
Então eu vou contar para vocês essa história real, de como surgiu o nosso Data Lake.
Data Lake é algo muito conceitual. Não é uma tecnologia.
James Dixon em 2010
Data Mart é a água engarrafada (uma garrafa d'água
Data Warehouse é uma caixa de garrafas d'água
Sistemas, planilhas, dispositivos são as fontes d'água
A água de todas as fontes correm para o lago
Nesse lago a água pode ser encontrada em seu formato natural
Podem ser coletadas amostras dessa água para serem analisadas por cientistas
E dai podem nascer novos produtos a partir da limpeza e enriquecimento dessa água
http://www.marklogic.com/blog/data-lakes-data-hubs-federation-one-best/
http://blogs.teradata.com/international/the-data-lake-de-mystified/
Dsds
In June 2015, David Needle characterized "so-called data lakes" as "one of the more controversial ways to manage big data".[14] PricewaterhouseCoopers were also careful to note in their research that not all data lake initiatives are successful. They quote Sean Martin, CTO of Cambridge Semantics,
Dsds
In June 2015, David Needle characterized "so-called data lakes" as "one of the more controversial ways to manage big data".[14] PricewaterhouseCoopers were also careful to note in their research that not all data lake initiatives are successful. They quote Sean Martin, CTO of Cambridge Semantics,
Dsds
In June 2015, David Needle characterized "so-called data lakes" as "one of the more controversial ways to manage big data".[14] PricewaterhouseCoopers were also careful to note in their research that not all data lake initiatives are successful. They quote Sean Martin, CTO of Cambridge Semantics,
Dsds
In June 2015, David Needle characterized "so-called data lakes" as "one of the more controversial ways to manage big data".[14] PricewaterhouseCoopers were also careful to note in their research that not all data lake initiatives are successful. They quote Sean Martin, CTO of Cambridge Semantics,
Dsds
In June 2015, David Needle characterized "so-called data lakes" as "one of the more controversial ways to manage big data".[14] PricewaterhouseCoopers were also careful to note in their research that not all data lake initiatives are successful. They quote Sean Martin, CTO of Cambridge Semantics,
Dsds
In June 2015, David Needle characterized "so-called data lakes" as "one of the more controversial ways to manage big data".[14] PricewaterhouseCoopers were also careful to note in their research that not all data lake initiatives are successful. They quote Sean Martin, CTO of Cambridge Semantics,
Dsds
In June 2015, David Needle characterized "so-called data lakes" as "one of the more controversial ways to manage big data".[14] PricewaterhouseCoopers were also careful to note in their research that not all data lake initiatives are successful. They quote Sean Martin, CTO of Cambridge Semantics,
Redshift: Replicação de tabelas relevantes para análise
Seleção de colunas que fazem sentido
No dia 10 de cada mês:
Movimentação dos dados do mês anterior para o S3
Disponibilização através do Spectrum
Bigquery
Dados replicados em D-1
Athena
Mapeamento de dados históricos de aplicações
Alternativa ao Redshift Spectrum
Spectrum
Mapeamento de dados históricos complementares ao Redshift
Backup “vivo” de dados
Nesse momento já tínhamos na AWS:
Backups no S3
Uso intenso do Redshift como Data Warehouse
AWS EMR se mostrou bem atrativo para ler os dados do S3
Na teoria o Presto permite a abordagem como Federated Databases.
,
Será que não conseguiremos unir o útil ao agradável?
Não somente ter uma serviço que acessa diretamente o Data Lake,
Podemos usar o próprio Presto para substituir o nosso Redshiift
Segundo papers, várias empresas estão fazendo isso (Netflix, LInkedin…)
A grama do vizinho sempre é mais verde
Não existe almoço de graça
Será que não conseguiremos unir o útil ao agradável?
Não somente ter uma serviço que acessa diretamente o Data Lake,
Podemos usar o próprio Presto para substituir o nosso Redshiift
Segundo papers, várias empresas estão fazendo isso (Netflix, LInkedin…)
A grama do vizinho sempre é mais verde
Não existe almoço de graça
Será que não conseguiremos unir o útil ao agradável?
Não somente ter uma serviço que acessa diretamente o Data Lake,
Podemos usar o próprio Presto para substituir o nosso Redshiift
Segundo papers, várias empresas estão fazendo isso (Netflix, LInkedin…)
A grama do vizinho sempre é mais verde
Não existe almoço de graça
Começamos a testar o Presto com EMR, e percebemos o potencial que aquela solução teria
Observando alguns cases como Facebook, Netflix, Airbnb e Dropbox. Precisávamos entender qual o tamanho do cluster e entender os custos.
Por que não usamos ele no lugar do Redshift?
Esse é um dilema para várias empresas hoje. Aumentar o DW ou modernizar de vez toda arquitetura de análise de dados?
Começamos a fazer testes com nossas principais tabelas para entender os gastos que teríamos com o Presto
Nos deparamos com uma série de tradeoffs, porque a aquela frase vale muito quando se trata de dados
Não existe almoço de graça!
Começamos a testar o Presto com EMR, e percebemos o potencial que aquela solução teria
Observando alguns cases como Facebook, Netflix, Airbnb e Dropbox. Precisávamos entender qual o tamanho do cluster e entender os custos.
Por que não usamos ele no lugar do Redshift?
Esse é um dilema para várias empresas hoje. Aumentar o DW ou modernizar de vez toda arquitetura de análise de dados?
Começamos a fazer testes com nossas principais tabelas para entender os gastos que teríamos com o Presto
Nos deparamos com uma série de tradeoffs, porque a aquela frase vale muito quando se trata de dados
Não existe almoço de graça!
Uma consulta no arquivo CSV do S3, requer que esse arquivo seja baixado para o cluster Presto.
Como nosso usuário final não aceitaria muita queda de performance no analítico. passamos a utilizar a performance do Redshift como referência.
Como os bancos de dados com armazenamento colunar e compactação otimizam consultas analíticas, A mesma regra se aplica para os formatos de arquivo Parquet, ORC e libs de compactação Gzip, Snappy, LZ, suportados pelo Presto
Nossos teste concluíram que para ficarmos com o tempo se aproximar ao tempo do Redshift precisaríamos de pelo menos 15 nodes de Presto
Transformar arquivos em outros formatos requer mais armazenamento e mais tempo de processamento (Exemplo: transformar um arquivo de CSV para Parquet com um job Spark)
Foi ai que surgiu o Bigquery
Guardamos no Data Lake alguns arquivos de metadados
Como vou usar isso ou vender internamente esse conceito, se meus cientistas de dados não conseguem explorar esses dados
Não espere o Data Lake ficar do jeito que você imagina ou do jeito que você leu em algum artigo ou livro.
Quebre o grande problema em problemas pequenos. Fica mais fácil de escolher a tecnologia correta para solucionar.
Invista em mecanismos para não perder o controle dos dados e dos metadados que estão sendo guardados no Data Lake.
Criar o datalake é muito fácil, o grande desafio é aproveitar as oportunidades que ele proporciona
Faça algo em que as pessoas não precisem de você para analisar os dados
Se tem alguma limpeza ou enriquecimento de dados a ser feita, faça no momento da ingestão dos dados
Data Lake não é uma área de staging para o Data Warehouse
Não espere o Data Lake ficar do jeito que você imagina ou do jeito que você leu em algum artigo ou livro.
Quebre o grande problema em problemas pequenos. Fica mais fácil de escolher a tecnologia correta para solucionar.
Invista em mecanismos para não perder o controle dos dados e dos metadados que estão sendo guardados no Data Lake.
Criar o datalake é muito fácil, o grande desafio é aproveitar as oportunidades que ele proporciona
Faça algo em que as pessoas não precisem de você para analisar os dados
Se tem alguma limpeza ou enriquecimento de dados a ser feita, faça no momento da ingestão dos dados
Data Lake não é uma área de staging para o Data Warehouse
Não espere o Data Lake ficar do jeito que você imagina ou do jeito que você leu em algum artigo ou livro.
Quebre o grande problema em problemas pequenos. Fica mais fácil de escolher a tecnologia correta para solucionar.
Invista em mecanismos para não perder o controle dos dados e dos metadados que estão sendo guardados no Data Lake.
Criar o datalake é muito fácil, o grande desafio é aproveitar as oportunidades que ele proporciona
Faça algo em que as pessoas não precisem de você para analisar os dados
Se tem alguma limpeza ou enriquecimento de dados a ser feita, faça no momento da ingestão dos dados
Data Lake não é uma área de staging para o Data Warehouse
Não espere o Data Lake ficar do jeito que você imagina ou do jeito que você leu em algum artigo ou livro.
Quebre o grande problema em problemas pequenos. Fica mais fácil de escolher a tecnologia correta para solucionar.
Invista em mecanismos para não perder o controle dos dados e dos metadados que estão sendo guardados no Data Lake.
Criar o datalake é muito fácil, o grande desafio é aproveitar as oportunidades que ele proporciona
Faça algo em que as pessoas não precisem de você para analisar os dados
Se tem alguma limpeza ou enriquecimento de dados a ser feita, faça no momento da ingestão dos dados
Data Lake não é uma área de staging para o Data Warehouse