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.
Cosmos DB en Microsoft Fabric admite el rendimiento aprovisionado de escalabilidad automática. El aprovisionamiento de rendimiento con escalado automático es especialmente adecuado para cargas de trabajo críticas que tienen patrones de tráfico variables o impredecibles. El escalado automático en Cosmos DB en Microsoft Fabric escala las cargas de trabajo en función de la partición más activa. En el caso de las cargas de trabajo no uniformes que tienen patrones de carga de trabajo diferentes, este escalado puede provocar aumentos de escala innecesarios. El escalado automático dinámico es una mejora del escalado automático que se proporciona a lo largo y ancho del sistema, lo cual ayuda a escalar estas cargas de trabajo no uniformes de forma independiente, en función de su utilización, a nivel de partición. El escalado dinámico le permite ahorrar coste si a menudo experimenta particiones calientes.
Ventajas
Los contenedores de Cosmos DB en Microsoft Fabric configurados con rendimiento aprovisionado con escalabilidad automática tienen las siguientes ventajas:
Sencillo: El escalado automático elimina la complejidad de administrar el rendimiento o escalar manualmente la capacidad.
Escalable: Los contenedores escalan automáticamente el rendimiento aprovisionado según sea necesario. No hay ninguna interrupción en las aplicaciones cliente.
Instantáneo: Los contenedores se amplían instantáneamente cuando sea necesario. No hay ningún período de preparación cuando se requiere rendimiento adicional para aumentos repentinos.
Rentable: la escalabilidad automática ayuda a optimizar el uso de RU/s y el coste por uso mediante la reducción vertical cuando no está en uso. Solo paga por los recursos que necesitan las cargas de trabajo por hora.
Alta disponibilidad: Los contenedores que usan escalabilidad automática usan el mismo back-end de Azure Cosmos DB tolerante a errores y alta disponibilidad para garantizar la durabilidad de los datos y la alta disponibilidad.
Casos de uso
La escalabilidad automática en Cosmos DB puede ser beneficiosa en varias cargas de trabajo, especialmente las cargas de trabajo variables o impredecibles. Cuando las cargas de trabajo tienen picos de uso variables o imprevisibles, el escalado automático ayuda escalando hacia arriba y hacia abajo según el uso automáticamente. Algunos ejemplos son:
- Informes o cuadernos de Power BI ejecutados por los usuarios con patrones de uso imprevisibles.
- Cargas de trabajo de desarrollo y prueba usadas principalmente durante las horas de trabajo.
- Trabajos de Spark programados con operaciones o consultas que desea ejecutar durante períodos de inactividad.
- Aplicaciones de línea de negocio que ven el uso máximo varias veces al mes o año, etc.
La creación de una solución personalizada para estos problemas no solo requiere una cantidad enorme de tiempo, sino que también presenta complejidad en la configuración y el código de la aplicación. La escalabilidad automática permite los escenarios anteriores de forma integrada y elimina la necesidad de un escalado personalizado o manual de la capacidad.
Configurar el escalamiento automático del rendimiento en Cosmos DB en Microsoft Fabric
Los contenedores creados en Cosmos DB en Fabric se aprovisionan automáticamente con un rendimiento de 5000 RU/s escalable automáticamente cuando se crean en el portal de Fabric. El rendimiento de la escalabilidad automática puede leerse y actualizarse mediante el SDK de Cosmos DB. El rendimiento mínimo de escalado automático se puede establecer en 1000 RU/s con un máximo de 50000 RU/s. Este límite máximo se puede aumentar mediante un ticket de soporte.
Configuración del escalado automático mediante el SDK de Azure
Usa el SDK de Cosmos DB para establecer el rendimiento de escalado automático para la lectura y actualización en un contenedor de Cosmos DB en Microsoft Fabric.
Para obtener un ejemplo completo para establecer el rendimiento de Cosmos DB en un cuaderno de Fabric, consulte Operaciones de administración para Cosmos DB en Fabric.
database = client.get_database_client("<database-name>")
container = database.get_container_client("<container-name>")
# Get the current throughput on the container and increase it by 1000 RU/s
throughput_properties = await container.get_throughput()
autoscale_throughput = throughput_properties.auto_scale_max_throughput
print(print(f"Autoscale throughput: {autoscale_throughput}"))
new_throughput = autoscale_throughput + 1000
await container.replace_throughput(ThroughputProperties(auto_scale_max_throughput=new_throughput))
# Verify the updated throughput
updated_throughput_properties = await container.get_throughput()
print(f"Verified updated autoscale throughput: {updated_throughput_properties.auto_scale_max_throughput}")
const database = client.database('<database-name>');
const container = database.container('<container-name>');
// Get the current throughput on the container and increase it by 1000 RU/s
const { resource: throughputProperties } = await container.offer.read();
const autoscaleThroughput = throughputProperties?.autoscaleSettings?.maxThroughput;
console.log(`Autoscale throughput: ${autoscaleThroughput}`);
const newThroughput = autoscaleThroughput + 1000;
await container.offer.replace({
offerThroughput: undefined,
autoscaleSettings: {
maxThroughput: newThroughput
}
});
// Verify the updated throughput
const { resource: updatedThroughputProperties } = await container.offer.read();
console.log(`Verified updated autoscale throughput: ${updatedThroughputProperties?.autoscaleSettings?.maxThroughput}`);
Container container = client
.GetDatabase("<database-name>")
.GetContainer("<container-name>");
// Get the current throughput on the container and increase it by 1000 RU/s
ThroughputResponse throughputResponse = await container.ReadThroughputAsync();
int? autoscaleThroughput = throughputResponse.Resource.AutoscaleMaxThroughput;
Console.WriteLine($"Autoscale throughput: {autoscaleThroughput}");
int newThroughput = autoscaleThroughput.Value + 1000;
await container.ReplaceThroughputAsync(ThroughputProperties.CreateAutoscaleThroughput(newThroughput));
// Verify the updated throughput
ThroughputResponse updatedThroughputResponse = await container.ReadThroughputAsync();
Console.WriteLine($"Verified updated autoscale throughput: {updatedThroughputResponse.Resource.AutoscaleMaxThroughput}");