Kapsayıcı ve veritabanlarına aktarım hızı sağlamaProvision throughput on containers and databases

Bir Azure Cosmos veritabanı, bir dizi kapsayıcıları için yönetim birimidir.An Azure Cosmos database is a unit of management for a set of containers. Bir veritabanı şemadan kapsayıcıların bir kümesinden oluşur.A database consists of a set of schema-agnostic containers. Bir Azure Cosmos kapsayıcı hem aktarım hızı ve depolama için ölçeklenebilirlik birimidir.An Azure Cosmos container is the unit of scalability for both throughput and storage. Bir kapsayıcı makineler bir Azure bölgesi içinde bir dizi yatay olarak bölümlenir ve Azure Cosmos hesabınızla ilişkili tüm Azure bölgelerine dağıtılır.A container is horizontally partitioned across a set of machines within an Azure region and is distributed across all Azure regions associated with your Azure Cosmos account.

Azure Cosmos DB, aktarım hızını iki ayrı şekilde sağlayabilirsiniz:With Azure Cosmos DB, you can provision throughput at two granularities:

  • Azure Cosmos kapsayıcılarıAzure Cosmos containers
  • Azure Cosmos veritabanlarıAzure Cosmos databases

Bir kapsayıcıda üretilen işi ayarlamaSet throughput on a container

Azure Cosmos kapsayıcısı üzerinde sağlanan aktarım hızı, o kapsayıcı için özel olarak ayrılmıştır.The throughput provisioned on an Azure Cosmos container is exclusively reserved for that container. Kapsayıcı, sağlanan aktarım hızı her zaman alır.The container receives the provisioned throughput all the time. Bir kapsayıcı sağlanan aktarım hızını finansal SLA'ları tarafından desteklenmektedir.The provisioned throughput on a container is financially backed by SLAs. Bir kapsayıcıda üretilen işi yapılandırma hakkında bilgi edinmek için bkz. Azure Cosmos kapsayıcısında Işleme sağlama.To learn how to configure throughput on a container, see Provision throughput on an Azure Cosmos container.

Bir kapsayıcıda sağlanan aktarım hızını ayarlamak en sık kullanılan seçenektir.Setting provisioned throughput on a container is the most frequently used option. Istek birimleri (ru)kullanarak herhangi bir miktarda aktarım hızı sağlayarak bir kapsayıcı için ölçek işleme esnek sağlayabilirsiniz.You can elastically scale throughput for a container by provisioning any amount of throughput by using Request Units (RUs).

Azure Cosmos kapsayıcısında sağlanan aktarım hızı kapsayıcının tüm mantıksal bölümlerine eşit olarak dağıtılır.Throughput provisioned on an Azure Cosmos container is uniformly distributed across all the logical partitions of the container. Mantıksal bölümler için üretilen işi seçmeli olarak belirtemezsiniz.You cannot selectively specify the throughput for logical partitions. Bir kapsayıcının bir veya daha fazla mantıksal bölümü fiziksel bölüm tarafından barındırıldığından, fiziksel bölümler yalnızca kapsayıcıya aittir ve kapsayıcıda sağlanan aktarım hızını destekler.Because one or more logical partitions of a container are hosted by a physical partition, the physical partitions belong exclusively to the container and support the throughput provisioned on the container.

Bir mantıksal bölümde çalışan iş yükü, bu mantıksal bölüme ayrılan aktarım hızına göre daha fazla tüketir, işlemlerinizin hızı sınırlı olacaktır.If the workload running on a logical partition consumes more than the throughput that was allocated to that logical partition, your operations get rate-limited. Oran sınırlaması gerçekleştiğinde, tüm kapsayıcı için sağlanan aktarım hızını artırabilir ya da işlemleri yeniden deneyebilirsiniz.When rate-limiting occurs, you can either increase the provisioned throughput for the entire container or retry the operations. Bölümleme hakkında daha fazla bilgi için bkz: mantıksal bölümler.For more information on partitioning, see Logical partitions.

