Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este guia inclui as práticas recomendadas para soluções criadas usando a versão mais recente do SDK do Python para o Azure Cosmos DB para NoSQL. As práticas recomendadas incluídas aqui ajudam a melhorar a latência, melhorar a disponibilidade e aumentar o desempenho geral para suas soluções.
Configuração da conta
- Execute sempre que for possível seu aplicativo na mesma região do Azure da sua conta do Azure Cosmos DB para reduzir a latência. Habilite a replicação em mais de 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 contínua de disponibilidade de gravação durante todo o período de interrupção da região de gravação, pois o failover manual não pode ser realizado devido à ausência de conectividade com a 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.
Uso do SDK
- Sempre use a última versão disponível do SDK do Azure Cosmos DB para obter o desempenho ideal.
- Utilize uma única instância de
CosmosClientdurante toda a vida útil do seu aplicativo para melhorar o desempenho. - Defina a
preferred_locationsconfiguração no cliente cosmos. Durante falhas, 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 em sua lista de locais preferenciais. Para obter mais informações sobre a mecânica de failover regional, consulte a solução de problemas de disponibilidade. - Um erro transitório é um erro que tem uma causa subjacente que será resolvida por si só em breve. Aplicativos que se conectam ao banco de dados devem ser criados para esperar esses erros transitórios. Para lidar com eles, implemente a lógica de repetição no código, em vez de mostrá-los aos usuários como erros de aplicativo. O SDK tem lógica interna para lidar com essas falhas transitórias em solicitações de novas tentativas, como operações de leitura ou consulta. O SDK não pode tentar novamente as gravações em caso de falhas transitórias, pois as gravações não são idempotentes. O SDK permite que os usuários configurem a lógica de repetir para limitações. Para obter detalhes sobre quais erros para tentar novamente, visite aqui.
- Use o log do SDK para capturar informações de diagnóstico e solucionar problemas de latência.
Design de dados
- A carga da solicitação para uma operação especificada está diretamente correlacionada ao tamanho do documento. Recomendamos reduzir o tamanho dos seus documentos, pois as operações em documentos grandes custam mais do que 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 incluir ou excluir da indexação usando caminhos de indexação. Não deixe 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 do SDK.
Características do host
- Você poderá ter problemas de conectividade/disponibilidade devido à falta de recursos no computador cliente. Monitore o uso da CPU em nós que executam o cliente do Azure Cosmos DB e escale verticalmente/horizontalmente se o uso estiver elevado.
- Se usar uma máquina virtual, para executar seu aplicativo, habilite a Rede Acelerada na sua VM para ajudar com gargalos devido ao alto tráfego e reduzir a latência ou a tremulação da CPU. Talvez você também queira considerar o uso de uma máquina virtual topo de linha em que o uso máximo da CPU está abaixo de 70%.
- Por padrão, os resultados da consulta são retornados em blocos de 100 itens ou 4 MB, o limite que for 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óximas etapas
Para saber mais sobre dicas de desempenho para o SDK do Python, confira as dicas de desempenho para o SDK do Python do Azure Cosmos DB.
Para saber mais sobre como projetar seu aplicativo para escala e alto desempenho, consulte Particionamento e escala no Azure Cosmos DB.
Tentando fazer um planejamento de capacidade para uma migração para o Microsoft Azure Cosmos DB? Você pode usar informações sobre o seu cluster de banco de dados existente para planejamento de capacidade.
- Se você sabe apenas o número de vCores e servidores do cluster de banco de dados existente, leia sobre como estimar unidades de solicitação com vCores ou vCPUs
- Se souber as taxas de solicitação típicas da carga de trabalho do banco de dados atual, leia sobre como estimar unidades de solicitação usando o planejador de capacidade do Azure Cosmos DB