Partilhar via


Práticas recomendadas para Python SDK no Azure Cosmos DB para NoSQL

APLICA-SE A: NoSQL

Este guia inclui práticas recomendadas para soluções criadas usando a versão mais recente do SDK do Python para Azure Cosmos DB para NoSQL. As práticas recomendadas incluídas aqui ajudam a melhorar a latência, a disponibilidade e o desempenho geral de suas soluções.

Account configuration (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. Habilite a replicação em 2+ regiões em suas contas para obter a melhor disponibilidade. Para cargas de trabalho de produção, habilite o failover gerenciado pelo serviço. Na ausência dessa configuração, a conta sofre perda de disponibilidade de gravação durante toda a duração da interrupção da região de gravação, pois o failover manual não pode ser bem-sucedido devido à falta de conectividade da região. Para obter mais informações sobre como adicionar várias regiões usando o SDK do 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 do CosmosClient durante o tempo de vida do seu aplicativo para obter um melhor desempenho.
  • Defina a preferred_locationsconfiguração no cliente cosmos. Durante os failovers, as operações de gravação são enviadas para a região de gravação atual e todas as leituras são enviadas para a primeira região dentro da sua lista de locais preferidos. Para obter mais informações sobre a mecânica de failover regional, consulte Solução de problemas de disponibilidade.
  • Um erro transitório é um erro que tem uma causa subjacente que logo se resolve. As aplicações que se ligam à base de dados devem ser criadas para esperar estes 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 gravações para falhas transitórias, pois as gravações não são idempotentes. O SDK permite que os usuários configurem a lógica de repetição para limitações. Para obter detalhes sobre quais erros tentar novamente, visite aqui.
  • Use o log do SDK para capturar informações de diagnóstico e solucionar problemas de latência.

Desenho de dados

  • A cobrança de solicitação de uma operação especificada está diretamente correlacionada ao 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 caminhos de documento devem ser incluídos ou excluídos 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 obter mais informações, consulte a criação de índices usando o exemplo 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 retornar 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 o SDK do Python, consulte Dicas de desempenho para o SDK do Python do Azure Cosmos DB.

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.