Compartilhar via


Entender os modelos de dados

As soluções modernas lidam com dados diversos, como transações, eventos, documentos, telemetria, ativos binários e fatos analíticos. Um único armazenamento de dados raramente satisfaz todos os padrões de acesso com eficiência. A maioria dos sistemas de produção adota a persistência poliglota, o que significa que você seleciona vários modelos de armazenamento. Este artigo centraliza as definições canônicas dos modelos de armazenamento de dados primários disponíveis no Azure e fornece tabelas comparativas para acelerar a seleção de modelos antes de escolher serviços específicos.

Use as seguintes etapas para selecionar seus modelos de dados:

  1. Identifique padrões de acesso à carga de trabalho, como leituras de ponto, agregações, texto completo, similaridade, verificações de janela de tempo e entrega de objetos.

  2. Mapeie padrões para os modelos de armazenamento nas seções a seguir.

  3. Crie uma lista de serviços do Azure que implementem esses modelos.

  4. Aplique critérios de avaliação, como consistência, latência, escala, governança e custo.

  5. Combine modelos somente em que os padrões de acesso ou os ciclos de vida divergem claramente.

Como usar este guia

Cada seção de modelo inclui uma definição concisa, cargas de trabalho típicas, características de dados, cenários de exemplo e links para serviços representativos do Azure. Cada seção também inclui uma tabela para ajudá-lo a escolher o serviço correto do Azure para seu caso de uso. Em alguns casos, você pode usar outros artigos para fazer escolhas mais informadas sobre as opções de serviço do Azure. As respectivas seções de modelo fazem referência a esses artigos.

Duas tabelas comparativas resumem características de modelo não relacional para ajudá-lo a avaliar rapidamente as opções sem repetir o conteúdo entre as seções.

Visão geral da classificação

Categoria Finalidade primária Exemplos típicos de serviço do Azure
Relacional (OLTP) Operações transacionais consistentes Banco de Dados SQL do Azure, Banco de Dados do Azure para PostgreSQL ou Banco de Dados do Azure para MySQL
Não relacional, como documento, chave-valor, família de colunas e grafo Tarefas de esquema flexível ou centradas em relações APIs do Azure Cosmos DB, Redis Gerenciado do Azure, Cassandra Gerenciado ou HBase
Série temporal Eventos e métricas com carimbo de data/hora de alta ingestão Azure Data Explorer ou Eventhouse no Fabric
Objeto e arquivo Armazenamento de arquivos binário grande ou semiestruturado Armazenamento de Blobs do Azure ou Armazenamento de Data Lake do Azure
Pesquisa e indexação Relevância de texto completo e vários campos, indexação secundária Pesquisa de IA do Azure 
Vector Similaridade semântica ou aproximada do vizinho mais próximo (ANN) Variantes do Azure AI Search ou do Azure Cosmos DB
Análise, OLAP (processamento analítico online), MPP (processamento paralelo maciço) Agregação histórica em larga escala ou BI (business intelligence) Microsoft Fabric, Azure Data Explorer, Azure Analysis Services ou Azure Databricks

Observação

Um único serviço pode fornecer vários modelos, também conhecidos como multimodel. Escolha o modelo mais adequado em vez de combinar modelos de uma maneira que complica as operações.

Armazenamentos de dados relacionais

Os sistemas de gerenciamento de banco de dados relacional organizam dados em tabelas normalizadas usando esquema na gravação. Elas impõem integridade e dão suporte a transações ACID (atomicidade, consistência, isolamento e durabilidade) e consultas SQL complexas.

Pontos fortes: Consistência transacional de várias linhas, junções complexas, restrições relacionais fortes e ferramentas maduras para relatórios, administração e governança.

Considerações: A escala horizontal geralmente requer fragmentação ou particionamento, e a normalização pode aumentar o custo de junção para exibições desnormalizadas de leitura pesada.

Cargas: Gerenciamento de pedidos, acompanhamento de inventário, registro do razão financeiro, cobrança e relatórios operacionais.

Selecionar um serviço do Azure para armazenamentos de dados relacionais