Kapsayıcı için garantili performans istediğinizde, kapsayıcı ayrıntı düzeyinde aktarım hızı yapılandırmanızı öneririz.We recommend that you configure throughput at the container granularity when you want guaranteed performance for the container.

Aşağıdaki görüntüde bir fiziksel bölümün bir kapsayıcının bir veya daha fazla mantıksal bölümünü nasıl barındırdığı gösterilmektedir:The following image shows how a physical partition hosts one or more logical partitions of a container:

Fiziksel bölüm

Bir veritabanında üretilen işi ayarlamaSet throughput on a database

Azure Cosmos veritabanında üretilen iş sağladığınızda, aktarım hızı veritabanında tüm kapsayıcılar (paylaşılan veritabanı kapsayıcıları olarak adlandırılır) arasında paylaşılır.When you provision throughput on an Azure Cosmos database, the throughput is shared across all the containers (called shared database containers) in the database. Bir özel durum, veritabanındaki belirli kapsayıcılarda sağlanan bir üretilen işi belirtadınız.An exception is if you specified a provisioned throughput on specific containers in the database. Veritabanı düzeyinde sağlanan aktarım hızını kapsayıcı genelinde paylaşmak, bir makine kümesinde bir veritabanını barındırmakla benzerdir.Sharing the database-level provisioned throughput among its containers is analogous to hosting a database on a cluster of machines. Bir veritabanı içindeki tüm kapsayıcılar bir makinede kullanılabilir kaynakları paylaştığından, doğal olarak herhangi bir kapsayıcı üzerinde öngörülebilir bir performans almaz.Because all containers within a database share the resources available on a machine, you naturally do not get predictable performance on any specific container. Bir veritabanında sağlanan üretilen işi yapılandırma hakkında bilgi edinmek için bkz. Azure Cosmos veritabanında sağlanan aktarım hızını yapılandırma.To learn how to configure provisioned throughput on a database, see Configure provisioned throughput on an Azure Cosmos database.

Azure Cosmos veritabanında üretilen iş oluşturma, bu veritabanı için her zaman sağlanan aktarım hızını almanızı garanti eder.Setting throughput on an Azure Cosmos database guarantees that you receive the provisioned throughput for that database all the time. Veritabanı içindeki tüm kapsayıcılar sağlanan üretilen işi paylaştığından, Azure Cosmos DB söz konusu veritabanındaki belirli bir kapsayıcı için öngörülebilir bir işlem garantisi sağlamaz.Because all containers within the database share the provisioned throughput, Azure Cosmos DB doesn't provide any predictable throughput guarantees for a particular container in that database. Belirli bir kapsayıcı alabileceği aktarım hızı kısmı bağlıdır:The portion of the throughput that a specific container can receive is dependent on:

  • Kapsayıcı sayısı.The number of containers.
  • Çeşitli kapsayıcılar için bölüm anahtarlarının seçimi.The choice of partition keys for various containers.
  • İş yükü kapsayıcıların çeşitli mantıksal bölümler arasında dağıtımı.The distribution of the workload across various logical partitions of the containers.

Aktarım hızını birden çok kapsayıcı genelinde paylaşmak istediğinizde, ancak belirli bir kapsayıcıya üretilen işi ayırmak istemediğinizde bir veritabanında üretilen işi yapılandırmanızı öneririz.We recommend that you configure throughput on a database when you want to share the throughput across multiple containers, but don't want to dedicate the throughput to any particular container.

