Iniciando com Amazon DynamoDB

564 views 41 slides Jul 04, 2017
Slide 1
Slide 1 of 41
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41

About This Presentation

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...


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

100% Gerenciado Rápido , desempenho consistênte Altamente escalavel Flexivel Aplicação baseada em eventos Seguro DynamoDB Benefícios

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