Use a tabela a seguir para ajudar a determinar qual serviço do Azure atende aos requisitos de caso de uso.

Service Mais adequado para Características principais Caso de utilização de exemplo
Banco de Dados SQL Aplicativos nativos de nuvem Gerenciada, pools elásticos, Hiperescala, alta disponibilidade interna, segurança avançada Criando um aplicativo SaaS (software como serviço) moderno usando um back-end do SQL escalonável
Instância Gerenciada de SQL Aplicativos empresariais legados Compatibilidade completa do SQL Server, suporte de lift-and-shift, redes virtuais, auditoria avançada Migrar um aplicativo do SQL Server local usando alterações mínimas de código
Banco de Dados SQL (Hiperescala) Distribuição global Escalabilidade de leitura de várias regiões, replicação geográfica, dimensionamento automático rápido Servindo um aplicativo distribuído globalmente que requer alta taxa de transferência de leitura
Banco de Dados do Azure para PostgreSQL Cargas de trabalho com software de código aberto e análises PostGIS, Hiperescala, Servidor Flexível, extensões de software livre Desenvolvendo um aplicativo de análise geoespacial usando PostgreSQL e PostGIS
Banco de Dados do Azure para MySQL Aplicativos Web leves Servidor flexível, compatibilidade de software livre, econômico Hospedar um site de comércio eletrônico baseado em WordPress
Banco de Dados SQL em Fabric Cargas de trabalho de OLTP (processamento de transações online) no ecossistema do Fabric Construído sobre o mecanismo de banco de dados SQL, escalonável e integrado ao Fabric Criando aplicativos de IA em um modelo de dados operacional e relacional que inclui recursos de pesquisa de vetor nativo

Armazenamentos de dados não relacionais

Bancos de dados não relacionais, também chamados de bancos de dados NoSQL, otimizam para esquemas flexíveis, escala horizontal e padrões específicos de acesso ou agregação. Normalmente, eles relaxam alguns aspectos do comportamento relacional, como rigidez de esquema e escopo de transação, para escalabilidade ou agilidade.

Armazenamentos de dados de documentos

Use armazenamentos de dados de documentos para armazenar documentos semiestruturados, geralmente no formato JSON, em que cada documento inclui campos e dados nomeados. Os dados podem ser valores simples ou elementos complexos, como listas e subcoleções. A flexibilidade de esquema por documento permite a evolução gradual.

Pontos fortes: Mapeamento de objeto de aplicativo natural, agregações desnormalizadas, indexação de vários campos

Considerações: Crescimento do tamanho do documento, escopo transacional seletivo, necessidade de design cuidadoso da forma de dados para consultas de alta escala

Cargas: Catálogos de produtos, gerenciamento de conteúdo, repositórios de perfil

Selecionar um serviço do Azure para armazenamentos de dados de documentos

  • O Azure Cosmos DB para NoSQL é um banco de dados NoSQL de várias regiões sem esquema que tem leituras e gravações de baixa latência.

  • O Azure DocumentDB é um banco de dados distribuído globalmente que tem compatibilidade de protocolo de conexão do MongoDB e dimensionamento automático.

  • O Azure Cosmos DB no Fabric é um banco de dados NoSQL sem esquema que tem leituras e gravações de baixa latência, gerenciamento simplificado e análise interna do Fabric.

Use a tabela a seguir para ajudar a determinar qual serviço do Azure atende aos requisitos de caso de uso.

Service Mais adequado para Características principais Caso de utilização de exemplo
Azure Cosmos DB para NoSQL Modelos de documento JSON personalizados que dão suporte a consultas semelhantes a SQL Linguagem de consulta rica, gravações multirregionais, tempo de vida (TTL), fluxo de alterações Criando uma plataforma SaaS multilocatário que dá suporte a esquemas flexíveis
Azure DocumentDB Aplicativos que usam drivers do MongoDB ou APIs centradas em JSON Distribuição global, dimensionamento automático, protocolo de fio nativo do MongoDB Migrando um aplicativo Node.js do MongoDB para o Azure
Azure Cosmos DB no Fabric Análise em tempo real sobre dados NoSQL Extração, transformação e carregamento (ETL) automático para o OneLake através da integração com o Fabric Aplicativos transacionais que incluem painéis analíticos em tempo real

