This is the Trace Id: 6c4348f8f00ac3933903030cf011d09e
Pular para o conteúdo principal
Azure

O que é a fragmentação do banco de dados?

A fragmentação do banco de dados é um método de escalonamento horizontal que aumenta o desempenho e a disponibilidade da solução em sistemas globais e distribuídos.

Fragmentação do banco de dados definida

A fragmentação do banco de dados refere-se ao processo de divisão de um banco de dados grande em segmentos menores e mais gerenciáveis conhecidos como fragmentos. Ela oferece suporte ao escalonamento horizontal para que os aplicativos e sistemas possam lidar com o aumento de volumes de dados e usuários sem afetar o desempenho ou a disponibilidade. As organizações usam estratégias de fragmentação para superarem restrições de armazenamento e outros desafios associados ao escalonamento do bancos de dados em ambientes de nuvem modernos.

  • A fragmentação do banco de dados é definida como um método de escalonamento horizontal que divide um banco de dados em fragmentos independentes, executados em uma arquitetura sem compartilhamento (SNA).
  • Os dados são divididos entre fragmentos usando chaves de fragmento, que permitem que os aplicativos encaminhem solicitações para fragmentos apropriados.
  • Geralmente, os dados são divididos entre fragmentos usando valores numéricos, funções de hash, diretórios de pesquisa ou localizações geográficas.
  • As vantagens da fragmentação do banco de dados incluem melhor desempenho de consulta, suporte para escalabilidade horizontal e maior tolerância a falhas.
  • Os casos de uso de fragmentação incluem plataformas bancárias, comércio eletrônico e mídia social, que geralmente devem lidar com crescimento rápido ou aumentos em dados ou usuários.

Como funciona a fragmentação do banco de dados?

A fragmentação do bancos de dados é uma técnica usada para escalar horizontalmente bancos de dados de grande porte, dividindo-os em partes menores e independentes, chamadas de fragmentos. Cada fragmento funciona como um banco de dados independente que contém um subconjunto específico dos dados gerais, mas mantém o mesmo esquema. Isso permite que os fragmentos formem, em conjunto, um único banco de dados lógico, mesmo que sejam executados em servidores distintos.

A fragmentação do bancos de dados segue uma arquitetura sem compartilhamento (SNA), um modelo de computação distribuída em que cada fragmento opera de forma independente, sem compartilhar recursos de processamento, memória ou armazenamento com outros fragmentos.

Uma chave de fragmento - um campo específico ou uma combinação de campos nos dados - determina quais dados serão armazenados em cada fragmento. Quando um aplicativo precisa ler ou gravar dados, ele usa a chave de fragmentação para encaminhar a solicitação ao fragmento apropriado.

Estratégias de fragmentação

As organizações gerenciam dados distribuídos entre vários fragmentos de maneiras diferentes. Aqui estão algumas estratégias comuns:

  • Fragmentação dinâmica ou baseada em intervalo: os dados são dividido por intervalos de valores na chave de fragmento. Por exemplo, um fragmento em um banco de dados de comércio eletrônico pode receber os números de identificação de cliente de 1 a 1.000.000, e outro fragmento pode receber os números de identificação de cliente de 1.000.001 a 2.000.000. Esse método é eficiente para consultas por intervalo, mas pode resultar em uma distribuição desigual se determinados intervalos forem acessados com mais frequência.
  • Fragmentação baseada em hash:os dados são distribuídos uniformemente entre fragmentos aplicando uma fórmula matemática chamada de função hash a cada chave de fragmento. Essa abordagem ajuda a evitar sobrecargas, mas pode dispersar dados relacionados em vários fragmentos, tornando as consultas de intervalo menos eficientes.
  • Fragmentação baseada em diretório ou pesquisa: um mapa de fragmentos indica quais chaves de fragmento correspondem a quais dados. Essa estratégia oferece flexibilidade para adicionar rapidamente mais chaves de fragmento conforme for necessário, mas adiciona complexidade e sobrecarga potencial.
  • Fragmentação geográfica: os dados do são particionados com base na localização geográfica, reduzindo a latência para usuários em diferentes regiões e dando suporte aos requisitos de residência de dados. Muitas plataformas emparelham a fragmentação geográfica com a replicação do banco de dados para maior resiliência.

Saiba mais sobre o banco de dados.

Quais são os principais benefícios da fragmentação do banco de dados?

A fragmentação do banco de dados requer uma seleção cuidadosa de chaves de fragmento e uma estratégia de fragmentação, assim como a otimização do roteamento de consultas. Aqui estão algumas vantagens importantes da fragmentação do banco de dados:

  • Melhora o desempenho da consulta:ao distribuir dados entre vários fragmentos, os bancos de dados podem recuperar mais rapidamente o conjunto de dados necessário para executarem cada consulta. Isso resulta em tempos de resposta mais rápidos.
  • Oferece suporte à escalabilidade horizontal: em vez de escalar verticalmente a capacidade de recursos em um único servidor, as organizações podem acomodar volumes crescentes de dados e cargas de trabalho expandindo e adicionando mais fragmentos (e servidores). Saiba mais sobre escalar verticalmente versus escalar horizontalmente.
  • Reforça a tolerância a falhas: como a fragmentação emprega uma abordagem SNA, cada fragmento é isolado dos outros. Qualquer problema que possa afetar um fragmento não afeta os outros, melhorando a confiabilidade do sistema. A replicação de dados entre fragmentos protege a disponibilidade ainda mais.
  • Impulsiona a eficiência dos custos:os fragmentos de dados possuem menos requisitos de hardware e software do que bancos de dados grandes, que geralmente exigem servidores caros e de alto nível.

