Partilhar via


Boas práticas para Python SDK em Azure Cosmos DB para NoSQL

Este guia inclui as melhores práticas para soluções construídas com a versão mais recente do SDK Python para Azure Cosmos DB para NoSQL. As melhores práticas aqui incluídas ajudam a melhorar a latência, a disponibilidade e a aumentar o desempenho global das suas soluções.

Configuração da conta

  • Certifique-se de executar seu aplicativo na mesma região do Azure que sua conta do Azure Cosmos DB, sempre que possível para reduzir a latência. Ative a replicação em 2+ regiões nas suas contas para melhor disponibilidade. Para cargas de trabalho de produção, ative o failover gerido pelo serviço. Na ausência desta configuração, a conta sofre perda de disponibilidade de escrita durante toda a duração da falha da região de escrita, pois o failover manual não consegue ter sucesso devido à falta de conectividade regional. Para mais informações sobre como adicionar múltiplas regiões usando o SDK Python, consulte o tutorial de distribuição global.

Utilização do SDK

  • Use sempre a versão mais recente do SDK do Azure Cosmos DB disponível para obter o melhor desempenho.
  • Use uma única instância de CosmosClient durante toda a vida útil da sua aplicação para melhor desempenho.
  • Defina a preferred_locations configuração no cliente cosmos. Durante os failovers, as operações de escrita são enviadas para a região de escrita atual e todas as leituras são enviadas para a primeira região dentro da sua lista de localizações preferidas. Para mais informações sobre mecânicas regionais de failover, consulte a resolução de problemas de disponibilidade.
  • Um erro transitório é um erro que tem uma causa subjacente que logo se resolve. Os aplicativos que se conectam ao seu banco de dados devem ser criados para esperar esses erros transitórios. Para manipulá-los, implemente a lógica de repetição em seu código em vez de apresentá-los aos usuários como erros de aplicativo. O SDK tem lógica interna para lidar com essas falhas transitórias em solicitações que podem ser repetidas, como operações de leitura ou consulta. O SDK não pode repetir tentativas de escrita para falhas transitórias, pois as escritas não são idempotentes. O SDK permite que os utilizadores configurem a lógica de repetição para limitações de taxa. Para detalhes sobre quais erros tentar novamente, visite o link aqui.
  • Use o registo do SDK para captar informação de diagnóstico e resolver problemas de latência.

Design de dados

  • A taxa de solicitação de uma operação especificada correlaciona-se diretamente com o tamanho do documento. Recomendamos reduzir o tamanho de seus documentos, pois as operações em documentos grandes custam mais do que as operações em documentos menores.
  • Alguns caracteres são restritos e não podem ser usados em alguns identificadores: '/', '\', '?', '#'. A recomendação geral é não usar caracteres especiais em identificadores como nome do banco de dados, nome da coleção, ID do item ou chave de partição para evitar qualquer comportamento inesperado.
  • A política de indexação do Azure Cosmos DB também permite especificar quais os caminhos dos documentos a incluir ou excluir da indexação usando caminhos de indexação. Certifique-se de excluir caminhos não utilizados da indexação para gravações mais rápidas. Para mais informações, consulte criar índices usando a amostra SDK.

Características do hospedeiro

  • Você pode ter problemas de conectividade/disponibilidade devido à falta de recursos na máquina cliente. Monitore a utilização da CPU em nós que executam o cliente do Azure Cosmos DB e aumente ou diminua a escala se o uso for alto.
  • Se estiver usando uma máquina virtual para executar seu aplicativo, habilite a Rede Acelerada em sua VM para ajudar com gargalos devido ao alto tráfego e reduzir a latência ou o desvio da CPU. Você também pode considerar o uso de uma máquina virtual mais avançada onde o uso máximo da CPU é inferior a 70%.
  • Por padrão, os resultados da consulta são retornados em blocos de 100 itens ou 4 MB, o limite atingido primeiro. Se uma consulta devolver mais de 100 itens, aumente o tamanho da página para reduzir o número de viagens de ida e volta necessárias. O consumo de memória aumenta à medida que o tamanho da página aumenta.

Próximos passos

Para saber mais sobre dicas de desempenho para Python SDK, consulte Dicas de Performance para Azure Cosmos DB Python SDK.

Para saber mais sobre como projetar seu aplicativo para dimensionamento e alto desempenho, consulte Particionamento e dimensionamento no Azure Cosmos DB.

Tentando fazer o planejamento de capacidade para uma migração para o Azure Cosmos DB? Você pode usar informações sobre seu cluster de banco de dados existente para planejamento de capacidade.