Aşağıdaki örneklerde veritabanı düzeyinde üretilen işi sağlamak için nereye tercih edildiği gösterilmektedir:The following examples demonstrate where it's preferred to provision throughput at the database level:

  • Bir kapsayıcı kümesi genelinde veritabanının sağlanan verimini paylaşmak çok kiracılı bir uygulama için yararlıdır.Sharing a database’s provisioned throughput across a set of containers is useful for a multitenant application. Her bir kullanıcı farklı bir Azure Cosmos kapsayıcı tarafından temsil edilebilir.Each user can be represented by a distinct Azure Cosmos container.

  • Bir sanal makine kümesinde veya şirket içi fiziksel sunuculardan Azure Cosmos DB için barındırılan MongoDB veya Cassandra gibi bir NoSQL veritabanını geçirdiğinizde, bir kapsayıcı kümesi genelinde bir veritabanının sağlanan aktarım hızını paylaşmanız yararlı olur.Sharing a database’s provisioned throughput across a set of containers is useful when you migrate a NoSQL database, such as MongoDB or Cassandra, hosted on a cluster of VMs or from on-premises physical servers to Azure Cosmos DB. Azure Cosmos veritabanınızda yapılandırılan üretilen iş üretimini, MongoDB veya Cassandra kümenizin işlem kapasitesinden daha fazla maliyetli, daha düşük maliyetli ve elastik bir eşdeğer olarak düşünün.Think of the provisioned throughput configured on your Azure Cosmos database as a logical equivalent, but more cost-effective and elastic, to that of the compute capacity of your MongoDB or Cassandra cluster.

Sağlanan aktarım hızı ile bir veritabanı içinde oluşturulan tüm kapsayıcılar bir bölüm anahtarıylaoluşturulmalıdır.All containers created inside a database with provisioned throughput must be created with a partition key. Belirli bir anda zaman, tüm mantıksal bölümler bu kapsayıcı, bir veritabanı içinde bir kapsayıcıya ayrılan aktarım hızı dağıtılır.At any given point of time, the throughput allocated to a container within a database is distributed across all the logical partitions of that container. Bir veritabanında yapılandırılmış sağlanan aktarım hızını paylaşan kapsayıcılara sahipseniz, üretilen işi belirli bir kapsayıcıya veya mantıksal bölüme seçmeli olarak uygulayamazsınız.When you have containers that share provisioned throughput configured on a database, you can't selectively apply the throughput to a specific container or a logical partition.

Mantıksal bir bölümdeki iş yükü, belirli bir mantıksal bölüme ayrılan aktarım hızına göre daha fazla tüketir, işlemlerinizin hızı sınırlıdır.If the workload on a logical partition consumes more than the throughput that's allocated to a specific logical partition, your operations are rate-limited. Oran sınırlaması gerçekleştiğinde, veritabanının tamamı için üretilen işi artırabilir veya işlemleri yeniden deneyebilirsiniz.When rate-limiting occurs, you can either increase the throughput for the entire database or retry the operations. Bölümleme hakkında daha fazla bilgi için bkz: mantıksal bölümler.For more information on partitioning, see Logical partitions.

Bir veritabanında sağlanan aktarım hızı, bu veritabanı içindeki kapsayıcılar tarafından paylaşılabilir.Throughput provisioned on a database can be shared by the containers within that database. En fazla 25 kapsayıcı, veritabanında sağlanan aktarım hızını paylaşabilir.A maximum of 25 containers can share the throughput provisioned on the database. 25 kapsayıcının ötesinde, bu veritabanı içinde oluşturulan her yeni kapsayıcı için veritabanında zaten kullanılabilir olan diğer koleksiyonlarla veritabanı aktarım hızının bir kısmı paylaşabilir.Beyond 25 containers, for every new container created within that database can share a portion of database throughput with other collections already available in the database. Paylaşılabilecek üretilen iş miktarı, veritabanında sağlanan kapsayıcıların sayısına bağlıdır.The amount of throughput that can be shared is dependent on the number of the containers provisioned in the database.

İş yükleriniz bir veritabanındaki tüm koleksiyonları silmeyi ve yeniden oluşturmayı içeriyorsa, boş veritabanını bırakıp koleksiyon oluşturmadan önce yeni bir veritabanı oluşturmanız önerilir.If your workloads involve deleting and recreating all the collections in a database, it is recommended that you drop the empty database and recreate a new database prior to collection creation.

Aşağıdaki görüntüde bir fiziksel bölümün, bir veritabanı içindeki farklı kapsayıcılara ait bir veya daha fazla mantıksal bölümü nasıl barındıragösterdiği gösterilmektedir:The following image shows how a physical partition can host one or more logical partitions that belong to different containers within a database:

