PERF04-BP01 Compreender as características dos dados
Escolha soluções para o gerenciamento dos seus dados que correspondam de forma ideal às características, aos padrões de acesso e aos requisitos dos conjuntos de dados de sua workload. Ao selecionar e implementar uma solução de gerenciamento de dados, verifique se as características de consultas, de escalabilidade e de armazenamento são compatíveis com os requisitos dos dados da workload. Saiba como as várias opções de bancos de dados correspondem aos seus modelos de dados e quais opções de configuração são mais adequadas para seu caso de uso.
A AWS fornece vários mecanismos de banco de dados, incluindo bancos de dados relacionais, de chave-valor, de documentos, na memória, de grafos, de séries temporais e de ledger. Cada solução de gerenciamento de dados tem opções e configurações disponíveis para compatibilidade com seus casos de uso e modelos de dados. Sua workload deve poder usar várias soluções de banco de dados diferentes, baseadas nas características dos dados. Ao selecionar as melhores soluções de banco de dados para um problema específico, você pode se libertar de bancos de dados monolíticos, com a abordagem de tamanho único que é restritiva, e focar no gerenciamento de dados para atender às necessidades dos seus clientes.
Resultado desejado: As características dos dados da workload são documentadas com detalhes suficientes para facilitar a seleção e a configuração de soluções de banco de dados compatíveis e para fornecer insight das possíveis alternativas.
Antipadrões comuns:
-
Não considerar maneiras para segmentar grandes conjuntos de dados em coleções de dados menores que têm características semelhantes, o que resulta na perda das oportunidades de usar bancos de dados com propósito específico que correspondem melhor às características dos dados e do crescimento.
-
Não identificar os padrões de acesso aos dados no início, o que resulta em retrabalho caro e complexo posteriormente.
-
Limitar o crescimento usando estratégias de armazenamento de dados que não são dimensionáveis tão rapidamente quanto necessário.
-
Escolher um tipo de banco de dados para todas as workloads.
-
Fixar-se em uma única solução de banco de dados porque há experiência e conhecimento internos de um tipo específico de solução de banco de dados.
-
Manter uma solução de banco de dados porque ela funciona bem em um ambiente on-premises.
Benefícios do estabelecimento desta prática recomendada: Familiarize-se com todas as soluções de banco de dados da AWS para poder determinar a solução de banco de dados correta para as diversas workloads. Depois de selecionar a solução de banco de dados adequada para a sua workload, você poderá experimentar rapidamente cada uma dessas ofertas de banco de dados para determinar se elas continuam atendendo às necessidades da sua workload.
Nível de exposição a riscos quando esta prática recomendada não for estabelecida: Alto
-
A economia de custo possível pode não ser identificada.
-
Os dados podem não estar protegidos no nível necessário.
-
O acesso aos dados e a performance do armazenamento podem não ser ideais.
Orientações para a implementação
Defina as características dos dados e os padrões de acesso da workload. Analise todas as soluções de banco de dados disponíveis para identificar a solução que é compatível com as necessidades dos seus dados. Em uma determinada workload, vários bancos de dados podem ser selecionados. Avalie cada serviço ou grupo de serviços e analise-os individualmente. Se soluções alternativas possíveis de gerenciamento de dados forem identificadas para todos ou para parte dos dados, experimente com implementações alternativas que possam desvendar benefícios de custo, segurança, performance e confiabilidade. Atualize a documentação existente caso uma nova abordagem de gerenciamento de dados seja adotada.
Tipo | Serviços da AWS | Características principais | Casos de uso comuns |
---|---|---|---|
Relacional | Amazon RDS, Amazon Aurora | Integridade referencial, transações ACID, esquema para gravação | ERP, CRM, software comercial pronto para uso |
Chave-valor | Amazon DynamoDB | Throughput alto, baixa latência, escalabilidade quase infinita | Carrinhos de compras (comércio eletrônico), catálogos de produtos, aplicações de chat |
Documentos | Amazon DocumentDB | Armazenar documentos JSON e consultar por qualquer atributo | Gerenciamento de conteúdo (CMS), perfis de clientes, aplicações móveis |
Na memória | Amazon ElastiCache, Amazon MemoryDB | Latência de microssegundos | Armazenamento em cache, placares de jogos |
Bancos de dados | Amazon Neptune | Dados altamente relacionais em que os relacionamentos entre os dados têm significado | Redes sociais, mecanismos de personalização, detecção de fraudes |
Séries temporais | Amazon Timestream | Dados em que a dimensão primária é o tempo | DevOps, IoT, monitoramento |
Coluna ampla | Amazon Keyspaces | Workloads do Cassandra. | Manutenção de equipamentos industriais, otimização de rotas |
Ledger | Amazon QLDB | Ledger de alterações imutável e verificável de forma criptográfica | Sistemas de registro, saúde, cadeias de suprimentos, instituições financeiras |
Etapas da implementação
-
Como os dados estão estruturados? (por exemplo, não estruturados, chave-valor, semiestruturados, relacionais)
-
Se os dados estiverem estruturados, considere um armazenamento de objetos, como o Amazon S3
, ou um banco de dados NoSQL, como o Amazon DocumentDB. -
Para dados de chave-valor, considere o DynamoDB
, o ElastiCache for Redis ou o MemoryDB. -
Se os dados tiverem uma estrutura relacional, qual nível de integridade referencial é necessário?
-
Para restrições de chave estrangeira, bancos de dados relacionais, como o Amazon RDS
e Aurora , podem fornecer esse nível de integridade. -
Normalmente, em um modelo de dados NoSQL, você desnormalizaria os dados em um único documento ou coleção de documentos para serem recuperados em uma única solicitação e não fazendo junção entre documentos ou tabelas;
-
-
-
A conformidade com as ACID (atomicidade, consistência, isolamento, durabilidade) é necessária?
-
Se as propriedades ACID associadas aos bancos de dados relacionais forem necessárias, considere um banco de dados relacional, como o Amazon RDS
e o Aurora.
-
-
Qual é o modelo de consistência necessário?
-
Se a sua aplicação puder tolerar consistência eventual, considere uma implementação NoSQL. Analise as outras características para ajudar a escolher qual banco de dados NoSQL
é mais adequado. -
Se for necessária forte consistência, use leituras altamente consistentes com o DynamoDB
ou um banco de dados relacional, como o Amazon RDS .
-
-
Quais formatos de consulta e resultado são compatíveis? (por exemplo, SQL, CSV, Parque, Avro, JSON etc.)
-
Quais tipos de dados, tamanhos de campos e quantidades gerais estão presentes? (por exemplo, texto, numérico, espacial, séries temporais calculadas, binário ou blob, documento)
-
Como as necessidades de armazenamento serão alteradas ao longo do tempo? Como isso afeta a escalabilidade?
-
Bancos de dados de tecnologia sem servidor, como o DynamoDB
e Amazon Quantum Ledger Database , escalarão dinamicamente até quase armazenamento ilimitado. -
Os bancos de dados relacionais têm limites superiores em armazenamento provisionado e devem ser particionados horizontalmente por meio de mecanismos, como fragmentação, quando atingem esses limites.
-
-
Qual é a proporção de consultas de leitura em relação a consultas de gravação? O armazenamento em cache melhoraria a performance?
-
Workloads de leitura pesada podem se beneficiar de uma camada de armazenamento em cache, esse pode ser o ElastiCache
ou o DAX, se o banco de dados for o DynamoDB. -
As leituras também podem ser descarregadas em réplicas de leitura com bancos de dados relacionais, como o Amazon RDS
.
-
-
O armazenamento e a modificação (OLTP – Processamento de transações on-line) ou a recuperação e a geração de relatórios (OLAP – Processamento analítico on-line) têm uma prioridade mais alta.
-
Para processamento transacional de throughput alto, considere um banco de dados NoSQL, como o DynamoDB ou o Amazon DocumentDB.
-
Para consultas de análise, considere um banco de dados em colunas, como o Amazon Redshift
, ou exporte os dados para o Amazon S3 e execute análises usando o Athena ou o QuickSight.
-
-
Qual é o grau de confidencialidade desses dados e qual nível de proteção e criptografia eles precisam?
-
Todos os mecanismos do Amazon RDS e do Aurora são compatíveis com a criptografia de dados em repouso usando o AWS KMS. O Microsoft SQL Server e o Oracle também são compatíveis com a Transparent Data Encryption (TDE – Criptografia transparente de dados) ao usar o Amazon RDS.
-
Para o DynamoDB, use controle de acesso refinado com o IAM para controlar quem tem acesso a quais dados no nível principal.
-
-
Qual nível de durabilidade os dados exigem?
-
O Aurora replica automaticamente os dados entre três zonas de disponibilidade em uma região, o que significa que seus dados são altamente duráveis com menos chance de perda de dados.
-
O DynamoDB é automaticamente replicado entre várias zonas de disponibilidade, fornecendo alta disponibilidade e durabilidade dos dados.
-
O Amazon S3 fornece 11 noves de durabilidade. Muitos serviços de banco de dados, como o Amazon RDS e o DynamoDB, são compatíveis com a exportação de dados para o Amazon S3 para retenção de longo prazo e arquivamento.
-
-
Os requisitos do objetivo de tempo de recuperação (RTO) ou do objetivo de ponto de recuperação (RPO) influenciam a solução?
-
O Amazon RDS, o Aurora, o DynamoDB, o Amazon DocumentDB e o Neptune são compatíveis com a recuperação pontual e o backup e a recuperação sob demanda.
-
Para requisitos de alta disponibilidade, as tabelas do DynamoDB podem ser replicadas globalmente usando o recurso tabelas globais,
e os clusters do Aurora podem ser replicados entre várias regiões usando o recurso banco de dados global. Além disso, os buckets do S3 podem ser replicados entre Regiões da AWS usando a replicação entre regiões.
-
-
Você quer se livrar de mecanismos de bancos de dados comerciais/custos de licenças?
-
Qual a expectativa operacional para o banco de dados? A mudança para serviços gerenciados é uma preocupação principal?
-
Utilizar o Amazon RDS em vez do Amazon EC2 e o DynamoDB ou o Amazon DocumentDB em vez de um host automático de um banco de dados NoSQL pode reduzir a sobrecarga operacional.
-
-
Como o banco de dados é acessado atualmente? É acessado apenas por aplicação ou há usuários de inteligência de negócios (BI) e outras aplicações prontas para uso conectadas?
-
Se você tiver dependências de ferramentas externas, poderá ser necessário manter a compatibilidade com os bancos de dados com os quais elas são compatíveis. O Amazon RDS é totalmente compatível com as diferentes versões de mecanismo aos quais oferece suporte, incluindo o Microsoft SQL Server, o Oracle, o MySQL e o PostgreSQL.
-
-
Veja a seguir uma lista de serviços dos gerenciamento de dados potenciais, e onde eles podem ser melhor utilizados:
-
Bancos de dados relacionais armazenam dados com esquemas e relacionamentos predefinidos entre eles. Esses bancos de dados são projetados para oferecer suporte a transações ACID (atomicidade, consistência, isolamento, durabilidade) e manter a integridade referencial e uma forte consistência de dados. Muitas aplicações tradicionais, planejamento de recursos empresariais (ERP), gerenciamento de relacionamentos com o cliente (CRM) e comércio eletrônico usam bancos de dados relacionais para armazenar seus dados. É possível executar muitos desses mecanismos de banco de dados no Amazon EC2 ou escolher um dos serviços gerenciados pela AWS de banco de dados
: Amazon Aurora , Amazon RDS e aos Amazon Redshift . -
Bancos de dados de chave/valor são otimizados para padrões de acesso comuns, normalmente visando armazenar e recuperar grandes volumes de dados. Esses bancos de dados fornecem tempos de resposta rápidos, mesmo sob volumes extremos de solicitações simultâneas. Aplicações da web de alto tráfego, sistemas de comércio eletrônico e aplicações de jogos são os casos de uso habituais para bancos de dados de chave-valor. Na AWS, é possível utilizar o Amazon DynamoDB
, um banco de dados totalmente gerenciado, multirregião, multimestre e durável com recursos incorporados de segurança, backup e restauração, além de armazenamento em cache na memória para aplicações na escala da Internet. -
Os bancos de dados na memória são usados para aplicações que exigem acesso em tempo real aos dados, latência mais baixa e throughput mais alto. Ao armazenar dados diretamente na memória, esses bancos de dados fornecem latência de microssegundos às aplicações para as quais a latência de milissegundos não é suficiente. Você pode usar bancos de dados em memória para armazenamento de aplicativos em cache, gerenciamento de sessões, placares de jogos e aplicativos geoespaciais. Amazon ElastiCache
é um datastore na memória totalmente gerenciado, compatível com o Redis ou Memcached . No caso de aplicações que também requerem durabilidade mais alta, Amazon MemoryDB for Redis oferece isso em combinação com um serviço durável de banco de dados na memória para performance ultrarrápida. -
Um banco de dados de documentos é projetado para armazenar dados semiestruturados, como documentos semelhantes a JSON. Esses bancos de dados ajudam os desenvolvedores a criar e atualizar rapidamente aplicativos como gerenciamento de conteúdo, catálogos e perfis de usuário. Amazon DocumentDB
é um serviço totalmente gerenciado de banco de dados de documentos rápido, escalável e altamente disponível compatível com cargas de trabalho do MongoDB. -
Um armazenamento em colunas amplas é um tipo de banco de dados NoSQL. Ele usa tabelas, linhas e colunas, mas ao contrário de um banco de dados relacional, os nomes e o formato das colunas podem variar de linha para linha na mesma tabela. Normalmente, você vê um repositório de coluna ampla em aplicativos industriais de alta escala para manutenção de equipamentos, gerenciamento de frotas e otimização de rotas. Amazon Keyspaces (para Apache Cassandra)
é um serviço escalável, gerenciado e altamente disponível de banco de dados de coluna ampla, compatível com Apache Cassandra. -
Bancos de dados gráficos são para aplicativos que precisam navegar e consultar milhões de relações entre conjuntos de dados gráficos altamente conectados com latência de milissegundos em grande escala. Muitas empresas usam bancos de dados gráficos para detecção de fraudes, redes sociais e mecanismos de recomendação. Amazon Neptune
é serviço totalmente gerenciado, rápido e confiável de banco de dados gráfico que facilita a criação e execução de aplicações que funcionam com conjuntos de dados altamente conectados. -
Bancos de dados de séries temporais são eficientes para coletar, sintetizar e derivar insights de dados que mudam ao longo do tempo. Aplicativos de IoT, DevOps e telemetria industrial podem utilizar bancos de dados de séries temporais. Amazon Timestream
é um serviço rápido, escalável e totalmente gerenciado de banco de dados de séries temporais para aplicativos operacionais e de IoT que facilita o armazenamento e a análise de trilhões de eventos por dia. -
Bancos de dados de livro-razão fornecem uma autoridade centralizada e confiável para manter um registro escalável, imutável e criptograficamente verificável de transações para cada aplicativo. Vemos os bancos de dados de livro-razão empregados em sistemas de registro, cadeia de suprimentos, inscrições e até mesmo transações bancárias. Amazon Quantum Ledger Database (Amazon QLDB)
é um banco de dados ledger totalmente gerenciado que fornece um log de transações transparente, imutável e criptograficamente verificável pertencente a uma autoridade confiável central. O Amazon QLDB monitora todas as alterações de dados do aplicativo e mantém um histórico completo e verificável das alterações ao longo do tempo.
-
Nível de esforço para o plano de implementação: Se uma workload for movida de uma solução de banco de dados para outra, poderá haver um nível alto de esforço envolvido na refatoração dos dados e da aplicação.
Recursos
Documentos relacionados:
Vídeos relacionados:
Exemplos relacionados: