Seleção e Configuração de Repositórios de Dados

Resuma critérios de seleção de Redshift, DynamoDB, Lake Formation, Apache Iceberg e índices de vetores.

Onde armazenar dados é uma das decisões de design mais críticas na engenharia de dados. Escolher o armazenamento errado pode fazer as consultas ficarem dezenas de vezes mais lentas, fazer os custos explodirem ou tornar certas funcionalidades impossíveis de implementar. Escolher o armazenamento certo torna as consultas rápidas, os custos baixos e o sistema simples. No exame AWS DEA-C01, você é testado na sua capacidade de analisar um conjunto de requisitos e padrões de acesso para selecionar o serviço de armazenamento ideal.

 

Guia de Seleção de Armazenamento — O Que Usar em Qual Situação?

| Requisito | Serviço recomendado | |----------|---------------------| | Consultas analíticas em larga escala (OLAP), agregações e joins SQL | Amazon Redshift | | Buscas chave-valor, resposta em milissegundos, leitura/escrita em larga escala | Amazon DynamoDB | | Data lake baseado em S3, análise SQL serverless | Lake Formation + Athena | | Dados relacionais, OLTP (processamento de transações) | Amazon RDS / Aurora | | Cache em memória de ultra baixa latência | Amazon ElastiCache / MemoryDB | | Transações ACID em dados S3, viagem no tempo | Apache Iceberg | | Pesquisa, análise de logs, pesquisa de texto completo | Amazon OpenSearch Service |

Mais importante do que memorizar esta tabela é entender "por que você usaria cada serviço de armazenamento." Se você entende os princípios de design por trás de cada serviço, pode raciocinar para a resposta correta mesmo em cenários que nunca viu antes.

!Como escolher um armazenamento de dados: Redshift, Iceberg, Lake Formation

Amazon Redshift — O Data Warehouse Otimizado para Análise

Amazon Redshift é um data warehouse totalmente gerenciado projetado para cargas de trabalho analíticas em larga escala (OLAP). É construído para executar consultas de agregação em dezenas de bilhões de linhas rapidamente.

O armazenamento colunar é a chave

Bancos de dados tradicionais armazenam dados linha por linha. "Nome, idade, endereço, valor da compra e pontos de fidelidade do Cliente 1" são armazenados como uma linha. O Redshift armazena dados coluna por coluna. Todos os "valores de compra" de todos os clientes são armazenados juntos em um bloco orientado a colunas.

Por que isso ajuda na análise? Quando você executa uma consulta como "calcule o valor médio de compra do último ano," um BD baseado em linhas lê cada coluna de cada cliente. O Redshift lê apenas a coluna "valor de compra." De potencialmente centenas de colunas, apenas as poucas necessárias são lidas — reduzindo dramaticamente o I/O.

Redshift Spectrum — Consulte Dados S3 Diretamente

O Spectrum permite executar consultas SQL contra dados armazenados no S3 sem carregá-los no Redshift primeiro. Funciona como uma ponte entre o data lake (S3) e o data warehouse (Redshift).

Por exemplo: mantenha os últimos 3 anos de dados carregados no Redshift para acesso rápido, enquanto mantém dados históricos mais antigos economicamente no S3, e os consulta com Spectrum apenas quando necessário. A estratégia é "dados quentes no Redshift, dados frios no S3."

Federated Query (Consulta Federada)

Consulte dados no Amazon RDS, Aurora ou S3 diretamente de dentro do Redshift. Você não precisa copiar os dados para o Redshift primeiro. Você pode fazer JOIN de dados de múltiplas fontes em uma única consulta SQL.

Concurrency Scaling (Escalonamento de Concorrência)

Quando a carga de consultas aumenta nos horários de pico, o Redshift automaticamente adiciona capacidade adicional de cluster. Mesmo quando dezenas de analistas executam consultas simultaneamente durante a temporada de relatórios de fim de mês, o desempenho é mantido.

Instâncias RA3 — Separando Computação e Armazenamento

Os nós Redshift tradicionais tinham computação e armazenamento fortemente acoplados. Aumentar os dados significava aumentar também a computação. As instâncias RA3 separam a computação do armazenamento. Se seus dados crescem mas o volume de consultas permanece igual, escale apenas o armazenamento. Se o volume de consultas cresce mas o tamanho dos dados permanece igual, escale apenas a computação — cada um de forma independente.

 

Apache Iceberg — Adicionando Capacidades de Data Warehouse ao Data Lake

S3 é um armazenamento barato e infinitamente escalável. Mas por padrão, modificar ou sobrescrever dados no S3 é complicado, e escritas concorrentes de múltiplos processos podem causar inconsistências. Apache Iceberg é um formato de tabela aberto que traz capacidades de nível de banco de dados relacional para data lakes como S3.