Fiziksel bölüm

Bir veritabanında ve kapsayıcıda üretilen işi ayarlamaSet throughput on a database and a container

İki modeli birleştirebilirsiniz.You can combine the two models. Hem veritabanında hem de kapsayıcıda sağlama aktarımına izin verilir.Provisioning throughput on both the database and the container is allowed. Aşağıdaki örnek, bir Azure Cosmos veritabanı ve kapsayıcı aktarım hızına gösterilmektedir:The following example shows how to provision throughput on an Azure Cosmos database and a container:

  • "K" ru tarafından sağlanan iş hacmi ile Z adlı bir Azure Cosmos veritabanı oluşturabilirsiniz.You can create an Azure Cosmos database named Z with provisioned throughput of "K" RUs.

  • Sonra, veritabanı içinde A, B, C, Dve E adlı beş kapsayıcı oluşturun.Next, create five containers named A, B, C, D, and E within the database. B kapsayıcısını oluştururken, Bu kapsayıcı seçeneği için adanmış üretilen iş üretimini sağlamayı etkinleştirdiğinizden emin olun ve bu kapsayıcıda "P" ru sağlanan aktarım hızını açık olarak yapılandırın.When creating container B, make sure to enable Provision dedicated throughput for this container option and explicitly configure "P" RUs of provisioned throughput on this container. Yalnızca veritabanı ve kapsayıcı oluştururken paylaşılan ve ayrılmış iş üretimini yapılandırabileceğinizi unutmayın.Note that you can configure shared and dedicated throughput only when creating the database and container.

    Aktarım hızını kapsayıcı düzeyinde ayarlama

  • "K" Rus verimlilik, A, C, Dve Edört kapsayıcı genelinde paylaşılır. Bir, C, Dveya E için kullanılabilir aktarım hızı miktarı farklılık gösterir.The "K" RUs throughput is shared across the four containers A, C, D, and E. The exact amount of throughput available to A, C, D, or E varies. Her bir kapsayıcının verimlilik için SLA 'lar yoktur.There are no SLAs for each individual container’s throughput.

  • B adlı kapsayıcı, "P" ru aktarım hızını her zaman almak için garanti edilir.The container named B is guaranteed to get the "P" RUs throughput all the time. SLA 'Lar tarafından desteklenir.It's backed by SLAs.

Not

Sağlanan aktarım hızı olan bir kapsayıcı, paylaşılan veritabanı kapsayıcısına dönüştürülemez.A container with provisioned throughput cannot be converted to shared database container. Bunun tersine, paylaşılan bir veritabanı kapsayıcısının ayrılmış bir işleme sahip olacak şekilde dönüştürülemez.Conversely a shared database container cannot be converted to have a dedicated throughput.

Bir veritabanında veya kapsayıcıda üretilen işi güncelleştirmeUpdate throughput on a database or a container

Bir Azure Cosmos kapsayıcısı veya veritabanı oluşturduktan sonra, sağlanan aktarım hızını güncelleştirebilirsiniz.After you create an Azure Cosmos container or a database, you can update the provisioned throughput. Veritabanı veya kapsayıcıda yapılandırabileceğiniz en fazla sağlanan aktarım hızı için bir sınır yoktur.There is no limit on the maximum provisioned throughput that you can configure on the database or the container. Sağlanan en düşük verimlilik aşağıdaki etkenlere bağlıdır:The minimum provisioned throughput depends on the following factors:

  • Kapsayıcıda depoladığınız en büyük veri boyutuThe maximum data size that you ever store in the container
  • Kapsayıcıda sağladığınız en fazla aktarım hızıThe maximum throughput that you ever provision on the container
  • Paylaşılan aktarım hızı ile bir veritabanında oluşturduğunuz en fazla Azure Cosmos kapsayıcısı sayısı.The maximum number of Azure Cosmos containers that you ever create in a database with shared throughput.

