Büyük bölüm anahtarıyla kapsayıcılar oluşturma
UYGULANANLAR: NoSQL
Azure Cosmos DB, verilerin yatay ölçeklendirmesini elde etmek için karma tabanlı bölümleme düzenini kullanır. 3 Mayıs 2019'da oluşturulan tüm Azure Cosmos DB kapsayıcıları, bölüm anahtarının ilk 101 baytını temel alarak karma hesaplayan bir karma işlevi kullanır. aynı ilk 101 bayta sahip birden çok bölüm anahtarı varsa, bu mantıksal bölümler hizmet tarafından aynı mantıksal bölüm olarak kabul edilir. Bu, bölüm boyutu kotasının yanlış olması, bölüm anahtarları arasında benzersiz dizinlerin yanlış uygulanması ve eşit olmayan depolama dağıtımı gibi sorunlara yol açabilir. Bu sorunu çözmek için büyük bölüm anahtarları kullanıma sunulmuştur. Azure Cosmos DB artık 2 KB'a kadar olan büyük bölüm anahtarlarını destekliyor.
Büyük bölüm anahtarları, karma işlevinin gelişmiş bir sürümü etkinleştirilerek desteklenir ve bu sürüm 2 KB'a kadar büyük bölüm anahtarlarından benzersiz bir karma oluşturabilir. En iyi uygulama olarak, bu özelliği desteklemeyen eski bir Azure Cosmos DB SDK'sı veya uygulaması için desteğe ihtiyacınız yoksa kapsayıcınızı her zaman büyük bölüm anahtarları desteğiyle yapılandırmanız önerilir.
Büyük bölüm anahtarı oluşturma (Azure portalı)
Azure portalı kullanılarak oluşturulan kapsayıcılar varsayılan olarak büyük bir bölüm anahtarı kullanır.
Büyük bölüm anahtarı oluşturma (PowerShell)
Büyük bölüm anahtarı desteğine sahip bir kapsayıcı oluşturmak için bkz.
Büyük bölüm anahtarı oluşturma (.NET SDK)
.NET SDK'sını kullanarak büyük bir bölüm anahtarına sahip bir kapsayıcı oluşturmak için özelliğini belirtin PartitionKeyDefinitionVersion.V2
. Aşağıdaki örnek, PartitionKeyDefinition nesnesi içinde Version özelliğinin nasıl belirtileceğini ve PartitionKeyDefinitionVersion.V2 olarak nasıl ayarlandığını gösterir.
Not
Varsayılan olarak, .NET SDK V2 kullanılarak oluşturulan tüm kapsayıcılar büyük bölüm anahtarlarını desteklemez. Varsayılan olarak, .NET SDK V3 kullanılarak oluşturulan tüm kapsayıcılar büyük bölüm anahtarlarını destekler.
await database.CreateContainerAsync(
new ContainerProperties(collectionName, $"/longpartitionkey")
{
PartitionKeyDefinitionVersion = PartitionKeyDefinitionVersion.V2,
})
Desteklenen SDK sürümleri
Büyük bölüm anahtarları, SDK'ların aşağıdaki en düşük sürümleriyle desteklenir:
SDK türü | En düşük sürüm |
---|---|
.NET | 1.18 |
Java eşitleme | 2.4.0 |
Java Async | 2.5.0 |
REST API | sürüm üst 2017-05-03 bilgisi kullanılarak x-ms-version daha yüksektir. |
Resource Manager şablonu | version 2 by using the property in the "version":2 partitionKey object. |
Şu anda Power BI ve Azure Logic Apps içinde büyük bölüm anahtarına sahip kapsayıcıları kullanamazsınız. Kapsayıcıları bu uygulamalardan büyük bir bölüm anahtarı olmadan kullanabilirsiniz.