Analiz deposu etkin bir kapsayıcı oluşturma

Tamamlandı

Azure Cosmos DB hesabında Azure Synapse Link'i etkinleştirdikten sonra analiz deposu desteğiyle bir kapsayıcı oluşturabilir veya güncelleştirebilirsiniz.

Analiz deposu, satır tabanlı işlem deposuyla aynı kapsayıcı içindeki sütun tabanlı bir depodur. Otomatik eşitleme işlemi, işlem deposundaki değişiklikleri analiz deposuyla eşitler; buradan işlem deposunda işlem yükü oluşmadan sorgulanabilir.

Analiz deposu şema türleri

İşlem deposundaki veriler analiz deposuna eşitlendiğinden şema, eşitlenen belgelerin yapısını yansıtacak şekilde dinamik olarak güncelleştirilir. Bu dinamik şema bakımının özel davranışı, Azure Cosmos DB hesabı için yapılandırılan analiz deposu şema türüne bağlıdır. İki tür şema gösterimi desteklenir:

  • İyi tanımlanmış: NoSQL hesabı için Azure Cosmos DB için varsayılan şema türü.
  • Tam uygunluk: MongoDB hesabı için Azure Cosmos DB için varsayılan (ve yalnızca desteklenen) şema türü.

Analiz deposu, işlem deposundan JSON verilerini alır ve sütun tabanlı bir yapıda düzenler. İyi tanımlanmış bir şemada, bir JSON alanının null olmayan ilk oluşumu bu alanın veri türünü belirler. Alanın atanan veri türüyle uyumlu olmayan sonraki oluşumları analiz deposuna alınmıyor.

Örneğin, aşağıdaki iki JSON belgesini göz önünde bulundurun:

{"productID": 123, "productName": "Widget"}
{"productID": "124", "productName": "Wotsit"}

İlk belge, productID alanının sayısal (tamsayı) bir değer olduğunu belirler. İkinci belgeyle karşılaşıldığında productID alanı bir dize değerine sahiptir ve bu nedenle analiz deposuna aktarılamaz. Belge ve alanının geri kalanı içeri aktarılır, ancak uyumsuz alan bırakılır. Aşağıdaki sütunlar analiz deposundaki verileri temsil ediyor:

productID Productname
123 Arabirim öğesi
Wotsit

Tam uygunluk şemasında, veri türü alanın her örneğine eklenir ve gerektiğinde yeni sütunlar oluşturulur; analiz deposunun, aşağıdaki tabloda gösterildiği gibi her biri farklı bir veri türüne sahip bir alanın birden çok örneğini içermesini sağlama:

productID.int32 productName.string productID.string
123 Arabirim öğesi
Wotsit 124

Dekont

Daha fazla bilgi için bkz . Azure Cosmos DB analiz deposu nedir?.

Kapsayıcıda analiz deposu desteğini etkinleştirme

Yeni bir kapsayıcı oluştururken veya mevcut bir kapsayıcı için analiz deposu desteğini etkinleştirebilirsiniz. Analiz deposu desteğini etkinleştirmek için Azure portalını veya azure CLI veya Azure PowerShell'i bir komut satırından veya betikte kullanabilirsiniz.

Azure portalını kullanma

Azure portalında yeni bir kapsayıcı oluştururken analiz deposu desteğini etkinleştirmek için burada gösterildiği gibi Analiz Deposu için Açık seçeneğini belirleyin:

Screenshot showing the Analytical Store option when creating a new container in the Azure portal.

Alternatif olarak, burada gösterildiği gibi Cosmos DB hesabınızın sayfasının Tümleştirmeler bölümündeki Azure Synapse Link sayfasında mevcut bir kapsayıcı için analiz deposu desteğini etkinleştirebilirsiniz:

Screenshot showing the Azure Synapse Link page in the Azure portal, with an existing container selected and the Enable Synapse Link on your container button enabled.

Azure CLI'yı kullanma

NoSQL için Azure Cosmos DB kapsayıcısında analiz deposu desteğini etkinleştirmek üzere Azure CLI'yı kullanmak için parametresiyle komutunu (yeni kapsayıcı oluşturmak için) veya az cosmosdb sql container update komutunu (mevcut bir kapsayıcıyı yapılandırmak için) çalıştırın az cosmosdb sql container create ve analiz verileri için bir bekletme süresi atayın--analytical-storage-ttl. -1 parametresinin belirtilmesi -analytical-storage-ttl analiz verilerinin kalıcı olarak saklanmasını sağlar. Örneğin, aşağıdaki komut analiz deposu desteğine sahip my-container adlı yeni bir kapsayıcı oluşturur.

az cosmosdb sql container create --resource-group my-rg --account-name my-cosmos-db --database-name my-db --name my-container --partition-key-path "/productID" --analytical-storage-ttl -1

MongoDB için Azure Cosmos DB hesabı için parametresiyle --analytical-storage-ttl veya az cosmosdb mongodb collection update komutunu kullanabilirsinizaz cosmosdb mongodb collection create. Apache Gremlin için Azure Cosmos DB hesabı için parametresiyle --analytical-storage-ttl veya az cosmosdb gremlin graph update komutunu kullanınaz cosmosdb gremlin graph create.

Azure PowerShell’i kullanma

NoSQL kapsayıcısı için Azure Cosmos DB'de analiz deposu desteğini etkinleştirmek üzere Azure PowerShell'i kullanmak için cmdlet'ini (yeni bir kapsayıcı oluşturmak için) veya Update-AzCosmosDBSqlContainer cmdlet'ini (mevcut bir kapsayıcıyı yapılandırmak için) parametresiyle çalıştırın New-AzCosmosDBSqlContainer ve analiz verileri için bir bekletme süresi atayın-AnalyticalStorageTtl. -1 parametresinin belirtilmesi -AnalyticalStorageTtl analiz verilerinin kalıcı olarak saklanmasını sağlar. Örneğin, aşağıdaki komut analiz deposu desteğine sahip my-container adlı yeni bir kapsayıcı oluşturur.

New-AzCosmosDBSqlContainer -ResourceGroupName "my-rg" -AccountName "my-cosmos-db" -DatabaseName "my-db" -Name "my-container" -PartitionKeyKind "hash" -PartitionKeyPath "/productID" -AnalyticalStorageTtl -1

MongoDB için Azure Cosmos DB API hesabı için parametresiyle veya Update-AzCosmosDBMongoDBCollection cmdlet'ini -AnalyticalStorageTtl kullanınNew-AzCosmosDBMongoDBCollection.

Analiz deposu desteğini etkinleştirmeyle ilgili dikkat edilmesi gerekenler

Analiz deposu desteği, kapsayıcı silinmeden devre dışı bırakılamaz. Analiz deposu TTL değerinin 0 veya null olarak ayarlanması, artık yeni öğeleri işlem deposundan eşitlemeyerek ve analiz deposundan eşitlenmiş öğeleri silerek analiz deposunu etkin bir şekilde devre dışı bırakır. Bu değeri 0 olarak ayarladıktan sonra kapsayıcıda analiz deposu desteğini yeniden etkinleştiremezsiniz.