Database Flashcards

(75 cards)

1
Q

O que é o Amazon DynamoDB?

A

É um banco de dados NoSQL totalmente gerenciado pela AWS, altamente escalável e com baixa latência.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quais são os dois tipos de chave primária no DynamoDB?

A

1) Partition Key: chave com valor único (ex: hash). 2) Partition Key + Sort Key: chave composta onde a combinação das duas colunas forma a primary key.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Dê um exemplo de Partition Key + Sort Key.

A

Tabela de pontuação de jogo: user_id (Partition Key) + game_id (Sort Key) e score. A combinação user_id + game_id forma a chave primária.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quais são os dois modos de capacidade (throughput) do DynamoDB?

A

1) Modo Provisionado (fixo): você define RCU e WCU antecipadamente. 2) Modo On-Demand (variável): a AWS escala automaticamente sem necessidade de calcular capacidade.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que é Burst Capacity no DynamoDB?

A

É a capacidade de exceder temporariamente a capacidade provisionada de RCU/WCU, utilizando créditos acumulados de capacidade não utilizada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

O que é WCU (Write Capacity Unit)?

A

1 WCU = escrita de 1 item de até 1 KB por segundo. Para itens maiores que 1 KB, arredonda-se o tamanho para cima.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Calcule: Escrever 10 itens/s de 2KB cada. Quantos WCUs?

A

10 × (2/1) = 20 WCUs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Calcule: Escrever 6 itens/s de 4.5KB cada. Quantos WCUs?

A

6 × (5/1) = 30 WCUs. O 4.5KB é arredondado para 5KB.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

O que é Eventually Consistent Read?

A

É o modo padrão de leitura do DynamoDB. Após uma escrita, a leitura pode retornar dados obsoletos, pois leva um tempo para replicar no cluster.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

O que é Strongly Consistent Read e qual sua desvantagem?

A

É o modo que garante leitura do dado mais atualizado. A desvantagem é que consome o dobro de RCU comparado ao Eventually Consistent Read.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

O que é RCU (Read Capacity Unit)?

A

1 RCU = 1 Strongly Consistent Read/s OU 2 Eventually Consistent Reads/s, para itens de até 4 KB.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Calcule: 10 Strongly Consistent Reads/s de 4KB. Quantos RCUs?

A

10 × (4/4) = 10 RCUs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Calcule: 16 Eventually Consistent Reads/s de 12KB. Quantos RCUs?

A

(16/2) × (12/4) = 8 × 3 = 24 RCUs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Calcule: 10 Strongly Consistent Reads/s de 6KB. Quantos RCUs?

A

10 × (8/4) = 20 RCUs. O 6KB é arredondado para 8KB (próximo múltiplo de 4).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Como a capacidade é distribuída entre partições no DynamoDB?

A

WCU e RCU são divididos igualmente entre as partições. Ex: 4 partições com 20 WCU e 40 RCU → cada partição recebe 5 WCU e 10 RCU.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quais são os principais comandos de escrita do DynamoDB?

A

PutItem (inserir/substituir item), UpdateItem (atualizar atributos) e Conditional Write (escrita condicional).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Quais são os principais comandos de leitura do DynamoDB?

A

GetItem (buscar item pela chave), Query (consultar itens por partition key + filtros) e Scan (varrer toda a tabela).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Quais são os comandos de deleção do DynamoDB?

A

DeleteItem (deletar um item) e DeleteTable (deletar toda a tabela).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Quais são os comandos de operação em batch do DynamoDB?

A

BatchWriteItem (escrita em lote) e BatchGetItem (leitura em lote).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Quais são os dois tipos de índices secundários do DynamoDB?

A

LSI (Local Secondary Index) e GSI (Global Secondary Index).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Qual a principal característica do LSI?

A

O LSI compartilha a mesma Partition Key da tabela base e permite Strongly Consistent Reads.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Qual a principal característica do GSI?

A

O GSI pode ter Partition Key e Sort Key diferentes da tabela base e é mais flexível para novos padrões de acesso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

O que é o PartiQL no DynamoDB?

A

É uma linguagem compatível com SQL que permite executar consultas usando sintaxe SQL em tabelas DynamoDB.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

O que é o DAX (DynamoDB Accelerator)?

A