Ajuda a otimizar as cargas de trabalho de IA: os bancos de dados complexos e monolíticos podem reduzir a capacidade da IA de acessar dados, fazer previsões e aprender ao longo do tempo. A fragmentação oferece suporte à criação de um ambiente distribuído e rico em dados em que a IA pode funcionar com mais eficiência.

Exemplos específicos do setor de fragmentação do banco de dados

A fragmentação do banco de dados é especialmente valiosa para soluções baseadas na nuvem que enfrentam um rápido crescimento ou picos imprevisíveis no volume de dados ou no tráfego de usuários. Os casos de uso a seguir demonstram formas como o particionamento pode ser aplicado em diversos setores:

  • Comércio eletrônico: as plataformas de varejo distribuem os dados de clientes e pedidos por fragmentos, contribuindo para garantir pesquisas rápidas de produtos e experiências de checkout sem interrupções durante os períodos de pico de compras.
  • Serviços financeiros: os registros de transações bancárias e outras transações financeiras são organizados por data ou número de conta, permitindo consultas eficientes e um armazenamento seguro e escalável.
  • Jogos online: os dados dos jogadores ou das sessões são divididos por região e ID de usuário, equilibrando as cargas entre os shards e minimizando a latência (o tempo necessário para que os dados cheguem ao seu destino) para o público global.
  • Redes sociais: as plataformas de mídia social organizam os dados dos perfis dos usuários e dos feeds de atividades por ID de usuário ou intervalo de tempo. Essa abordagem permite que a plataforma consulte rapidamente postagens recentes e suporte milhões de usuários simultâneos.
  • Software como serviço (SaaS): normalmente, os aplicativos SaaS com vários clientes dividem dados por ID do locatário, isolando dados e simplificando a gestão conforme a base de usuários cresce. Eles também podem dividi-lo por carga de trabalho de locatário ou localização geográfica.

Saiba mais sobre como a análise de big data funciona.

O futuro da fragmentação do banco de dados

Ao distribuir os dados por vários servidores independentes, a fragmentação reduz a carga sobre cada servidor, minimiza os gargalos e melhora a disponibilidade e a capacidade de resposta do sistema. As vantagens de usar a fragmentação do banco de dados em ambientes modernos de nuvem só tenderão a aumentar à medida que a IA e outras tecnologias relacionadas continuarem a evoluir.

As tendências a serem observadas incluem as seguintes:

Fluxos de trabalho de fragmentação assistidos por IA

Recursos inteligentes, como seleção automatizada da chave de fragmento, rebalanceamento da carga de trabalho e roteamento de consultas, se tornarão mais comuns.

Vantagem: operações simplificadas e otimizadas e escalabilidade sem precedentes

Reorganização das partições sem tempo de inatividade

As plataformas de dados modernas oferecerão cada vez mais suporte a alterações na chave de fragmentação sem exigir tempo de inatividade dos dados nem migrações complexas.

Vantagem: mais flexibilidade para atualizar estratégias de fragmentação conforme as cargas de trabalho forem evoluindo

Fragmentação combinada com bancos de dados sem servidor

Os bancos de dados sem servidor provisionam e gerenciam servidores de forma independente para cada fragmento. Eles também aumentam ou reduzem a capacidade conforme a demanda, com base em consultas acionadas por eventos.

Vantagem: redução na sobrecarga operacional

Fragmentação geográfica adaptável controlada por políticas

Os fluxos de trabalho automatizados de fragmentação distribuem automaticamente os dados entre fragmentos geográficos com base em regras de política específicas para cada região, incorporadas ao código. Vantagem: conformidade mais rápida com mudanças regulatórias e de privacidade

Saiba mais sobre computação em nuvem.

Perguntas frequentes

  • A fragmentação de bancos de dados é o processo de escalonamento horizontal de um grande banco de dados por vários servidores, cada um hospedando um fragmento com um subconjunto distinto dos dados gerais. A fragmentação é usada para lidar de forma eficiente com o aumento dos volumes de dados e do tráfego de usuários, distribuindo consultas e armazenamento entre várias máquinas, em vez de depender de um único servidor de grande porte.
  • Tanto a fragmentação quanto o particionamento otimizam as operações do banco de dados ao dividir um banco de dados grande em subconjuntos menores. Contudo, enquanto o particionamento divide os dados no mesmo servidor, a fragmentação distribui os dados por vários servidores. A replicação consiste em manter várias cópias do mesmo conjunto de dados em diferentes servidores para fins de redundância. 
  • Sim, a fragmentação do banco de dados melhora o desempenho e a escalabilidade do aplicativo. Ao distribuir dados e cargas de trabalho entre fragmentos, a fragmentação reduz os tempos de resposta da consulta e aumenta a tolerância a falhas. As organizações também podem escalar aplicativos horizontalmente A escolha das chaves de fragmentação e das estratégias de fragmentação é essencial para otimizar a fragmentação de dados.
  • Sim, o Azure e outras plataformas na nuvem oferecem suporte interno para a fragmentação do banco de dados. Por exemplo, o Banco de Dados SQL do Azure oferece várias ferramentas para otimizar o escalonamento do banco de dados, incluindo uma biblioteca de cliente que simplifica a criação e o gerenciamento de fragmentos.