Armazenamento de dados com família de colunas

Um banco de dados da família de colunas, também conhecido como um banco de dados de coluna larga, armazena dados esparsos em linhas e organiza colunas dinâmicas em famílias de colunas para dar suporte ao co-acesso. A orientação da coluna melhora as verificações em relação aos conjuntos de colunas selecionados.

Pontos fortes: Alta taxa de transferência de gravação, recuperação eficiente de conjuntos de dados largos ou esparsos, esquema dinâmico dentro de famílias

Considerações: Design inicial da chave de linha e da família de colunas, suporte a índices secundários pode variar, flexibilidade de consulta inferior à relacional

Cargas de Trabalho: Telemetria de Internet das Coisas (IoT), personalização, pré-agregação de análise, dados volumosos no estilo de série temporal quando não se usa um banco de dados dedicado para séries temporais

Selecionar um serviço do Azure para armazenamentos de dados da família de colunas

Use a tabela a seguir para ajudar a determinar qual serviço do Azure atende aos requisitos de caso de uso.

Service Mais adequado para Características principais Caso de utilização de exemplo
Instância Gerenciada do Azure para Apache Cassandra Cargas de trabalho novas e migradas do Cassandra Apache Cassandra nativo gerenciado Ingestão de telemetria de dispositivos IoT que suporta compatibilidade com Cassandra
Apache HBase no HDInsight Ecossistema do Hadoop, análise em lote Integração do HDFS (Sistema de Arquivos Distribuído do Hadoop), processamento em lotes em grande escala Processamento em lote de dados do sensor em uma fábrica
Azure Data Explorer (Kusto) Telemetria de alta ingestão, análise de série temporal KQL, consultas ad hoc rápidas, funções de janela de tempo Análise em tempo real para registros de aplicativos e métricas

Armazenamentos de dados chave-valor

Um repositório de dados chave-valor associa cada valor de dados a uma chave exclusiva. A maioria dos repositórios de chave-valor só dá suporte a operações simples de consulta, inserção e exclusão. Para modificar um valor parcial ou completamente, um aplicativo deve substituir os dados existentes para todo o valor. Na maioria das implementações, ler ou gravar um único valor é uma operação atômica.

Pontos fortes: Simplicidade, baixa latência, escalabilidade linear

Considerações: Expressividade limitada de consulta, redesign necessário para buscas baseadas em valor, alto custo de sobrescrição de valor

Cargas: Cache, sessões, sinalizadores de recursos, perfis de usuário, pesquisas de recomendação

Selecionar um serviço do Azure para armazenamentos de dados chave-valor

  • O Redis Gerenciado do Azure é um armazenamento de dados gerenciado na memória com base na versão mais recente do Redis Enterprise que fornece baixa latência e alta taxa de transferência.

  • O Azure Cosmos DB para Tabela é um repositório de chave-valor otimizado para acesso rápido a dados NoSQL estruturados.

  • O Azure Cosmos DB para NoSQL é um armazenamento de dados de documentos otimizado para acesso rápido a dados estruturados do NoSQL e fornece escalabilidade horizontal.

Use a tabela a seguir para ajudar a determinar qual serviço do Azure atende aos requisitos de caso de uso.

Service Mais adequado para Características principais Caso de utilização de exemplo
Redis Gerenciado do Azure Cache de alta velocidade, estado da sessão, publicação-assinatura Armazenamento na memória, latência de submilissegundo, protocolo Redis Armazenar em cache páginas de produtos para um site de comércio eletrônico
Azure Cosmos DB para Tabelas Migrando cargas de trabalho existentes do Armazenamento de Tabelas do Azure Compatibilidade da API de Armazenamento de Tabela Armazenando as preferências e as configurações do usuário em um aplicativo móvel
Azure Cosmos DB para NoSQL Cache de alta velocidade com grande escala e alta disponibilidade Dimensionamento automático, sem esquemas, multirregional Cache, estado da sessão, camada de serviço