Uma analogia de biblioteca: S3 é um armazém cheio de livros empilhados. Iceberg é o sofisticado sistema de catálogo que rastreia "qual livro está onde, quando foi adicionado e qual versão é."

Transações ACID

ACID descreve quatro propriedades que as transações de banco de dados devem ter: Atomicidade: Operações têm sucesso completo ou falham completamente — não há estado parcial. Consistência: Os dados sempre permanecem em um estado válido. Isolamento: Transações concorrentes não interferem umas nas outras. Durabilidade: Transações concluídas persistem mesmo se o sistema falhar.

Com Iceberg, dados armazenados no S3 ganham essas propriedades. Por exemplo, se seu sistema falhar enquanto atualiza 100 milhões de registros, você nunca ficará com dados parcialmente atualizados em um estado inconsistente.

Viagem no Tempo (Time Travel)

O Iceberg rastreia o histórico de mudanças dos seus dados. Você pode consultar "mostre-me os dados como estavam às 10h de ontem." Isso é inestimável para recuperar de exclusões acidentais de dados, auditar como os dados pareciam em um momento específico ou executar análises em um ponto no tempo.

Evolução de Esquema (Schema Evolution)

Você pode alterar o esquema de uma tabela sem reescrever os dados existentes. Adicionar novas colunas, renomear as existentes, excluir colunas — tudo isso é possível sem tocar nos arquivos existentes no S3. Os dados antigos permanecem compatíveis com o novo esquema e continuam funcionando corretamente.

Iceberg é totalmente compatível com Amazon Athena, Amazon EMR, AWS Glue e Redshift Spectrum.

 

AWS Lake Formation — O Gerenciador de Segurança para Seu Data Lake

Lake Formation é um serviço para construir e proteger um data lake baseado em S3 com políticas de acesso detalhadas. Usando a analogia de um sistema de controle de acesso a um edifício: Lake Formation gerencia "qual funcionário pode acessar qual andar e qual sala."

Controle de Acesso Detalhado (Fine-Grained Access Control)

Lake Formation controla as permissões de acesso para um data lake em níveis muito granulares:

Nível de banco de dados/tabela: Equipes específicas podem ver apenas tabelas específicas. Nível de coluna: A equipe de RH pode ver a coluna "salário," mas outras equipes não podem. Nível de linha: A equipe de vendas pode ver apenas os dados de sua própria região. Nível de célula: Um usuário específico pode ver apenas uma coluna específica de uma linha específica.

Esse nível de controle fino é difícil de implementar apenas com políticas IAM. O Lake Formation gerencia esse sistema complexo de permissões de forma centralizada em um único lugar.

Filtros de Dados (Data Filters)

Os filtros de dados do Lake Formation permitem mostrar a diferentes usuários diferentes visualizações da mesma tabela física. Por exemplo, de uma tabela contendo dados globais de clientes, configure-a para que a equipe dos EUA veja apenas clientes dos EUA e a equipe da UE veja apenas clientes da UE. Os dados físicos são uma única tabela, mas o que cada usuário vê é filtrado de acordo com suas permissões.

Integração com Glue Data Catalog

Lake Formation usa o AWS Glue Data Catalog como seu armazenamento de metadados. Os crawlers do Glue escaneiam os dados e registram os metadados das tabelas no catálogo, e o Lake Formation controla quem pode acessar essas tabelas. Athena, Redshift Spectrum e EMR todos consultam através do Glue Data Catalog e estão sujeitos aos controles de acesso do Lake Formation.

 

Resumo dos Pontos-Chave para o Exame

| Palavra-chave | Serviço/Conceito | |--------------|-----------------| | OLAP em larga escala, análise de agregação SQL | Amazon Redshift | | Consulta SQL de dados S3 sem carregá-los no Redshift | Redshift Spectrum | | Uma única consulta SQL em múltiplas fontes (RDS, S3, Redshift) | Federated Query | | Lidar com picos repentinos de consultas concorrentes | Concurrency Scaling | | Escalar computação e armazenamento independentemente | Instâncias Redshift RA3 | | Transações ACID em dados S3 | Apache Iceberg | | Consultar dados em um ponto específico do passado | Viagem no Tempo do Iceberg | | Alterar esquema sem reescrever dados existentes | Evolução de Esquema do Iceberg | | Controle de acesso de nível de coluna/linha para data lake | AWS Lake Formation | | Mostrar diferentes linhas/colunas para diferentes usuários | Filtros de Dados do Lake Formation | | Buscas chave-valor, resposta em milissegundos | Amazon DynamoDB |

A mensagem central do Iceberg: "Adicionar capacidades de nível de data warehouse (ACID, viagem no tempo, evolução de esquema) ao data lake (o baixo custo e escalabilidade do S3)."

Voltar à lista do blog