Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Data Lake além da buzzword
Matheus Espanhol São Paulo, 9 de Maio de 2018
Data LakeData Warehouse
HDFS+ Atlas+ Ranger+ Hive+ Hbase+ YARN- Custo operacional* Kylo? kylo.io
The road to Data Lake
Appliance
- ROI?
- Muitas partições- Muitos índices- Upgrade de Storage- Upgrade de CPU e Memória
SGBDsRelacionais
Redshift
- Storage não escala separadamente
Cloud Storage
Amazon S3
Durabilidade de 99.999999999%
Disponibilidade de 99.99%
$0.023/GB
$0.0125/GB
$0.004/GB
+1.5 bilhão/mês
eventos de aplicativos
+750milhões/mês
mensagens
~4.5 bilhões/mês
tentativas de tarifação
50 TBData Lake
Resolva problemas que existem
Presto
GargaloDownload do arquivo CSV do S3
SoluçãoMudar formato de arquivo (Parquet, ORC)
Mudar compactação (Gzip, Snappy, LZ)
Aumentar número de worker nodes
Bigquery
SQL as a Service
Escalabilidade transparente
Suporte a operações batch ou stream
Permite o mapeamento de arquivos no cloud storage
Alta performance
Após 90 dias sem atualização dos dados:
Redução de 50% no custo de armazenamento
Aproxime-se do seu cliente interno
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
CREATE EXTERNAL TABLE server_logs.transaction_log ( `log_type` string, `log_date` timestamp, `java_class` string, ...)PARTITIONED BY (year int, month int, day int, server string) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'WITH SERDEPROPERTIES ( 'serialization.format' = '1', 'serialization.null.format' = 'null', 'input.regex' = '^\\\x1b\\[39m\\[([^ ]*)\\]\\\x1b\\[0\\;39m\\s+\\\x1b\\[35m\\[([^,]*),([^ ]*)\\]\\\x1b\\[0\\;39m\\s+\\\x1b\\[33m\\[([^ ]*)\\]\\\x1b\\[0\\;39m\\s+\\\x1b\\[35m\\[([^ ]*)\\]\\\x1b\\[0\\;39m\\s+\\|\\s+TransactionLog\\s+\\[\\s+id\\=([^ ]*)\\;.*?\\s+applicationId\\=([^
...) LOCATION 's3://movile-data-lake/mobile-content/server_logs/transaction_log/'
Amazon Athena
ALTER TABLE server_logs.transaction_log ADD PARTITION (year = 2017, month = 01, day = 04, server = 'server1') LOCATION ‘s3://movile-data-lake/mobile-content/server_logs/transaction_log/2017/01/04/server1/'
Expectativa
Realidade
Camadas do Data Lake
TRANSIENTE
RAW DATA
DADOS REFINADOS
PRODUÇÃO
DATA LAKE
SANDBOX
99% dos usuários não se interessam por transformação de dados
Tabelas externas no Redshift
Utilizava o metadado do Athena
Permite cruzar dados do S3 com tabelas do Redshift
Utiliza o processamento do cluster Redshift
Redshift Spectrum
SPECTRUM
CREATE EXTERNAL SCHEMA IF NOT EXISTS messagesFROM DATA CATALOG DATABASE 'messages'iam_role 'arn:aws:iam::2222222222:role/movile-redshift-athena'CREATE EXTERNAL DATABASE IF NOT EXISTS;
Sem metadados = Data Swamp
Automatize o gerenciamento de metadados
AWS Glue - Catálogo de dados
Catálogo de dados
Crawlers para criar e atualizar metadados
Controle de versão
https://movile.blog/parte-1-data-lake-na-pratica-gerenciando-os-metadados-com-aws-glue/
AWS Glue - Jobs Spark
Serverless ETL
Geração de jobs Spark
Suporte a linguagens Python e Scala
Agendamento de jobs
Não se esqueça...
Autenticação
Autorização
● Organização
Auditoria
Dados
● Criptografia
● Mascaramento
● Privacidade
Lições aprendidas
Agilidade requer foco em um problema de cada vez
Busque feedback constante do usuário final
A flexibilidade do Data Lake tem preço
Mapeie os diferentes perfis de usuário
Desenvolva rotinas inteligentes de ingestão e transformação de dados
Revise sempre os processos de governança de dados
Aproveite as oportunidades que o Data Lake proporciona!
Contato
twitter.com/matheusespanhol
linkedin.com/in/matheusespanhol
slideshare.net/matheus.espanhol