توفير معدل نقل التحجيم التلقائي على قاعدة البيانات أو الحاوية في Azure Cosmos DB - واجهة برمجة التطبيقات ل NoSQL

ينطبق على: NoSQL

توضح هذه المقالة كيفية توفير معدل نقل التحجيم التلقائي على قاعدة بيانات أو حاوية (مجموعة أو رسم بياني أو جدول) في Azure Cosmos DB ل NoSQL. يمكنك توفير تحجيم تلقائي يدوي في حاوية واحدة، أو توفير معدل نقل مقياس تلقائي على قاعدة بيانات ومشاركتها بين جميع الحاويات في قاعدة البيانات.

إذا كنت تستخدم واجهة برمجة تطبيقات مختلفة، فشاهد API ل MongoDB، وواجهة برمجة التطبيقات ل Cassandra، وواجهة برمجة التطبيقات لمقالات Gremlin لتوفير معدل النقل.

مدخل Microsoft Azure

بناء قاعدة بيانات جديدة أو حاوية مع مقياس تلقائي

  1. تسجيل الدخول إلى مدخل Microsoft Azure أو مستكشف Azure Cosmos DB .

  2. انتقل إلى حساب Azure Cosmos DB الخاص بك وافتحمستكشف البيانات.

  3. حدد New Container. أدخل اسماً لقاعدة البيانات، والحاوية، ومفتاح القسم. ضمن قاعدة البيانات أو معدل نقل الحاوية، حدد الخيار Autoscale، وعيِّن الحد الأقصى للإنتاجية (RU/s) الذي تريد قاعدة البيانات أو الحاوية توسيع نطاقه.

    إنشاء حاوية وتكوين معدل نقل البيانات تم توفيرها للمقياس التلقائي

  4. حدد "OK".

لتوفير مقياس تلقائي على قاعدة بيانات الإنتاجية المشتركة، حدد الخيار توفير معدل نقل قاعدة البيانات عند إنشاء قاعدة بيانات جديدة.

تمكين القياس التلقائي في قاعدة البيانات أو الحاوية الموجودة

  1. تسجيل الدخول إلى مدخل Microsoft Azure أو مستكشف Azure Cosmos DB .

  2. انتقل إلى حساب Azure Cosmos DB الخاص بك وافتحمستكشف البيانات.

  3. حدد Scale and Settings لحاويتك، أو Scale لقاعدة البيانات.

  4. ضمن مقياس، حدد خيار Autoscale وSave.

    تمكين المقياس التلقائي على حاوية موجودة

ملاحظة

عند تمكين التدرج التلقائي في قاعدة بيانات أو حاوية موجودة، يتم تحديد قيمة البداية لـ RU/s MAX بواسطة النظام، بناءً على إعدادات معدل النقل الحالي التي تم توفيرها يدويا. بعد اكتمال العملية، يمكنك تغيير الحد الأقصى لـ RU/s إذا لزم الأمر ذلك. تعلم المزيد.

نماذج Azure Cosmos DB v3NET.

استخدم الإصدار 3.9 أو أعلى من Azure Cosmos DB .NET SDK لواجهة برمجة التطبيقات ل NoSQL لإدارة موارد التحجيم التلقائي.

هام

يمكنك استخدام NET. SDK لإنشاء موارد جديدة للتدرج التلقائي. لا يعتمد SDK الترحيل بين معدل النقل التلقائي والمقياس (اليدوي). سيناريو الترحيل معتمد حالياً فيمدخل Microsoft Azure وCLI وPowerShell فقط.

بناء قاعدة بيانات مع معدل النقل المشترك

// Create instance of CosmosClient
CosmosClient cosmosClient = new CosmosClient(Endpoint, PrimaryKey);
 
// Autoscale throughput settings
ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.CreateAutoscaleThroughput(1000); //Set autoscale max RU/s

//Create the database with autoscale enabled
database = await cosmosClient.CreateDatabaseAsync(DatabaseName, throughputProperties: autoscaleThroughputProperties);

إنشاء حاوية ذات معدل نقل مخصص

// Get reference to database that container will be created in
Database database = await cosmosClient.GetDatabase("DatabaseName");

// Container and autoscale throughput settings
ContainerProperties autoscaleContainerProperties = new ContainerProperties("ContainerName", "/partitionKey");
ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.CreateAutoscaleThroughput(1000); //Set autoscale max RU/s

// Create the container with autoscale enabled
container = await database.CreateContainerAsync(autoscaleContainerProperties, autoscaleThroughputProperties);

اقرأ معدل النقل الحالي (RU/s)

// Get a reference to the resource
Container container = cosmosClient.GetDatabase("DatabaseName").GetContainer("ContainerName");

// Read the throughput on a resource
ThroughputProperties autoscaleContainerThroughput = await container.ReadThroughputAsync(requestOptions: null); 

// The autoscale max throughput (RU/s) of the resource
int? autoscaleMaxThroughput = autoscaleContainerThroughput.AutoscaleMaxThroughput;

// The throughput (RU/s) the resource is currently scaled to
int? currentThroughput = autoscaleContainerThroughput.Throughput;

تغيير الحد الأقصى لمعدل النقل للمقياس التلقائي (RU/s)

// Change the autoscale max throughput (RU/s)
await container.ReplaceThroughputAsync(ThroughputProperties.CreateAutoscaleThroughput(newAutoscaleMaxThroughput));

Azure Cosmos DB Java SDK V4

يمكنك استخدام الإصدار 4.0 أو أعلى من Azure Cosmos DB Java SDK لواجهة برمجة التطبيقات ل NoSQL لإدارة موارد التحجيم التلقائي.

هام

يمكنك استخدام Java SDK لإنشاء موارد جديدة للتدرج التلقائي. لا يعتمد SDK الترحيل بين معدل النقل التلقائي والمقياس (اليدوي). سيناريو الترحيل معتمد حالياً فيمدخل Microsoft Azure وCLI وPowerShell فقط.

بناء قاعدة بيانات مع معدل النقل المشترك

// Create instance of CosmosClient
CosmosAsyncClient client = new CosmosClientBuilder()
    .setEndpoint(HOST)
    .setKey(PRIMARYKEY)
    .setConnectionPolicy(CONNECTIONPOLICY)
    .buildAsyncClient();

// Autoscale throughput settings
ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.createAutoscaledThroughput(1000); //Set autoscale max RU/s

//Create the database with autoscale enabled
CosmosAsyncDatabase database = client.createDatabase(databaseName, autoscaleThroughputProperties).block().getDatabase();

إنشاء حاوية ذات معدل نقل مخصص

// Get reference to database that container will be created in
CosmosAsyncDatabase database = client.createDatabase("DatabaseName").block().getDatabase();

// Container and autoscale throughput settings
CosmosContainerProperties autoscaleContainerProperties = new CosmosContainerProperties("ContainerName", "/partitionKey");
ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.createAutoscaledThroughput(1000); //Set autoscale max RU/s

// Create the container with autoscale enabled
CosmosAsyncContainer container = database.createContainer(autoscaleContainerProperties, autoscaleThroughputProperties, new CosmosContainerRequestOptions())
                                .block()
                                .getContainer();

اقرأ معدل النقل الحالي (RU/s)

// Get a reference to the resource
CosmosAsyncContainer container = client.getDatabase("DatabaseName").getContainer("ContainerName");

// Read the throughput on a resource
ThroughputProperties autoscaleContainerThroughput = container.readThroughput().block().getProperties();

// The autoscale max throughput (RU/s) of the resource
int autoscaleMaxThroughput = autoscaleContainerThroughput.getAutoscaleMaxThroughput();

// The throughput (RU/s) the resource is currently scaled to
int currentThroughput = autoscaleContainerThroughput.Throughput;

تغيير الحد الأقصى لمعدل النقل للمقياس التلقائي (RU/s)

// Change the autoscale max throughput (RU/s)
container.replaceThroughput(ThroughputProperties.createAutoscaledThroughput(newAutoscaleMaxThroughput)).block();

Azure Resource Manager

يمكن استخدام قوالب Azure Resource Manager لتوفير معدل نقل القياس التلقائي على قاعدة البيانات أو الموارد على مستوى الحاوية لجميع واجهات برمجة تطبيقات Azure Cosmos DB. راجع قوالب Azure Resource Manager لـ Azure Cosmos DB للحصول على نماذج. حسب التصميم، لا يمكن استخدام قوالب Azure Resource Manager للترحيل بين معدل النقل المتوفر والمقياس التلقائي على مورد موجود.

Azure CLI

يمكن استخدام Azure CLI لتوفير معدل نقل القياس التلقائي في قاعدة بيانات جديدة أو مورد على مستوى الحاوية لجميع تطبيقات Azure APIs Cosmos DB، أو تمكين القياس التلقائي على مورد موجود. للحصول على عينات، راجععينات Azure CLI لـ Azure Cosmos DB.

Azure PowerShell

يمكن استخدام Azure PowerShell لتوفير معدل نقل القياس التلقائي على قاعدة بيانات جديدة أو مورد على مستوى الحاوية لجميع واجهات برمجة تطبيقات Azure Cosmos DB، أو تمكين القياس التلقائي على مورد موجود. للحصول على عينات، راجععينات Azure PowerShell لـ Azure Cosmos DB.

الخطوات التالية