O documento descreve como criar um data lake na AWS para armazenar e analisar dados de forma flexível e de baixo custo. Os principais componentes discutidos incluem armazenamento em larga escala na AWS S3, processamento de dados em streaming com Kinesis, catálogo e busca de metadados com DynamoDB e Lambda, e sistema de permissões com IAM."
3. Benefícios de um Enterprise Data Warehouse
• Auto documentação do schema
• Tipos de dados validados
• Modelo comum e unificado para modelo segurança
• Ferramentas simples de acesso e robustez do
ecossistema
• Modelo transacional
8. Benefícios da Separação entre Compute &
Storage
• Armazenar todo teu dado e pagar somente do
processamento quando precisar
• Atribuição de custo independente, por dataset
• Utilize a ferramenta mais adequada para cada tipo de
job, no momento mais oportuno
• Aumento da durabilidade de forma transparente
• Modelo de dados comum, sem obrigar uma forma de
acesso
9. Comparação entre um Data Lake para um Enterprise Data Warehouse
Complementar ao EDW (não substitui) Data lake pode ser fonte de dados para o EDW
Schema na leitura (sem schemas pré-definidos) Schema na escrita (schemas pré-definidos)
Estruturado/semi-estruturado/Dados não estruturados Somente dados estruturados
Rápida ingestão de dados/conteúdos novos Leva tempo para introduzir novo conteúdo
Data Science + Prediction/Advanced Analytics +
casos de uso de BI
Casos de BI somente (sem predição ou analytics
mais avançados)
Dado com nível de detalhe/granularidade Dado mais resumido/agregado no nível do detalhe
Definição de SLA’s mais flexíveis SLAs mais rígidos (agenda de produção)
Flexibilidade nas ferramentas (open source/
ferramentas para analytics avançado)
Limitação na flexibilidade de ferramentas (SQL
somente)
Enterprise DWEMR S3
10. EMR S3
O Novo Problema
Enterprise
data warehouse
≠
Qual sistema tem meu dado?
Como consigo implementar machine learning
em um DW?
Construi isso com o Hive,
podemos incluir isso no report
financeiro?
Estas fontes de dados estão
dando resultados diferentes …
Mas eu implementei os
algoritmos em Anaconda… e
agora?
12. Mergulhando no Data Lake
Enterprise
data warehouseEMR S3
Carregar dado limpo
Exportar Agregações Computadas
Ingestão de qqr dado
Limpeza dos Dados
Catalogar Dado
Análise de tendências
Machine learning
Análise estruturada
Acesso a ferramentas comuns
Agregação eficiente
Regras de negócio estruturadas
13. Componentes do Data Lake
Data Storage
• Alta Durabilidade
• Guardar dado “raw” das fontes de dados
• Suporte a qualquer tipo de dado
• Baixo custo
Streaming
• Ingestão de uma fonte de dados em
streaming
• Prover habilidade de consumir qualquer
tipo de dado como stream
• Possibilitar analytics de baixa latência
Storage & Streams
Catalogue & Search
Entitlements
API & UI
14. Componentes do Data Lake
Storage & Streams
Catalogue & Search
Entitlements
API & UI
Catalogue
• Metadata lake
• Usado para um resumo estatístico e
gerenciamento da classificação do dado
Search
• Modelo de acesso simplificado para
facilitar descoberta de dados
15. Componentes do Data Lake
Storage & Streams
Catalogue & Search
Entitlements
API & UI
Entitlements system
• Criptografia
• Autenticação
• Autorização
• Chargeback
• Quotas
• Mascaramento de dado
• Restrições regionais
16. Componentes do Data Lake
Storage & Streams
Catalogue & Search
Entitlements
API & UI
API & User Interface (UI)
• Expor o data lake para clientes
• Programaticamente consultar o catálogo
• Expor API de busca
• Garantir que as permissões sejam
respeitadas
17. “A AWS permite que nosso time se concentre no
core do problema que estamos resolvendo”
O QEdu é uma empresa de
tecnologia investida pela Fundação
Lemann que tem o propósito de
transformar a educação pública no
Brasil por meio de tecnologia,
dados e análises
Atualmente servimos nossos
clientes por meio de uma
plataforma web para visualização
de dados
INSERIR LOGO
“Com AWS sabemos que
podemos sonhar
grande e que teremos
todo o apoio para escalar
nosso sonho de garantir o
aprendizado
adequado para todos
os alunos do Brasil”
[César Wedemann, CEO]
20. STORAGE
Alta Durabilidade
Guardar dado “raw” das fontes de dados
Suporte a qualquer tipo de dado
Baixo custo
Storage & Streams
Catalogue & Search
Entitlements
API & UI
21. Amazon Simple Storage Service
Highly scalable object storage for the Internet
1 byte to 5 TB in size
Designed for 99.999999999% durability, 99.99% availability
Regional service, no single points of failure
Server side encryption
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Analytics
23. Formato de Armazenamento de Dados
• Nem todo formato de dados são criados igualmente
• Não estruturado vs. semi-estruturado vs. estruturado
• Armazenar uma cópia do dado original de entrada
• Padronização do dado como um workflow após ingestão
• Utilizar um format que suporte teu dado, ao invés de
forçar teu dado em um formato
• Considerar mudanças no teu dado no decorrer do tempo
• Escolher um padrão de compressão comum para teus
dados
24. Considerar Diferentes Tipos de Dado
Não-Estruturado
• Guardar formatos nativos(logs, arquivos de dump, etc)
• Comprimir com um codec de streaming (LZO, Snappy)
Semi-estruturado- JSON, XML files, etc.
• Considerarar evolução e habilidade da estrutura/schema de dados (Avro)
• Armazenar a estrutura do dado como um atributo do arquivo (metadata/tag)
Estruturado
• Muitos dados estão em CSV!
• Armazenamento Colunar (Orc, Parquet)
25. Onde armazenar o dado
• O Amazon S3 storage utiliza um keyspace flat
• Separação do storage por unidade de negócios, aplicação, tipo e
tempo
• Particionamento de dados natural é bem útil
• Caminhos são auto-documentados e intuitivos
• Mudança de prefixos e estrutura no futuro pode ser caro e difícil
26. Metadata
Services
CRUD API
Query API
Analytics API
Systems of
Reference
Return
URLs
URLs as deeplinks to
applications, file
exchanges via S3
(RESTful file services)
or manifests for Big
Data Analytics / HPC.
Camada de Integração
System to system via Amazon SNS/Amazon SQS
System to user via mobile push
Amazon Simple Workflow for high level system integration / orchestration
http://en.wikipedia.org/wiki/Resource-oriented_architecture
s3://${system}/${application}/${YYY-MM-DD}/${resource}/${resourceID}#appliedSecurity/${entitlementGroupApplied}
Arquitetura Orientada a Recurso
27. STREAMING
Ingestão de uma fonte de dados em
streaming
Prover habilidade de consumir
qualquer tipo de dado como stream
Possibilitar analytics de baixa
latência
Storage & Streams
Catalogue & Search
Entitlements
API & UI
28. Por que Streaming é relevante?
• Latência entre evento e ação
• Maioria dos sistemas de BI possuem latência entre
evento e ação de 1 hora
• Streaming analytics espera que este tempo seja < 2
segundos
• Orientação a Stream simplifica a arquitetura, mas pode
aumentar complexidade operacional
• Aumento de complexidade precisa ser justificada por
valor no negócio da redução de latência
29. Amazon Kinesis
Managed service for real time big data processing
Create streams to produce & consume data
Elastically add and remove shards for performance
Use Amazon Kinesis Worker Library to process data
Integration with S3, Amazon Redshift, and DynamoDB
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Analytics
31. Integração do Armazenamento em Streaming
Object store
Amazon S3
Streaming store
Amazon
Kinesis
Analytics applications
Read & write file dataRead & write to streams
Archive
stream
Replay
history
32. CATALOGUE & SEARCH
Metadata lake
Usado para um resumo estatístico e
gerenciamento da classificação do dado
Modelagem simplificado para descoberta
& governance dos dados
Storage & Streams
Catalogue & Search
Entitlements
API & UI
33. Construindo um catálogo de dados
• Agregando informação sobre o armazenamento &
camada de streaming
• Serviço de storage para metadados
Ownership, data lineage
• Camada de abstração de dados
Dado de cliente = coleção de prefixos
• Habilitar a descoberta de dados
• API para usar o serviço de direitos/permissões
34. Catálogo de Dados – Índice de Metadados
• Armazenar os dados sobre teu ambiente de storage no
Amazon S3
• Tamanho total & quantidade de objetos por prefixo,
classificação de dados, agendamento de atualizações,
infromação de versão de objeto
• Eventos do Amazon S3 processados por funções Lambda
• Tabelas de metadados do DynamoDB armazenam atributos
requeridos
38. Catálogo de Dados – Busca
Ingestão e pré-processamento
Processamento de texto(normalization)
• Tokenization
• Downcasing
• Stemming
• Stopword removal
• Synonym addition
Indexação
Matching
Ranking e relevância
• TF-IDF
• Additional criteria (rating, user behavior,
freshness, etc.)
NoSQLRDBMS Files Any Source
Search Index
Processor
39. Funcionalidades e Benefícios
Facilidade para configurar e operar
• AWS Management Console, SDK, CLI
Escalável
• Auto-Scaling no tamanho do dado e tráfego
Confiável
• Recuperação automática das instâncias, multi-AZ, etc.
Alta Performance
• Baixa latência e alta performance de throughput através de
cache em memória
Serviço Gerenciado
• Não necessita de capacity planning
Riqueza de Funcionalidades
• Busca Facetada, sugestões, ranking de relevância, busca
geoespacial, suporte a múltiplos indiomas, etc.
Custo efetivo
• Paga somente do que utiliza
Amazon CloudSearch &
Amazon Elasticsearch
40. Data Catalogue – Building Search Index
• Habilitar o DynamoDB
Update Stream para o
índice de metadado de
tabela
• Uma função AWS
Lambda adicional lê o
Update Stream e extrai
o índice dos campos do
objeto do S3.
• Atualizar o domínio de
busca
44. Identity & Access Management
• Gerenciamento de usuários, grupos e roles
• Federação de Identidade com Open ID
• Credenciais Temporárias com Amazon Security Token
Service (Amazon STS)
• Armazenar policy templates
• Linguagem de policy poderosa
• Política do Amazon S3 bucket
45. IAM Policy Language
• JSON documents
• Can include variables
which extract
information from the
request context
aws:CurrentTime For date/time conditions
aws:EpochTime The date in epoch or UNIX time, for use
with date/time conditions
aws:TokenIssueTime The date/time that temporary security
credentials were issued, for use with
date/time conditions.
aws:principaltype A value that indicates whether the
principal is an account, user, federated,
or assumed role—see the explanation
that follows
aws:SecureTransport Boolean representing whether the
request was sent using SSL
aws:SourceIp The requester's IP address, for use with
IP address conditions
aws:UserAgent Information about the requester's client
application, for use with string conditions
aws:userid The unique ID for the current user
aws:username The friendly name of the current user
46. IAM Policy Language
Exemplo: Permitir que um usuário acesse uma parte
privada do data lake
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mydatalake"],
"Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}}
},
{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mydatalake/${aws:username}/*"]
}
]
}
47. Federação IAM
• IAM permite federação no
Active Directory e outros
provedores de OpenID
(Amazon, Facebook, Google)
• AWS Directory Service provê
um AD Connector que pode
automatizar a federação e
conectividade com o ADFS
IAM
Users
AWS
Directory
Service
AD Connector
Direct
Connect
Hardware
VPN
50. Criptografia de Dados
AWS CloudHSM
Dedicated Tenancy SafeNet Luna SA HSM
Device
Common Criteria EAL4+, NIST FIPS 140-2
AWS Key Management Service
Automated key rotation & auditing
Integration with other AWS services
AWS server side encryption
AWS managed key infrastructure
51. Entitlements – Acesso a Chaves de Criptografia
Customer
Master Key
Customer
Data Keys
Ciphertext
Key
Plaintext
Key
IAM Temporary
Credential
Security Token
Service
MyData
MyData
S3
S3 Object
…
Name: MyData
Key: Ciphertext Key
…
52. Secure Data Flow
IAM
Amazon S3
API Gateway
Users
Temporary
Credential
Temporary
Credential
s3://mydatalake/${YYY-MM-DD}/
${resource}/${resourceID}
Encrypted
Data
Metadata
Index -
DynamoDB
TVM - Elastic
Beanstalk
Security Token
Service
53. API & UI
Expor o data lake para clientes
Programaticamente consultar o catálogo
Expor API de busca
Garantir que as permissões sejam respeitadas
Storage & Streams
Catalogue & Search
Entitlements
API & UI
54. Data Lake API & UI
• Expor a API de Metadado, search, e o serviço de
armazenamento Amazon S3 para clientes
• Pode ser baseado em TVM/STS Temporary Access para
muitos serviços e uma API customizada para o
Metadado
• Conduzir todas operações de UI por API?
56. Amazon API Gateway
Hospeda múltiplas versões e estágios das APIs
Cria e distribui chaves de API para desenvolvedores
Utiliza AWS Sigv4 para autorização de acesso às APIs
Throttle e monitoramento de requests para proteção do
backend
Beneficia-se do AWS Lambda
57. Funcionalidades Adicionais
Cache gerenciado para armazenar requests de API
Latência reduzida e Proteção de DDoS através do AWS
Cloudfront
Geração do SDK para iOS, Android, and JavaScript
Suporte ao Swagger
Transformação de dados de Request / response e API
mocking
58. Fluxo de chamada de API
Internet
Mobile Apps
Websites
Services
API
Gateway
AWS Lambda
functions
AWS
API Gateway
cache
Endpoints on
Amazon EC2
Any other publicly
accessible endpoint
Amazon
CloudWatch
monitoring
Amazon
CloudFront
59. API & UI Architecture
API Gateway
UI - Elastic
Beanstalk
AWS Lambda Metadata IndexUsers
IAM
TVM - Elastic
Beanstalk
61. Um data lake é...
• A fundação de uma camada de armazenamento altamente
durável de dados e streaming para qualquer tipo de dado
• Um índice do metadado e workflow que ajudam a categorizar
e criar uma governança dos dados armazenados no data lake
• Índice de busca e workflow que permitem descoberta de
dados
• Um conjunto robusto de controles de segurança –
governança por tecnologia e não por política
• Uma API e interface de usuário que expõe estes recursos
internamente e para usuários externos
62. Storage & Streams
Amazon
Kinesis
Amazon S3 Amazon Glacier
Entitlements
IAM
Encrypted
Data
Security Token
Service
Data Catalogue & Search
AWS Lambda
Search
Index
Metadata
Index
API & UI
API GatewayUsers UI - Elastic
Beanstalk
TVM - Elastic
Beanstalk
KMS