O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Construindo um Data Lake na AWS

2.141 visualizações

Publicada em

A AWS fornece diversos serviços os quais você pode construir o seu data lake. Com base nessa diversidade de serviço, será apresentado, conceitos, melhores práticas e formas de utilização.

Publicada em: Tecnologia
  • Login to see the comments

Construindo um Data Lake na AWS

  1. 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Ricardo Geh, Enterprise Solutions Architect Junho 2016 Criando seu Data Lake na AWS
  2. 2. 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
  3. 3. STORAGE COMPUTE
  4. 4. Mas nossos clientes tem requisitos adicionais
  5. 5. O surgimento de “Big Data” Enterprise data warehouse Amazon EMR Amazon S3
  6. 6. STORAGE COMPUTE COMPUTE COMPUTE COMPUTE COMPUTE COMPUTE COMPUTE COMPUTECOMPUTE COMPUTE
  7. 7. 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
  8. 8. 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
  9. 9. 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?
  10. 10. Mergulhando no Data Lake ≠ Enterprise data warehouseEMR S3
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. “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]
  17. 17. O Desafio Alta disponibilidade Altos volumes de informação Escalabilidade Flexibilidade para experimentar INSERIR LOGO
  18. 18. A Missão INSERIR LOGO
  19. 19. 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
  20. 20. 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
  21. 21. Storage Lifecycle S3 – Standard S3 – Infrequent Access Amazon Glacier
  22. 22. 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
  23. 23. 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)
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. Data Sources AWSEndpoint Data Sources Data Sources Data Sources S3 App.1 [Archive/Ing estion] App.2 [Sliding Window Analysis] App.3 [Data Loading] App.4 [Event Processing Systems] DynamoDB Amazon Redshift Data Sources Availability Zone Shard 1 Shard 2 Shard N Availabilit y Zone Availabilit y Zone Arquitetura do Amazon Kinesis
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. http://amzn.to/1LSSbFp
  35. 35. Amazon DynamoDB Provisioned throughput NoSQL database Fast, predictable, configurable performance Fully distributed, fault tolerant HA architecture Integration with Amazon EMR & Hive Amazon RDS Amazon DynamoD B Amazon Redshift Amazon ElastiCache Managed NoSQL Compute Storage AWS Global Infrastructure Database App Services Deployment & Administration Networking Analytics
  36. 36. AWS Lambda Fully-managed event processor Node.js or Java, integrated AWS SDK Natively compile & install any Node.js modules Specify runtime RAM & timeout Automatically scaled to support event volume Events from Amazon S3, Amazon SNS, Amazon DynamoDB, Amazon Kinesis, & AWS Lambda Integrated CloudWatch logging Compute Storage AWS Global Infrastructure Database App Services Deployment & Administration Networking Analytics Serverless Compute
  37. 37. 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
  38. 38. 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
  39. 39. 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
  40. 40. Catalogue & Search Architecture
  41. 41. ENTITLEMENTS Criptografia Autenticação Autorização Chargeback Quotas Mascaramento de dado Restrições regionais Storage & Streams Catalogue & Search Entitlements API & UI
  42. 42. Data Lake != Acesso Aberto
  43. 43. 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
  44. 44. 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
  45. 45. 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}/*"] } ] }
  46. 46. 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
  47. 47. Definição extendida de segurança de usuário
  48. 48. Entitlements Engine: Amazon STS Token Vending Machine http://amzn.to/1FMPrTF
  49. 49. 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
  50. 50. 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 …
  51. 51. 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
  52. 52. 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
  53. 53. 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?
  54. 54. AMAZON API GATEWAY
  55. 55. 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
  56. 56. 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
  57. 57. 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
  58. 58. API & UI Architecture API Gateway UI - Elastic Beanstalk AWS Lambda Metadata IndexUsers IAM TVM - Elastic Beanstalk
  59. 59. Colocando tudo junto…
  60. 60. 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
  61. 61. 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

×