Armazenamentos de dados de grafo

Um banco de dados de grafo armazena informações como nós e bordas. As bordas definem relações e nós e bordas podem ter propriedades semelhantes às colunas de tabela. Você pode analisar conexões entre entidades, como funcionários e departamentos.

Pontos fortes: Padrões de consulta com foco em relacionamentos, travessias eficientes com variações de profundidade

Considerações: Sobrecarga se as relações forem superficiais, requer modelagem cuidadosa para desempenho, não ideal para verificações analíticas em massa

Cargas: Redes sociais, anéis de fraude, grafos de conhecimento, dependências da cadeia de suprimentos

Selecionar um serviço do Azure para armazenamentos de dados de grafo

Utilize extensões de grafo do SQL Server para armazenar dados de grafo. A extensão de grafo estende os recursos do SQL Server, do Banco de Dados SQL e da Instância Gerenciada de SQL para habilitar a modelagem e a consulta de relações complexas usando estruturas de grafo diretamente em um banco de dados relacional.

Armazenamentos de dados de série temporal

Os armazenamentos de dados de série temporal gerenciam um conjunto de valores organizados por tempo. Eles dão suporte a recursos como consultas e agregações baseadas em tempo. Eles são otimizados para ingerir e analisar grandes volumes de dados quase em tempo real. São normalmente bancos de dados somente de adição.

Pontos fortes: Compactação, ingestão de alto volume, consultas e agregações de janela de tempo, manipulação de ingestão fora de ordem

Considerações: Gerenciamento de cardinalidade de tag, custo de retenção, estratégia de redução de amostragem, linguagens de consulta especializadas

Cargas: Métricas do sensor de IoT, telemetria do aplicativo, monitoramento, dados industriais e dados do mercado financeiro

Selecionar um serviço do Azure para armazenamentos de dados de série temporal

  • O Azure Data Explorer é uma plataforma de armazenamento de Big Data gerenciada. Use-o para consultar e visualizar grandes volumes de dados quase em tempo real. Escolha esse serviço se você precisar de uma solução de PaaS (plataforma como serviço) autônoma com controle granular sobre configuração, rede e dimensionamento de cluster.

  • O Eventhouse no Microsoft Fabric faz parte da experiência do Real-Time Intelligence no Fabric. Ele utiliza bancos de dados KQL para processar dados de streaming. Escolha esse serviço se quiser uma experiência saaS (software como serviço) integrada ao ecossistema do Fabric, incluindo cargas de trabalho do OneLake e outras do Fabric.

  • Alguns bancos de dados transacionais fornecem recursos de série temporal limitados como parte de seu conjunto de recursos mais amplo ou por meio de extensões. Por exemplo, o servidor flexível do Banco de Dados do Azure para PostgreSQL dá suporte ao TimescaleDB. Selecione essa opção se precisar consultar dados de série temporal junto com os dados transacionais existentes no banco de dados.

Ao escolher um armazenamento de dados de séries temporais, avalie o serviço com base nas necessidades da sua carga de trabalho para:

  • Desempenho de ingestão
  • Consultas ad hoc
  • Índices adicionais além dos campos de data/hora
  • Análise de série temporal e alertas

Armazenamento de dados de objetos

Armazene objetos binários ou semi-estruturados grandes e inclua metadados que raramente são alterados ou permanecem imutáveis.

Pontos fortes: Escala praticamente ilimitada, custo em camadas, durabilidade, funcionalidade de leitura paralela

Considerações: Operações de objeto inteiro, consulta de metadados limitada, comportamentos de listagem eventual

Cargas: Ativos de mídia, backups, zonas brutas do data lake, arquivos de log

Selecionar um serviço do Azure para armazenamentos de dados de objeto

  • O Data Lake Storage é um repositório de objetos com otimização de Big Data que combina namespace hierárquico e compatibilidade do HDFS para análise avançada e processamento de dados em grande escala.

  • O Armazenamento de Blobs é um repositório de objetos escalonável para dados não estruturados, como imagens, documentos e backups que incluem acesso em camadas para otimização de custo.

