在yaml中定义宇宙合成分区键

在yaml中定义宇宙合成分区键,yaml,azure-cosmosdb,Yaml,Azure Cosmosdb,我正在使用yaml文件设置Azure Cosmos DB,目前我正在将分区密钥路径设置为/serialNumber。我现在想使用tenantId和serialNumber的合成分区键,但找不到任何关于如何在yaml中定义合成键的示例。有人能给我举个例子说明如何做到这一点吗 我的yaml是: az cosmosdb sql container create -g $resourceGroup -a $cosmosAccountName -d $databaseName -n $container

我正在使用yaml文件设置Azure Cosmos DB,目前我正在将分区密钥路径设置为/serialNumber。我现在想使用tenantId和serialNumber的合成分区键,但找不到任何关于如何在yaml中定义合成键的示例。有人能给我举个例子说明如何做到这一点吗

我的yaml是:

 az cosmosdb sql container create -g $resourceGroup -a $cosmosAccountName -d $databaseName -n $containerName `
        --partition-key-path "/serialNumber" | Out-Null ; Test-Exit
我正在保存的对象具有以下字段:

Guid tenantid;
string serialNumber;
List<Users> users;
Guid-tenantid;
字符串序列号;
列出用户名单;

根据Cosmos DB中的最佳实践,对于分区键,您应该选择一个可能具有许多不同值的属性,以便避免创建热分区等情况

如果该属性在您的数据中不可用,那么Cosmos DB团队建议创建一个
合成分区键
。当他们谈到合成分区键时,他们真正的意思是将存储在该分区键中的数据。您可以随意命名该分区键属性

以您的场景为例,您的数据如下所示:

{
    "tenantId": "some guid",
    "serialNumber": "some string",
    "users": [
        //Array of users
    ]
}
现在,如果您认为
tenantId
serialNumber
都不是分区键的好选择,那么您可以在文档中添加另一个属性(比如
\u partitionKey
),并将其值设置为
tenantId值+serialNumber值
。在这种情况下,
\u partitionKey
将是合成分区键

生成的文档将如下所示:

{
    "tenantId": "some guid",
    "serialNumber": "some string",
    "_partitionKey": "<tenantId value>_<serialNumber value>"
    "users": [
        //Array of users
    ]
}

有关合成分区键的更多信息,请参见此链接:。

您能否将分区键属性命名为
\u partitionKey
,并在保存值时,创建一个组合
tenantId
serialNumber
的字符串并保存该属性?@GauravMantri,如果这是应该做的,那我就这么做。似乎缺少c代码示例,只有大量json。请查看此链接是否有用:。
az cosmosdb sql container create -g $resourceGroup -a $cosmosAccountName -d $databaseName -n $containerName `
        --partition-key-path "/_partitionKey" | Out-Null ; Test-Exit