AWS Dynamo DB Adriano Bonacin Apresentao Pessoal Oracle
AWS Dynamo. DB Adriano Bonacin
Apresentação Pessoal • Oracle (OCP DBA e PL/SQL) • AWS (Assoc Dev/SA e Spec Bigdata) • Cassandra, Mongo. DB, My. SQL • Bigdata Cloudera
Apresentação do Pessoal • DBA? Dev? • Dynamo. DB? • Outros No. Sqls? • Outros RDBMS? • AWS? • Outras Clouds?
Agenda • No. SQL Overview • Dynamo. DB Overview • Tabelas e Itens • Consistência • Capacidade Leitura e Escrita • Scan x Query • Índices e Partições
No. SQL https: //db-engines. com yadax. com. br
No. SQL Key Value • Key: identificador • Number • String • Imagem* • Value: Conteúdo • Number • String • Documento (json, . . . ) • Coleções • Imagens KEY VALUE 1 “https: //yadax. com. br/imgs/foto. jpg” 2 3 4 5 123 {“id”: “abonacin”, “idade”: 35, . . . } [1, 23, 9, 1]
No. SQL Key Value • Utilização: • User profile • Session Info • Carrinho compra • Detalhes produtos • IP x MAC Info • Cache KEY VALUE 187. 35. 33. 178 01: 22: 31: 0 f: aa: 87 201. 12. 198. 77 56: ba: 18: ff: 81: 38 54. 87. 111. 15 a 4: b 3: 65: 27: e 2: f 1
No. SQL Document • Armazenado no formato JSON, XML, YAML, . . . • É possível* buscar pelos atributos • É possível encadear documento dentro de documento (join) • Schemaless – Collections/Tables
No. SQL Grafos • Armazenar elementos/relações • Nós/Vértices: Elementos • Arestas: Relacionamento • Atributos: vértices e arestas
No. SQL Colunares • Armazenamento colunar • Atributos • Distribuição pelo cluster • Partition Key • Ordem: Clustering/Sort. Keys • VLDB
CAP
AWS – Dynamo. DB
Região x AZ • Região: área geográfica • Duas ou mais AZs • AZ: Availability Zone • Um ou mais datacenters • Infraestrutura isolada
Global Infrastructure
Dynamo. DB – DB Engines
AWS Dynamo. DB • No. SQL • Documento • Key-Value • Serverless – Não precisa se preocupar com Instances • Baixa Latência • 99, 9% < 500 ms • Partition Key • Itens pequenos < 1 k. B (max 400 k. B)
AWS Dynamo. DB • Always writeable • Consistência ajustável, fraca por default • Alta disponibilidade • Nodes Trusted – AWS Managed • Schemaless, não ACID • Por região
AWS Dynamo. DB - Console
AWS Dynamo. DB - API • • • • Batch. Get. Item Batch. Write. Item Create. Backup Create. Global. Table Create. Table Delete. Backup Delete. Item Delete. Table Describe. Backup Describe. Continuous. Backups Describe. Endpoints Describe. Global. Table. Settings • • • • Describe. Limits Describe. Table Describe. Time. To. Live Get. Item List. Backups List. Global. Tables List. Tags. Of. Resource Put. Item Query Restore. Table. From. Backup Restore. Table. To. Point. In. Time Scan • • • Tag. Resource Transact. Get. Items Transact. Write. Items Untag. Resource Update. Continuous. Backups Update. Global. Table. Settings Update. Item Update. Table Update. Time. To. Live
Criar Tabela • Inscritos DBA BR 4 • Não existe “database”, utilize prefixo nas tabelas • Cada inscrito tem: • id • nome • email
Criar Tabela
Criar Tabela
Criar Tabela
Criar Tabela
Tipos de Consistência Leitura ● ● ● Escrita com sucesso (HTTP 200 response ) leva um tempo para replicar para todos os destinos. Eventual (default) ○ Retorna o primeiro dado encontrado (de várias réplicas) Forte ○ Sempre retorna o dados mais recente, é necessário informar que deseja Consistent. Read = True
Capacity Unit ● ● 1 RCU - Read itens de 4 k. B/segundo: ○ 1 leitura com consistência forte ○ 2 leituras com consistência eventual 1 WCU - Write de um item de 1 k. B/segundo Para ler 120 k. B distribuídos uniformemente por min, com consistência eventual, quantos UC precisa?
Criar Tabela
Tabela
Alarmes
Criar item • A partition key sempre é obrigatória. • We are sorry an error occurred while processing your request, please try again later or contact support • Toda chave precisa ter valor. • One or more parameter values were invalid: An Attribute. Value may not contain an empty string
Item • A console mostra os itens criados (SCAN)
Editar item • Add número do fone? • Basta editar o item. • Schemaless – Flexibilidade
Editar item
Schemaless • É preciso ter cuidado com os nomes de atributos. • O mesmo atributo pode ter datatypes diferentes.
Datatypes
SCAN • Varre toda a tabela • Opção default na console • Qualquer atributo
SCAN • Datatype correto • Scan: de 1 em 1 MB, sequencialmente e em uma partição • Para itens grandes, a App pode solicitar paralelamente.
Query
TTL • Habilitado por Tabela • Configurado por item • Não tem custo extra • Background • Pode levar até 48 h para exclusão, as Apps precisam lidar com isso
Primary Key x Sort Key ● As tabelas podem ter apenas: ○ ○ Uma partition key Uma sort key
Local Secondary Index • Local: compartilha RCU e WCU da tabela • Exatamente a mesma partition key • Outra sort key • Criação junto com a tabela
Global Secondary Index • Outra partition key • Outra sort key • Throughput independente • Criação a qualquer momento
Criar item • Alguns campos passam a ser obrigatórios, pois compõem a chave
Query Item • Agora a busca pode ocorrer por novas combinações
Query Item
Query Driven • Dynamo. DB é query driven? • Primeiro as queries, depois as tabelas.
Partições
Partições • Novas partições são criadas automaticamente com: • 10 GB • > 3000 RCU • > 1000 WCU • Não diminui o # partições
Auto. Scaling • A AWS cuida do dimensionamento para você • Mínimo • Máximo • % de Uso • IAM Role
Dynamo. DB Local
Dúvidas
Contatos Adriano Bonacin https: //yadax. com. br
- Slides: 54