หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
Cosmos DB ใน Microsoft Fabric รองรับปริมาณงานที่เตรียมใช้งานโดยอัตโนมัติ ปริมาณการประมวลผลที่จัดเตรียมไว้ปรับขนาดอัตโนมัติเหมาะอย่างยิ่งสําหรับปริมาณงานที่สําคัญต่อภารกิจที่มีรูปแบบการรับส่งข้อมูลที่แปรผันหรือคาดเดาไม่ได้ การปรับขนาดอัตโนมัติใน Cosmos DB ใน Microsoft Fabric จะปรับขนาดปริมาณงานตามพาร์ติชันที่ใช้งานมากที่สุด สําหรับปริมาณงานที่ไม่สม่ําเสมอซึ่งมีรูปแบบปริมาณงานที่แตกต่างกัน การปรับขนาดอัตโนมัติแบบไดนามิกเป็นการปรับปรุงการปรับขนาดอัตโนมัติที่จัดเตรียมไว้ตลอด ซึ่งช่วยปรับขนาดปริมาณงานที่ไม่สม่ําเสมอดังกล่าวอย่างอิสระตามการใช้งานในระดับต่อพาร์ติชัน การปรับขนาดแบบไดนามิกช่วยให้คุณประหยัดค่าใช้จ่ายหากคุณพบพาร์ติชันร้อนบ่อยครั้ง
Benefits
คอนเทนเนอร์ Cosmos DB ใน Microsoft Fabric ที่กําหนดค่าด้วยปริมาณงานที่เตรียมใช้งานตามการปรับขนาดอัตโนมัติมีประโยชน์ดังต่อไปนี้:
ง่าย: การปรับขนาดอัตโนมัติช่วยขจัดความซับซ้อนในการจัดการปริมาณงานหรือการปรับขนาดความจุด้วยตนเอง
ปรับขนาดได้: คอนเทนเนอร์จะปรับขนาดปริมาณงานที่เตรียมใช้งานโดยอัตโนมัติตามต้องการ ไม่มีการหยุดชะงักของแอปพลิเคชันไคลเอ็นต์
ทันที: คอนเทนเนอร์สามารถขยายขนาด ได้ทันที เมื่อจําเป็น ไม่มีช่วงอุ่นเครื่องเมื่อต้องการปริมาณงานเพิ่มเติมสําหรับการเพิ่มขึ้นอย่างกะทันหัน
คุ้มค่า: การปรับขนาดอัตโนมัติช่วยเพิ่มประสิทธิภาพการใช้งาน RU/s และการใช้ต้นทุนของคุณโดยการลดขนาดเมื่อไม่ได้ใช้งาน คุณจ่ายสําหรับทรัพยากรที่ปริมาณงานของคุณต้องการเป็นรายชั่วโมงเท่านั้น
มีความพร้อมใช้งานสูง: คอนเทนเนอร์ที่ใช้การปรับขนาดอัตโนมัติใช้แบ็กเอนด์ Azure Cosmos DB ที่ทนทานต่อข้อผิดพลาดและพร้อมใช้งานสูงเหมือนกัน เพื่อให้มั่นใจถึงความคงทนของข้อมูลและความพร้อมใช้งานสูง
ใช้กรณี
การปรับขนาดอัตโนมัติใน Cosmos DB อาจเป็นประโยชน์กับปริมาณงานที่หลากหลาย โดยเฉพาะปริมาณงานที่แปรผันหรือคาดเดาไม่ได้ เมื่อปริมาณงานของคุณมีการใช้งานที่แปรผันหรือคาดเดาไม่ได้ การปรับขนาดอัตโนมัติจะช่วยโดยการปรับขนาดขึ้นและลงโดยอัตโนมัติตามการใช้งาน ตัวอย่าง ได้แก่ :
- รายงาน Power BI หรือสมุดบันทึกที่ดําเนินการโดยผู้ใช้ที่มีรูปแบบการใช้งานที่คาดเดาไม่ได้
- ปริมาณงานการพัฒนาและทดสอบที่ใช้ในช่วงเวลาทํางานเป็นหลัก
- งาน Spark ที่จัดกําหนดการไว้กับการดําเนินงาน หรือคิวรีที่คุณต้องการเรียกใช้ในช่วงเวลาที่ไม่ได้ใช้งาน
- แอปพลิเคชันทางธุรกิจที่เห็นการใช้งานสูงสุดสองสามครั้งต่อเดือนหรือปี และอื่น ๆ
การสร้างโซลูชันแบบกําหนดเองสําหรับปัญหาเหล่านี้ไม่เพียงแต่ต้องใช้เวลามากแต่ยังทําให้เกิดความซับซ้อนในการกําหนดค่าหรือโค้ดของแอปพลิเคชันของคุณด้วย การปรับขนาดอัตโนมัติจะเปิดใช้งานสถานการณ์ข้างต้นนอกกรอบและขจัดความจําเป็นในการปรับมาตราส่วนแบบกําหนดเองหรือด้วยตนเองของความจุ
กําหนดค่าปริมาณงานปรับขนาดอัตโนมัติใน Cosmos DB ใน Microsoft Fabric
คอนเทนเนอร์ที่สร้างขึ้นใน Cosmos DB ใน Fabric จะถูกจัดเตรียมโดยอัตโนมัติด้วยปริมาณการประมวลผลการปรับขนาดอัตโนมัติ 5000 RU/s เมื่อสร้างขึ้นในพอร์ทัล Fabric สามารถอ่านและอัปเดตปริมาณการประมวลผลการปรับขนาดอัตโนมัติได้โดยใช้ Cosmos DB SDK สามารถตั้งค่าปริมาณงานอัตโนมัติขั้นต่ําเป็น 1000 RU/s สูงสุด 50000 RU/s สูงสุดนี้สามารถเพิ่มได้ผ่านตั๋วสนับสนุน
กําหนดค่าการปรับขนาดอัตโนมัติโดยใช้ Azure SDK
ใช้ Cosmos DB SDK เพื่อตั้งค่าการอ่านและอัปเดตปริมาณงานการปรับขนาดอัตโนมัติบนคอนเทนเนอร์ใน Cosmos DB ใน Microsoft Fabric
สําหรับตัวอย่างที่สมบูรณ์สําหรับการตั้งค่าปริมาณงาน Cosmos DB ภายในโน้ตบุ๊ก Fabric โปรดดู การดําเนินการการจัดการสําหรับ Cosmos DB ใน 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}");