Use a tabela a seguir para ajudar a determinar qual serviço do Azure atende aos requisitos de caso de uso.

Service Mais adequado para Características principais Caso de utilização de exemplo
Armazenamento do Data Lake Análise de Big Data e dados hierárquicos HDFS, namespace hierárquico, otimizado para análise Armazenando e consultando petabytes de dados estruturados e não estruturados usando o Azure Data Factory ou o Azure Databricks
Armazenamento de Blobs Armazenamento de objetos de uso geral Namespace plano, API REST simples e armazenamento em camadas que inclui quente, frio e arquivo Hospedagem de imagens, documentos, backups e conteúdo de site estático

Pesquisar e indexar armazenamentos de dados

Um banco de dados de mecanismo de busca permite que os aplicativos pesquisem informações em armazenamentos de dados externos. Um banco de dados do mecanismo de pesquisa pode indexar grandes volumes de dados e fornecer acesso quase em tempo real a esses índices.

Pontos fortes: Consultas de texto completo, pontuação, análise linguística, correspondência difusa

Considerações: Consistência eventual de índices, ingestão separada ou pipeline de indexação, custo de grandes atualizações de índice

Cargas: Pesquisa de site ou produto, pesquisa de logs, filtragem de metadados, descoberta de vários atributos

Selecionar um serviço do Azure para armazenamentos de dados de pesquisa

Para obter mais informações, consulte Escolher um repositório de dados de pesquisa no Azure.

Armazenamento de dados para busca vetorial

Os armazenamentos de dados de pesquisa vetor armazenam e recuperam representações de vetores de dados de alta dimensão, muitas vezes gerados por modelos de machine learning.

Pontos fortes: Pesquisa semântica, algoritmos ANN

Considerações: Indexação de complexidade, sobrecarga de armazenamento, latência versus precisão, desafios de integração

Cargas: Pesquisa semântica de documentos, mecanismos de recomendação, recuperação de imagem e vídeo, fraude e detecção de anomalias

Selecionar um serviço do Azure para armazenamentos de dados de pesquisa de vetor

Para obter mais informações, consulte Escolher um serviço do Azure para busca em vetores.

Armazenamentos de dados de análise

Os armazenamentos de dados analíticos guardam grandes volumes de dados e os mantêm durante todo o ciclo de vida do pipeline analítico.

Pontos fortes: Computação e armazenamento escalonáveis, suporte para SQL e Spark, integração com ferramentas de BI, série temporal e análise de telemetria

Considerações: Custo e complexidade da orquestração, latência de consulta para cargas de trabalho ad hoc, governança em vários domínios de dados

Cargas de Trabalho: Relatórios Empresariais, Análises de Dados em Larga Escala, Agregação de Telemetria, Painéis Operacionais, Pipelines de Ciência de Dados

Selecionar um serviço do Azure para armazenamentos de dados de análise

Para obter mais informações, consulte Escolher um armazenamento de dados analíticos no Azure.

Características comparativas (modelos não relacionais principais)

Aspecto Documento Família de colunas Chave-valor Graph
Normalização Desnormalizada Desnormalizada Desnormalizada Relações normalizadas
Abordagem de esquema Esquema em leitura Famílias de colunas definidas, esquema de colunas em leitura Esquema em leitura Esquema em leitura
Consistência (típica) Tunable para cada item Para cada linha ou família Para cada chave Para cada semântica de aresta ou passagem
Escopo de atomicidade Documento Linha ou família, dependendo da implementação da tabela Chave única Transação de grafo (varia)
Bloqueio e concorrência Otimista (ETag) Pessimista ou otimista, dependendo da implementação Otimista (chave) Otimista (padrão)
Padrão de acesso Agregação (entidade) Agregações largas e esparsas Pesquisa de ponto por chave Travesias de Relacionamentos
Indexação Primário e secundário Primário e secundário limitado Primário (chave) Primário e, às vezes, secundário
Estrutura de dados Hierárquico flexível Estrutura tabular esparsa ampla Valor opaco Nós e bordas
Adequação para estruturas esparsas/amplas Sim/Sim Sim/Sim Sim/Não Não/Não
Tamanho típico do datum Pequeno-médio Médio-grande Pequeno Pequeno
Dimensão de escala Contagem de partições Largura da partição e da família de colunas Espaço de chave Contagem de nós ou bordas