SDK 'Ları kullanarak bir kapsayıcının veya veritabanının en düşük aktarım hızını alabilir veya Azure portal değeri görüntüleyebilirsiniz.You can retrieve the minimum throughput of a container or a database programmatically by using the SDKs or view the value in the Azure portal. .NET SDK kullanırken Documentclient. Replaceoffsilinebilir Sync yöntemi sağlanan aktarım hızı değerini ölçeklendirmenize olanak tanır.When using the .NET SDK, the DocumentClient.ReplaceOfferAsync method allows you to scale the provisioned throughput value. Java SDK 'sını kullanırken, Requestoptions. Setofferüretilen Iş verimlilik yöntemi sağlanan aktarım hızı değerini ölçeklendirmenize olanak tanır.When using the Java SDK, the RequestOptions.setOfferThroughput method allows you to scale the provisioned throughput value.

.NET SDK kullanırken Documentclient. Readoffsilinebilir Sync yöntemi, bir kapsayıcının veya bir veritabanının en düşük verimini elde etmenizi sağlar.When using the .NET SDK, the DocumentClient.ReadOfferAsync method allows you to retrieve the minimum throughput of a container or a database.

Bir kapsayıcının veya veritabanının sağlanan verimini istediğiniz zaman ölçeklendirebilirsiniz.You can scale the provisioned throughput of a container or a database at any time. Aktarım hızını artırmak için bir ölçeklendirme işlemi gerçekleştirildiğinde, sistem görevlerinin gerekli kaynakları sağlaması nedeniyle daha uzun zaman alabilir.When a scale operation is performed to increase the throughput, it can take longer time due to the system tasks to provision the required resources. Azure portal veya SDK 'Ları kullanarak program aracılığıyla ölçek işleminin durumunu kontrol edebilirsiniz.You can check the status of the scale operation in Azure portal or programmatically using the SDKs. .NET SDK kullanırken, DocumentClient.ReadOfferAsync yöntemini kullanarak ölçeklendirme işleminin durumunu alabilirsiniz.When using the .Net SDK, you can get the status of the scale operation by using the DocumentClient.ReadOfferAsync method.

Modellerin karşılaştırmasıComparison of models

ParametreParameter Bir veritabanı üzerinde sağlanan aktarım hızıThroughput provisioned on a database Bir kapsayıcı sağlanan aktarım hızıThroughput provisioned on a container
En az ruMinimum RUs 400 (ilk dört kapsayıcıdan sonra, her ek kapsayıcı için en az 100 ru/saniye gerekir.)400 (After the first four containers, each additional container requires a minimum of 100 RUs per second.) 400400
Kapsayıcı başına en az ruMinimum RUs per container 100100 400400
En fazla ruMaximum RUs Sınırsız, veritabanında.Unlimited, on the database. Sınırsız, kapsayıcıda.Unlimited, on the container.
RUs atanmış veya belirli bir kapsayıcıya kullanılabilirRUs assigned or available to a specific container Hiçbir garanti eder.No guarantees. Belirli bir kapsayıcıya atanan RUs özelliklere bağlıdır.RUs assigned to a given container depend on the properties. Özellikler, aktarım hızını, iş yükünün dağıtımını ve kapsayıcı sayısını paylaşan kapsayıcıların bölüm anahtarları seçeneği olabilir.Properties can be the choice of partition keys of containers that share the throughput, the distribution of the workload, and the number of containers. Kapsayıcı üzerinde yapılandırılmış tüm RU kapsayıcı için özel olarak ayrılmıştır.All the RUs configured on the container are exclusively reserved for the container.
Bir kapsayıcı için en fazla depolamaMaximum storage for a container Sayısız.Unlimited. Sayısız.Unlimited.
Bir kapsayıcının mantıksal bölüm başına en fazla aktarım hızıMaximum throughput per logical partition of a container 10 bin ru10K RUs 10 bin ru10K RUs
Bir kapsayıcının mantıksal bölüm başına en fazla depolama (veri + dizin)Maximum storage (data + index) per logical partition of a container 10 GB10 GB 10 GB10 GB

Sonraki adımlarNext steps