É um cache in-memory entre a aplicação e o DynamoDB para acelerar leituras frequentes; o TTL padrão do cache é de 5 minutos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
O que é o DynamoDB Streams?
É uma lista ordenada de alterações (create/update/delete) feitas em uma tabela, que pode acionar serviços como Lambda ou enviar dados para Kinesis.
26
O que é o TTL (Time to Live) no DynamoDB?
Recurso que define uma data/hora de expiração para registros, que são automaticamente excluídos após esse momento.
27
Qual o padrão recomendado para armazenar arquivos grandes com DynamoDB?
Armazenar os arquivos grandes no S3 e guardar no DynamoDB apenas o metadado com a localização (por exemplo, o path no S3).
28
Quais recursos de segurança e recuperação o DynamoDB oferece?
Controle de acesso com IAM, integração com VPC Endpoints e Point-in-Time Recovery (PITR) para restauração dos dados.
29
O que é o DynamoDB Local?
Versão do DynamoDB que roda localmente na máquina do desenvolvedor para desenvolvimento e testes.
30
Como migrar dados de outros bancos para o DynamoDB?
Por meio do AWS Database Migration Service (DMS), que permite migrar dados de diversas fontes para o DynamoDB.
31
No modo On-Demand do DynamoDB, preciso calcular RCU e WCU?
Não. No modo On-Demand a AWS gerencia automaticamente a capacidade. Os cálculos de RCU e WCU são necessários apenas no modo Provisionado.
32
Como funciona o particionamento de dados no DynamoDB?
Os dados são divididos em partições por uma função de hashing aplicada à Partition Key, e a capacidade de WCU/RCU é distribuída entre essas partições.
33
O que é o Amazon RDS?
"É um serviço gerenciado de banco de dados relacional da AWS que facilita configurar, operar e escalar bancos como MySQL, PostgreSQL, SQL Server e outros na nuvem, cuidando de tarefas como backup, patching e alta disponibilidade para você." [aws.amazon](https://aws.amazon.com/rds/)
34
Quando NÃO é uma boa ideia usar Amazon RDS?
"Quando você precisa processar volumes muito grandes de dados em cenários típicos de big data ou data lake, em que soluções como data warehouses ou data lakes são mais adequadas, pois bancos relacionais não escalam tão bem para esse tipo de workload." [techtarget](https://www.techtarget.com/searchaws/definition/Amazon-Relational-Database-Service-RDS)
35
O que significa o RDS ser compatível com ACID?
"Significa que as transações no banco seguem as propriedades de Atomicidade, Consistência, Isolamento e Durabilidade, garantindo integridade dos dados mesmo em cenários de concorrência e falhas, o que é importante para sistemas transacionais como aplicações financeiras e de e-commerce." [techtarget](https://www.techtarget.com/searchaws/definition/Amazon-Relational-Database-Service-RDS)
36
Para que servem locks de leitura e escrita (shared e exclusive locks) em bancos relacionais como os usados no RDS?
"Servem para controlar concorrência nas transações: locks de leitura permitem que várias sessões leiam ao mesmo tempo, enquanto locks exclusivos bloqueiam escrita/leitura conflitante, evitando que duas transações modifiquem a mesma linha ou tabela ao mesmo tempo e garantindo consistência." [techtarget](https://www.techtarget.com/searchaws/definition/Amazon-Relational-Database-Service-RDS)
37
Qual é uma boa prática de otimização de consultas no RDS usando EXPLAIN?
"Usar o comando EXPLAIN em consultas SQL para entender o plano de execução, identificar se há varredura completa de tabela (full scan) e verificar se índices existentes estão sendo usados ou se é necessário criar novos índices para melhorar a performance." [techtarget](https://www.techtarget.com/searchaws/definition/Amazon-Relational-Database-Service-RDS)
38
Qual é o objetivo do comando ANALYZE/ANALYSE TABLE em bancos suportados pelo RDS?
"Atualizar estatísticas internas sobre distribuição dos dados nas tabelas, ajudando o otimizador de consultas a escolher planos mais eficientes, o que impacta diretamente o tempo de resposta das consultas." [techtarget](https://www.techtarget.com/searchaws/definition/Amazon-Relational-Database-Service-RDS)
39
Por que devemos evitar full table scan em tabelas grandes no RDS?
"Porque uma varredura completa lê todas as linhas da tabela, consumindo muito I/O e CPU, o que aumenta a latência da consulta e pode afetar outras queries; normalmente índices bem planejados permitem filtrar os dados sem escanear tudo." [techtarget](https://www.techtarget.com/searchaws/definition/Amazon-Relational-Database-Service-RDS)
40
O que é o Amazon Aurora em relação ao RDS?
"É um mecanismo de banco de dados relacional compatível com MySQL e PostgreSQL, oferecido como parte do RDS, mas com armazenamento distribuído próprio e otimizações de performance, projetado para ser mais rápido e altamente disponível." [amazonaws](https://www.amazonaws.cn/en/rds/aurora/)
41
Quais engines o Aurora suporta?
"Aurora oferece compatibilidade com MySQL e PostgreSQL, permitindo que aplicações que usam esses bancos migrem com poucas mudanças de código ou de drivers." [aws.amazon](https://aws.amazon.com/rds/)
42
Qual a principal vantagem de performance do Aurora comparado ao MySQL/PostgreSQL tradicionais no RDS?
"O Aurora usa um armazenamento distribuído e replicado automaticamente em múltiplas AZs, com otimizações de log e I/O, o que normalmente resulta em maior throughput e menor latência em comparação com MySQL ou PostgreSQL rodando no RDS padrão." [en.wikipedia](https://en.wikipedia.org/wiki/Amazon_Aurora)
43
Qual a relação geral de custo entre Aurora e RDS tradicional?
"Em muitos cenários o Aurora tende a ser mais caro por unidade de recurso (por exemplo, instância e armazenamento), porém entrega mais performance e disponibilidade; a justificativa de custo vem do ganho de throughput e redução de tarefas operacionais, apesar de o preço de Aurora ser em geral superior ao RDS comum." [amazonaws](https://www.amazonaws.cn/en/rds/aurora/)
44
Quando faz sentido escolher Aurora em vez de RDS MySQL/PostgreSQL?
"Quando você precisa de alta performance, baixa latência e alta disponibilidade com replicação automática entre AZs e potencial para muitos leitores (read replicas), por exemplo em sistemas de alta carga de leitura/escrita como aplicações SaaS ou e-commerce global." [en.wikipedia](https://en.wikipedia.org/wiki/Amazon_Aurora)
45
O que é o Amazon DocumentDB?
"É um serviço de banco de dados de documentos gerenciado pela AWS, compatível com APIs do MongoDB, projetado para workloads que usam documentos JSON e precisam de escalabilidade, alta disponibilidade e backups automáticos sem gerenciar infraestrutura MongoDB manualmente." [aws.amazon](https://aws.amazon.com/rds/)
46
Quando usar o Amazon DocumentDB em vez de um MongoDB em EC2?
"Quando você quer um serviço gerenciado, com patching, backups, recuperação automática e alta disponibilidade prontos, reduzindo esforço operacional, e precisa de compatibilidade com drivers e ferramentas MongoDB para aplicações baseadas em documentos JSON." [aws.amazon](https://aws.amazon.com/rds/)
47
O que é o Amazon MemoryDB for Redis?
"É um banco de dados key-value em memória, totalmente gerenciado e compatível com a API do Redis, mas com foco em durabilidade de dados e alta disponibilidade, atuando como banco de dados primário, não apenas como cache." [aws.amazon](https://aws.amazon.com/rds/)
48
Quando faz sentido usar MemoryDB em vez de um cache Redis como o ElastiCache?
"Quando você precisa de latência extremamente baixa de leitura/gravação na memória, mas não pode perder dados em caso de falhas, ou seja, precisa de um banco transacional em memória com replicação e persistência forte, em vez de um cache que pode ser reconstruído." [aws.amazon](https://aws.amazon.com/rds/)
49
O que é o Amazon Keyspaces (for Apache Cassandra)?
"É um serviço gerenciado de banco de dados NoSQL compatível com Cassandra, em modelo serverless, que permite usar a linguagem CQL sem gerenciar clusters, nós, patches e replicação, com alta disponibilidade global e escalabilidade automática." [aws.amazon](https://aws.amazon.com/rds/)
50
Em que tipo de cenário o Amazon Keyspaces é indicado?
"Em workloads com alta taxa de escrita/leitura distribuída globalmente, esquema de dados em colunas largas, necessidade de baixa latência e modelo de chave-partição típico do Cassandra, como telemetria, logs de aplicações e dados de IoT em grande escala." [aws.amazon](https://aws.amazon.com/rds/)
51
O que é o Amazon Neptune?
"É um serviço de banco de dados de grafos totalmente gerenciado que suporta modelos de grafos como Property Graph e RDF, otimizado para consultas de relações complexas entre entidades, usando linguagens como Gremlin e SPARQL." [aws.amazon](https://aws.amazon.com/rds/)
52
Quando usar o Amazon Neptune em vez de um banco relacional?
"Quando a principal necessidade é navegar e consultar relações e conexões complexas, como grafos de redes sociais, recomendação, detecção de fraudes e grafos de conhecimento, onde consultas em múltiplos joins seriam complexas e lentas em um banco relacional tradicional." [aws.amazon](https://aws.amazon.com/rds/)
53
O que é o Amazon Timestream?
"É um banco de dados de séries temporais gerenciado e serverless da AWS, projetado para armazenar e analisar trilhões de eventos por dia com baixa latência, otimizando dados baseados em tempo como métricas de IoT, monitoramento de aplicações e dados de operações." [youtube](https://www.youtube.com/watch?v=IsmhOkimHyI)
54
O que é Amazon Redshift e suas principais características?
Amazon Redshift é um Data Warehouse **gerenciado completamente pela AWS** especializado em Big Data analytics. É um banco **colunar** (armazena dados por colunas, não por linhas) otimizado para **OLAP** (Online Analytical Processing). Faz **compressão automática** dos dados (economiza até 75% do espaço), oferece **alta durabilidade** (99.999999999%) e **escalabilidade** horizontal com clusters de nodes líderes e computacionais. **Quando usar**: Análises complexas em petabytes de dados estruturados.
55
O que é Redshift Spectrum e como funciona?
Redshift Spectrum permite executar **queries SQL diretamente em dados no S3** (estruturados ou não estruturados) **sem precisar carregar no cluster Redshift**. Funciona criando tabelas externas (EXTERNAL TABLES) que apontam para arquivos S3. Usa o **mesmo SQL do Redshift** e escala automaticamente com milhares de nodes Spectrum. **Vantagem vs EMR**: Sem necessidade de gerenciar clusters, paga só pelo scan. **Cenário**: Dados históricos frios no S3 com análises ad-hoc.
56
Quais são os 3 estilos de distribuição de linhas (KEY, EVEN, ALL)?
Redshift distribui linhas entre os nodes do cluster para otimizar performance:\n- **KEY**: Todas as linhas com a mesma chave vão para o **mesmo node** (ideal para JOINs frequentes na mesma chave)\n- **EVEN (Round Robin)**: **Distribuição uniforme/circular** (bom para cargas iniciais uniformes)\n- **ALL**: **Replica a linha em TODOS os nodes** (rápido para lookups, mas consome mais espaço)\n**Escolha KEY** para colunas de filtro/JOIN frequentes.
57
Como funciona o comando COPY para carregar dados?
**COPY** é o comando mais eficiente para carregar **grandes volumes de dados** do S3, EMR, DynamoDB para Redshift. Sintaxe: `COPY minha_tabela FROM 's3://meu-bucket/' CREDENTIALS 'aws_iam_role=arn:aws:...' FORMAT AS CSV;`. Suporta **paralelismo automático** dividindo arquivos grandes. **Dica**: Use **Enhanced VPC Routing** para COPY seguro via VPC, não internet pública.
58
O que faz o comando UNLOAD e quando usar?
**UNLOAD** exporta dados do Redshift para **múltiplos arquivos no S3** em paralelo: `UNLOAD ('SELECT * FROM vendas') TO 's3://meu-bucket/export/' CREDENTIALS '...';`. **Gera arquivos particionados** automaticamente. **Use para**: Backup, compartilhar dados com outros serviços AWS, ou quando precisa de dados no S3 para outros tools (Athena, EMR).
59
O que é Enhanced VPC Routing e por que usar?
**Enhanced VPC Routing** força todo tráfego entre Redshift e S3 a passar **pela VPC privada** ao invés da internet pública. **Ativa por cluster**. **Segurança**: Dados nunca saem da AWS network. **Performance**: Latência menor. **Obrigatório** para compliance (ex: PCI-DSS, HIPAA).
60
O que é Auto-copy from Amazon S3?
**Auto-copy** monitora automaticamente uma pasta S3 e **carrega novos arquivos no Redshift assim que chegam**, sem intervenção manual. Configura uma **manifesta de arquivos** que o Redshift verifica periodicamente. **Perfeito para**: Data lakes com append contínuo (logs, sensores IoT).
61
O que é Aurora zero-ETL Integration com Redshift?
**Zero-ETL** permite **envio automático e em tempo real** de dados do Aurora (OLTP) para Redshift (OLAP) **sem pipelines ETL**. Dados são replicados continuamente. **Ideal para**: Operational analytics onde precisa misturar dados transacionais com data warehouse.
62
O que é Redshift Streaming Ingestion?
**Streaming Ingestion** ingere dados **em tempo real** diretamente do **Amazon Kinesis Data Streams** ou **MSK (Managed Streaming for Kafka)** para Redshift. **Micro-batches** de 1 minuto. **Use para**: Streaming analytics, logs em tempo real, IoT.
63
O que é DBLINK no contexto Redshift?
**DBLINK** permite conectar o Redshift a **instâncias PostgreSQL** externas e executar queries federadas: `SELECT * FROM dblink('host=meu-postgres port=5432 dbname=prod', 'SELECT * FROM usuarios')`. **Use para**: Migração gradual ou queries híbridas.
64
O que é WLM (Workload Management) no Redshift?
**WLM** gerencia **filas de queries** com **prioridades e quotas**. Cada fila tem % de CPU e memória alocados. **Short Query Acceleration (SQA)** prioriza queries rápidas (<500ms). **Configuração**: Principal queue (superuser), User groups, Query queues. **Evita starvation** de queries importantes.
65
O que faz o comando VACUUM e quando executar?
**VACUUM** **reorganiza tabelas** e **recupera espaço** de linhas deletadas/updated (Redshift não faz DELETE físico). Tipos: VACUUM DELETE (só deletados), VACUUM FULL (reorganiza tudo), VACUUM SORT (reordena). **Execute após**: DELETE/UPDATE massivo ou COPY incremental.
66
Quais são os tipos de Resizing no Redshift?
1. **Elastic Resize**: ±30% nodes (rápido, minutos)\n2. **Classic Resize**: Qualquer número nodes (horas)\n3. **Snapshot/Restore**: Backup → novo cluster maior (independente)\n**RA3 nodes**: Separa compute/storage, resize só compute.
67
O que são RA3 Nodes e suas vantagens?
**RA3 (Redshift Managed Storage)** separa **compute** (nodes dc2/ra3) de **storage** (RMS). **Escala storage independentemente** até 16PB por cluster. **Auto-gerencia backups**. **Mais econômico** que DC2 para cargas variáveis.
68
O que é Redshift Serverless e modelo de cobrança?
**Serverless** elimina provisionamento manual. AWS gerencia **escala automática**. Cobra por **RPU (Redshift Processing Units)** por segundo + GB armazenado. **Base RPU**: 8-512 RPUs. **Ideal para**: Workloads imprevisíveis, PoCs, dev/test.
69
O que são Materialized Views e AUTO REFRESH?
**Materialized Views** **armazenam fisicamente** resultado de queries complexas para acelerar acessos repetidos. `CREATE MATERIALIZED VIEW mv_vendas AS SELECT ... WITH AUTO REFRESH YES;`. **AWS atualiza automaticamente** quando dados base mudam. **Economiza 100x tempo** em queries repetitivas.
70
O que é Redshift Data Sharing/DataShares?
**Data Sharing** permite **compartilhar tabelas/views entre clusters Redshift** (leitura-only) **sem cópia/duplicação**. Um cluster produtor, múltiplos consumidores. **Cenário**: Cluster analytics pesado + clusters BI/reporting leves.
71
O que é Redshift Lambda UDF?
**Lambda UDF** executa **funções AWS Lambda dentro de SQL**: `CREATE FUNCTION minha_udf(texto) RETURNS int STABLE LAMBDA 'minha-lambda'; SELECT minha_udf(nome) FROM usuarios;`. **Extende SQL** com ML, APIs externas, processamento customizado.
72
O que são Redshift Federated Queries?
**Federated Queries** executa SQL do Redshift **diretamente em RDS, Aurora, MySQL** sem mover dados: `SELECT * FROM mysql_dev.rds_tabela WHERE ...`. **Push-down predicates** para performance. **Ideal para**: Data mesh, queries federadas multi-serviço.
73
O que são Redshift System Tables/Views?
**System Tables/Views** monitoram **performance, uso, queries**: STL_QUERY (queries executadas), STV_TBL_PERM (uso storage), SVL_QLOG (query logs). **Essencial para**: Troubleshooting, capacity planning, identificar queries lentas.
74
Para que serve o Athena Workgroups?
Permite limitar uso do Athena e usuários
75