Características comparativas (modelos não relacionais especializados)

Aspecto Série temporal Objeto (blob) Pesquisa/indexação
Normalização Normalizado Desnormalizada Desnormalizada
Schema Esquema em leitura (tags) Valor opaco e metadados Esquema na escrita (mapeamento de índice)
Escopo de atomicidade N/A (acréscimo) Object Para cada documento ou operação de índice
Padrão de acesso Escaneamentos de fatias temporais, agregação de dados em janela Operações de objeto inteiro Consultas e filtros de texto
Indexação Horário e secundário opcional Somente chave (caminho) Facetas invertidas e opcionais
Estrutura de dados Tabular (carimbo de data/hora, etiquetas, valor) Binário ou blob com metadados Texto com token e campos estruturados
Perfil de gravação Anexação de alta velocidade Atualizações em massa ou pouco frequentes Lote ou índice de streaming
Perfil de leitura Intervalos agregados Downloads inteiros ou parciais Conjuntos de resultados classificados
Driver de crescimento Taxa de eventos multiplicada pela retenção Contagem e tamanho do objeto Volume de documento indexado
Tolerância à consistência Eventual para dados atrasados Leitura após gravação para cada objeto Eventual para novos documentos

Escolher entre modelos (heurística)

Necessidade Preferir
Transações estritas de múltiplas entidades Relacional
Forma de agregação em evolução, APIs centradas em JSON Documento
Pesquisas de chave com latência extremamente baixa ou armazenamento em cache Chave-valor
Telemetria ampla, dispersa e intensa em gravação Família de colunas ou série temporal
Percurso profundo de relacionamento Graph
Verificações analíticas históricas maciças Análise ou OLAP
Grandes binários não estruturados ou zonas do lago Object
Relevância de texto integral e filtragem Pesquisa e indexação
Métricas de carimbo de data/hora com alta taxa de ingestão com consultas de janela Série temporal
Similaridade rápida (semântica ou vetor) Busca em vetores

Combinar modelos e evitar armadilhas

Use mais de um modelo quando os seguintes cenários se aplicarem:

  • Os padrões de acesso divergem, como pesquisa de ponto versus verificação analítica ampla versus relevância de texto completo.
  • O ciclo de vida e a retenção diferem, como bruto imutável versus estruturado com curadoria.
  • Conflito de requisitos de latência versus taxa de transferência.

Evite a fragmentação prematura:

  • Utilize um serviço quando ele ainda atender aos objetivos de desempenho, escala e governança.
  • Centralize a lógica de classificação compartilhada e evite pipelines de transformação duplicados nos repositórios, a menos que seja necessário.

Observe os seguintes antipadrões comuns:

  • Vários microsserviços compartilham um banco de dados, o que cria acoplamento.
  • O Teams adiciona outro modelo sem maturidade operacional, como monitoramento ou backups.
  • Um índice de pesquisa se torna o repositório de dados primário, o que leva ao uso indevido.

Quando reavaliar sua escolha de modelo

Sinal Ação possível
Aumentando as junções ad hoc em um repositório de documentos Introduzir modelo de leitura relacional
Alta CPU no índice de pesquisa devido a agregações analíticas Transferir para o motor de análise
Documentos desnormalizados grandes criam contenção parcial de atualização Remodelar agregações ou divisões
Consultas de janela de tempo lentas no repositório da família de colunas Adotar banco de dados de série temporal criado com finalidade
A latência de busca de ponto aumenta com a profundidade do percurso do grafo Adicionar visões materializadas derivadas

Próximas etapas

Use os seguintes artigos para escolher um armazenamento de dados especializado:

Saiba mais sobre as arquiteturas de referência que usam os serviços do Azure neste artigo: