Partição nos limites

Utilizar a criação de partições para contornar os limites de base de dados, rede e computação

Na cloud, todos os serviços têm limites na sua capacidade de dimensionamento. Os limites dos serviços do Azure estão documentados em Limites, quotas e restrições de subscrições e serviços do Azure. Os limites incluem o número de núcleos, o tamanho da base de dados, o débito de consulta e o débito de rede. Se o sistema aumentar significativamente, pode atingir um ou mais destes limites. Utilize a criação de partições para contornar estes limites.

Existem várias formas de criar partições num sistema, tais como:

  • Crie partições numa base de dados para evitar limites de tamanho da base de dados, E/S de dados ou número de sessões em simultâneo.

  • Crie partições num barramento de fila ou mensagens para evitar limites no número de pedidos ou de ligações simultâneas.

  • Crie partições numa aplicação Web do Serviço de Aplicações para evitar limites no número de instâncias por plano do Serviço de Aplicações.

É possível criar partições numa base de dados horizontalmente, verticalmente ou funcionalmente.

  • Na criação de partições horizontais, também denominada fragmentação, cada partição contém dados de um subconjunto do conjunto total de dados. As partições partilham o mesmo esquema de dados. Por exemplo, os clientes cujos nomes começam com A–M entram numa partição, N-Z noutra partição.

  • Na criação de partições verticais, cada partição contém um subconjunto dos campos dos itens no arquivo de dados. Por exemplo, coloque os campos acedidos frequentemente numa partição e os campos acedidos com menos frequência noutra.

  • Na criação de partições funcionais, os dados são particionados de acordo com a forma como são utilizados por cada contexto vinculado no sistema. Por exemplo, armazene os dados de faturas numa partição e os dados do inventário de produtos noutra. Os esquemas são independentes.

Para obter mais orientações, veja Criação de partições de dados.

Recomendações

Crie partições de diferentes partes da aplicação. As bases de dados são um candidato óbvio para a criação de partições, mas também deve considerar o armazenamento, a cache, as filas e as instâncias de computação.

Crie a chave de partição para evitar hotspots. Se criar partições numa base de dados mas uma fragmentação tiver a maioria dos pedidos, ainda resolveu o problema. Idealmente, a carga é distribuída uniformemente por todas as partições. Por exemplo, aplique um hash por ID de cliente e não na primeira letra do nome do cliente, uma vez que algumas letras são mais frequentes. Aplica-se o mesmo princípio à criação de partições numa fila de mensagens. Escolha uma chave de partição que origine uma distribuição uniforme de mensagens no conjunto de filas. Para obter mais informações, veja Fragmentação.

Crie partições em conformidade com os limites de subscrições e serviços do Azure. Os serviços e os componentes individuais têm limites, mas também existem limites para subscrições e grupos de recursos. Para aplicações muito grandes, pode ter de criar partições em conformidade com esses limites.

Crie partições em diferentes níveis. Considere um servidor de base de dados implementado numa VM. A VM tem um VHD que é suportado pelo Armazenamento do Azure. A conta de armazenamento pertence a uma subscrição do Azure. Tenha em atenção que cada passo na hierarquia tem limites. O servidor de base de dados pode ter um limite de conjuntos de ligações. As VMs têm limites de CPU e de rede. O armazenamento tem limites de IOPS. A subscrição tem limites no número de núcleos de VM. Geralmente, é mais fácil criar partições na parte inferior da hierarquia. Apenas as aplicações grandes devem precisar de partições ao nível da subscrição.