Büyük bölüm anahtarıyla kapsayıcılar oluşturma

ŞUNUN IÇIN GEÇERLIDIR: NoSQL

Azure Cosmos DB, verilerin yatay ölçeklendirmesini elde etmek için karma tabanlı bölümleme şemasını 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 karmayı 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 depolama alanının eşit olmayan 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 2 KB'a kadar büyük bölüm anahtarlarından benzersiz bir karma oluşturabilen gelişmiş bir sürümü etkinleştirilerek desteklenir. 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 bir bölüm anahtarı oluşturma (Azure portal)

Büyük bir bölüm anahtarı oluşturmak için, Azure portal kullanarak yeni bir kapsayıcı oluşturduğunuzda Bölüm anahtarım 101 bayttan büyük seçeneğini işaretleyin. Büyük bölüm anahtarlarına ihtiyacınız yoksa veya 1.18'den eski SDK'lar sürümünde çalışan uygulamalarınız varsa onay kutusunun seçimini kaldırın.

Azure portal kullanarak büyük bölüm anahtarları oluşturma

Büyük bir 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 bir bölüm anahtarı (.NET SDK) oluşturma

.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 örnekte PartitionKeyDefinition nesnesi içinde Version özelliğinin nasıl belirtilip PartitionKeyDefinitionVersion.V2 olarak ayarlanacağı gösterilmektedir.

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 istek üst bilgisini kullanarak sürümünden x-ms-version daha 2017-05-03 yüksek bir sürüm.
Resource Manager şablonu nesnesinde "version":2partitionKey özelliğini kullanarak sürüm 2.

Ş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.

Sonraki adımlar