Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta guía se incluyen los procedimientos recomendados para las soluciones creadas con la versión más reciente del SDK de Python para Azure Cosmos DB para NoSQL. Los procedimientos recomendados que se incluyen aquí ayudan a mejorar la latencia, mejorar la disponibilidad y aumentar el rendimiento general de las soluciones.
Configuración de la cuenta
Parámetros de configuración de la cuenta
| Parámetro | Predeterminado o restricción | Cuándo usar |
|---|---|---|
| Coubicación de regiones | Igual que la región de la aplicación | Reducción de la latencia |
| Replicación en varias regiones | Deshabilitado de manera predeterminada | Habilitar 2 o más regiones para la disponibilidad |
| Conmutación por error administrada por el servicio | Opcional | Habilitar para cargas de trabajo de producción |
from azure.cosmos import CosmosClient
client = CosmosClient(url, credential)
print(client.client_connection._global_endpoint_manager.write_endpoint)
# Expected: write endpoint resolves to configured write region
Para más información sobre cómo agregar varias regiones mediante el SDK de Python, consulte el tutorial de distribución global.
Uso del SDK
Parámetros de uso del SDK
| Parámetro | Predeterminado o restricción | Cuándo usar |
|---|---|---|
| Versión del SDK | Más reciente disponible | Siempre para obtener un rendimiento óptimo |
| Instancia de CosmosClient | Una por aplicación | Reutilización durante toda la vida útil de la aplicación |
| ubicaciones preferidas | Ninguno | Optimización de lecturas y conmutación por error |
client = CosmosClient(
url,
credential,
preferred_locations=["East US", "West US"]
)
print(client.client_connection._preferred_locations)
# Expected: ['East US', 'West US']
Un error transitorio es un error que tiene una causa subyacente que pronto se resuelve por él mismo. Las aplicaciones que se conectan a la base de datos deberían crearse de modo que contemplen esos errores transitorios. Para controlarlos, implemente una lógica de reintento en el código en lugar de mostrarlas a los usuarios como errores de aplicación. El SDK tiene lógica integrada para controlar estos errores transitorios en solicitudes que se pueden reintentar, como operaciones de lectura o consulta. El SDK no puede reintentar las escrituras para errores transitorios, ya que las escrituras no son idempotentes. El SDK permite a los usuarios configurar la lógica de reintento para las limitaciones. Para más información sobre los errores en los que se debe reintentar, consulte la guía de aplicación resiliente.
Use el registro del SDK para capturar información de diagnóstico y solucionar problemas de latencia.
Diseño de datos
Parámetros de diseño de datos
| Parámetro | Predeterminado o restricción | Cuándo usar |
|---|---|---|
| Tamaño del documento | N/A | Mantenerlo pequeño para reducir los costos de recursos compartidos (RU) |
| Caracteres de identificador | Sin caracteres especiales | Evitar un comportamiento inesperado |
| Rutas de indexación | Todas las rutas de acceso indexadas | Excluir rutas sin usar para escrituras más rápidas |
container_properties = {
"id": "items",
"indexingPolicy": {
"excludedPaths": [{"path": "/*"}]
}
}
print(container_properties["indexingPolicy"])
# Expected: excludedPaths configured
Para obtener más información, consulte Creación de índices mediante el ejemplo del SDK.
Características del host
Parámetros de características de host
| Parámetro | Predeterminado o restricción | Cuándo usar |
|---|---|---|
| Uso de CPU | <70% recomendado | Escalado vertical o horizontal si es alto |
| Redes aceleradas | Disabled | Habilitación en máquinas virtuales para un tráfico elevado |
| Tamaño de página de consulta | 100 elementos / 4 MB | Aumento para reducir los recorridos de ida y vuelta |
items = container.query_items(
query="SELECT * FROM c",
max_item_count=500
)
print("Page size set to 500")
# Expected: fewer round trips
Pasos siguientes
Para más información sobre las sugerencias de rendimiento para el SDK de Python, consulte Sugerencias de rendimiento para el SDK de Python de Azure Cosmos DB.
Para más información sobre cómo diseñar la aplicación para escalarla y obtener un alto rendimiento, consulte Partición y escalado en Azure Cosmos DB.
¿Está intentando hacer la planificación de capacidad para una migración a Azure Cosmos DB? Puede utilizar información sobre su clúster de bases de datos existente para la planificación de capacidad.
- Si lo único que sabe es el número de núcleos virtuales y servidores del clúster de bases de datos existente, consulte la información sobre el cálculo de unidades de solicitud mediante núcleos virtuales o CPU virtuales.
- Si conoce las tasas de solicitudes típicas de la carga de trabajo de la base de datos actual, obtenga información sobre el cálculo de unidades de solicitud mediante la herramienta de planeamiento de capacidad de Azure Cosmos DB.