Esta sessão é uma introdução a (Not-only relation Databases) NoSQL databases e um comparativo com relacional (SQL) databases. Iremos explicar os fundamentos do Amazon DynamoDB, bando de dados NoSQL como serviço da Amazon Web Services. Aprenda os funamentos do DynamoDB veja o Console do DynamoDB...
Esta sessão é uma introdução a (Not-only relation Databases) NoSQL databases e um comparativo com relacional (SQL) databases. Iremos explicar os fundamentos do Amazon DynamoDB, bando de dados NoSQL como serviço da Amazon Web Services. Aprenda os funamentos do DynamoDB veja o Console do DynamoDB e veja os casos de uso mais comuns e os benefícius desse poderoso banco de dados chave-valor e documento JSON de armazenamento.
https://aws.amazon.com/pt/dynamodb/
Size: 8.43 MB
Language: pt
Added: Jul 04, 2017
Slides: 41 pages
Slide Content
Thiago Paulino , Arquiteto de soluções Jun/2017 Iniciando com Amazon DynamoDB
Agenda Breve história sobre processamento de dados Relacional (SQL ) vs. non- relacional (NoSQL) Soluções NoSQL na AWS Amazon DynamoDB’s 100% Gerenciado
Volume de dados desde 2010 90% dos dados armazenados foram gerados nos 2 últimos anos 1 terabyte de dados em 2010 hoje representa o mesmo de 6.5 petabytes Correlação linear entre dados e inovação tecnológica Nenhuma razão para que essas tendências não continuem a acontecer .
Linha do tempo do banco de dados Livro de Registros Máquina de T abulação Cartões Perfurados Sistema de Arquivos RDBMS NoSQL
Curva de adoção de tecnologia
Relacional (SQL) vs. Non- relacional (NoSQL)
Banco de dados Relacional vs. Non- relacional Tradicional SQL NoSQL DB Primário Secundário Scale up DB DB DB DB DB DB Scale out
SQL ( Relacional ) Price Desc. $11.50 $8.99 Chaplin’s first … Columns Rows Primary Key Index $14.95 One of 2 major … The Partitas Product ID Type 1 2 3 Products Book Album Movie
SQL ( Relacional ) Price Desc. $11.50 $8.99 Chaplin’s first … Columns Rows Primary Key Index $14.95 One of 2 major … The Partitas Product ID Type 1 2 3 Products Book Album Movie Books Title Date Odyssey 1871 Book ID 1 Books Author Homer
SQL ( Relacional ) Price Desc. $11.50 $8.99 Chaplin’s first … Columns Rows Primary Key Index $14.95 One of 2 major … The Partitas Product ID Type 1 2 3 Products Book Album Movie Books Title Date Odyssey 1871 Book ID 1 Books Genre Director Drama, Comedy Chaplin Movie ID Title 3 The Kid Movies Author Homer
SQL ( Relacional ) Products Price Desc. $11.50 $8.99 Chaplin’s first … Columns Rows Primary Key Index $14.95 One of 2 major … The Partitas Product ID Type 1 2 3 Book Album Movie Books Albums Title Date Odyssey 1871 Book ID 1 Books Albums Title 6 Partitas Album ID Artist 2 Genre Director Drama, Comedy Chaplin Movie ID Title 3 The Kid Movies Bach Author Homer
SQL ( Relacional ) Price Desc. $11.50 $8.99 Chaplin’s first … Columns Rows Primary Key Index $14.95 One of 2 major … The Partitas Product ID Type 1 2 3 Books Albums Products Book Album Movie Title Date Odyssey 1871 Book ID 1 Books Albums Title 6 Partitas Album ID Artist 2 Genre Director Drama, Comedy Chaplin Movie ID Title 3 The Kid Movies Tracks Track Partita No. 1 Album ID Track ID 2 1 Bach Author Homer
SQL ( Relacional ) vs. NoSQL ( Non- relacional ) Product ID Type Odyssey Homer 1 Book ID 2 Album ID 6 Partitas 2 Album ID: Track ID Partita No. 1 Bach Attributes Schema is defined per item Items Partition Key Sort Key 3 Movie ID The Kid Drama, Comedy 1871 Chaplin Primary Key Products Price Desc. $11.50 $8.99 Chaplin’s first … Columns Rows Primary Key Index $14.95 One of 2 major … The Partitas Product ID Type 1 2 3 Title Date Odyssey 1871 Book ID 1 Books Albums Title 6 Partitas Album ID Artist 2 Genre Director Drama, Comedy Chaplin Movie ID Title 3 The Kid Movies Products Book Album Movie Tracks Track Partita No. 1 Album ID Track ID 2 1 Author Homer Bach NoSQL design otimiza para computação em vez de armazenamento
Por que NoSQL ? Otimizado para armazenamento Otimizado para processamento Normalizado / relacional Desnormalizado / Hierárquico Ad hoc queries Visualização instantânia Escala vertical Escala horizontal Bom para for OLTP/OLAP Bom para for OLTP em escalabilidade SQL NoSQL
NoSQL solutions using Amazon EC2 and EBS DB rodando no seu datacenter DB rodando em Amazon EC2
Amazon DynamoDB Foco no seu negócio , não na sua base de dados
Alta disponibilidae com transparência Replicação sem custo extra Recuperação de disastre caso uma região tenha falha Escale -out direcionando tráfego para as replicas de leitura de leitura Multi-AZ & Replicação entre região 1 2
Reduz o custo para deletar itens que não são mais necessários Otimização de performance ao controlar o tamanho da tabela Trigger ( Eventos ) com streamming e AWS Lambda DynamoDB Time-to-Live (TTL) ID Name Size Expiry 1234 A 100 1456702305 2222 B 240 1456702400 3423 C 150 1459207905 TTL Value ( Epoch format) TTL Attribute
Programação baseada em eventos DynamoDB Triggers Implementado com funções de AWS Lambda functions Seu código escala automáticamente Java, Node.js, Python e .NET Core DynamoDB Streams Stream dos updates da tabela Processamento assíncrono Exatamente uma vez Com ordenação 24-hr lifetime per item
Plataforma de integração DynamoDB IoT S3 Kinesis EMR Redshift Data Pipeline Mobile Hub Lambda Elasticsearch SNS CloudWatch CloudTrail
Integração com AWS Camada de cache 100% gerênciado com Elasticache Full-text search query com Elasticsearch Big Data Analytics com EMR e Redshifit Processamento em tempo real com Kinesis
Controle de acesso restritivo e controlado com AWS IAM Biblioteca de criptografia no lado do cliente Log de configurações e acesso com AWS CloudTrail Monitoramento de desempenho e alarme de eventos com AWS CloudWatch Segurança com DynamoDB
Serviço totalmente gerenciado = operações automatizadas DB hosted on-premises DB hosted on Amazon EC2
Serviço totalmente gerenciado = operações automatizadas DB hosted on premise DynamoDB
Latência consistente mesmo com requisições crescentes DESEMPENHO PREVISÍVEL!
Escritas Replicação continua em 3 AZs Leituras Strongly or eventually consistent Sem trade-off de latência Desenhado para ter 99.99% de disponibilidade Contruído para alta durabilidade Alta disponibilidade e durabilidade
Casos de uso
Amazon’s Path to DynamoDB Amazon DynamoDB Oracle Database
MLBAM (MLB Advanced Media) is a full service solutions provider, operating a powerful content delivery platform. Pela primeira vez , nós conseguimos mensurar coisas que nós nunca mensuramos antes Joe Inzerillo Executive Vice President and CTO, MLBAM ” “ MLBAM Conseguiu suportar vários jogos no mesmo dia e escalar sua capacidade para atender essa demanda . Amazon DynamoDB permite o acesso ao dado de uma maneira muito rápida . MLBAM realiza 25,000 eventos ao vivo anualmente e realiza 10 milhões de transmissões por dia. Major League Baseball Fields Big Data, Excitement with Amazon DynamoDB
Redfin is a full-service real estate company with local agents and online tools to help people buy & sell homes. Nos temos bilhões de registros no DynamoDB sendo atualizado diariamente ou até mesmo em horas ou segundos Yong Huang Director, Big Data Analytics, Redfin ” “ Redfin fornece detalhes dos classificados , das propriedades e agentes através do seu website e aplicativo de celular . Com o DynamoDB , a latência para propriedades similares melhorou de 2 segundos para 12 mile- segundos Redfin armazena e processa 5 bilhões de itens no DynamoDB Redfin está revolucionando a compra e venda de casas com Amazon DynamoDB
Duolingo escalou seu armazenamento para 31 Bilhões de Itens usando DynamoDB Duolingo is a free language learning service where users help translate the web and rate translations. Usando a AWS, podemos lidar com os picos de tráfego que aumenta até sete vezes a quantidade de tráfego normal . Severin Hacker CTO, Duolingo ” “ Duolingo armazena dado para cada usuário para gerar lições personalizadas . O banco de dados MySQL database não conseguiu acompanhar o crescimento do negócio Ao utilizar um banco de dados escalavel aumentou a capacidade de armazenamento de 100 milhões para bilhões de itens Duolingo possuí capacidade para escalar e suportar mais de 8 milhões de usuários ativos
Nexon is a leading South Korean video game developer and a pioneer in the world of interactive entertainment. By using AWS, we decreased our initial investment costs, and only pay for what we use. Chunghoon Ryu Department Manager, Nexon ” “ Nexon used Amazon DynamoDB as its primary game database for a new blockbuster mobile game, HIT HIT became the #1 Mobile Game in Korea within the first day of launch and has > 2M registered users Nexon’s HIT leverages DynamoDB to deliver steady latency of less than 10ms to deliver a fantastic mobile gaming experience for 170,000 concurrent players Nexon Scales Mobile Gaming with Amazon DynamoDB
Ad Tech Gaming Mobile IoT Web Scaling high-velocity use cases with DynamoDB
Isso parece muito bom . Como faço para começar ? Vamos criar uma tabela …
Products Product_Id
Estrutura da tabela do DynamoDB Table Items Attributes Partition key Sort key Mandatory Key-value access pattern Determines data distribution Optional Model 1:N relationships Enables rich query capabilities All items for key ==, <, >, >=, <= “begins with” “ between ” “contains” “in” sorted results counts top/bottom N values
Global secondary index (GSI) G SIs A5 (part.) A4 (sort) A1 (table key) A3 (projected) Table INCLUDE A3 A4 (part.) A5 (sort) A1 (table key) A2 (projected) A3 (projected) ALL A2 ( part. ) A1 (table key) KEYS_ONLY RCUs/WCUs provisioned separately for GSIs Online Indexing A1 (partition) A2 A3 A4 A5 Alternate partition (+sort) key Index is across all table partition keys
Como as atualizações de GSI funcionam ? Table Primary table Primary table Primary table Primary table Global secondary index Client 1. Update request 2. Asynchronous update (in progress) 2. Update response If GSIs don’t have enough write capacity, table writes will be throttled!
Local secondary index (LSI) Alternate sort key attribute Index is local to a partition key A1 (partition) A3 (sort) A2 (table key) A1 (partition) A2 (sort) A3 A4 A5 LSIs A1 (partition) A4 (sort) A2 (table key) A3 (projected) Table KEYS_ONLY INCLUDE A3 A1 (partition) A5 (sort) A2 (table key) A3 (projected) A4 (projected) ALL 10 GB max per partition key, i.e. LSIs limit the # of sort keys!
Advanced topics in DynamoDB Padrão de uso e melhores prátricas Modelagem de dado Entendendo particionamento DynamoDB escalabilidade