是否可以以编程方式查询 CosmosDB(Core/SQL API)中给定分区的大小,或者理想情况下查询容器中所有分区及其大小的列表? 我正在使用 .NET SDK。
我正在考虑一种策略,当“主”分区接近 20GB 时,自动将较旧的数据归档到存档分区,以避免达到限制
我认为使用 Cosmos DB .Net SDK 不会给你这个答案。您将需要使用 Azure Monitoring SDK 来获取此信息。本质上,您将使用以下 Kusto 查询来获取信息:
CDBPartitionKeyStatistics
// Get the latest storage size for each logical partition key value
| summarize arg_max(TimeGenerated, *) by AccountName, DatabaseName, CollectionName, _ResourceId, PartitionKey
| extend utilizationOf20GBLogicalPartition = SizeKb / (20.0 * 1024.0 * 1024.0) // Current storage / 20GB
| project TimeGenerated, AccountName, DatabaseName, CollectionName, _ResourceId, PartitionKey, SizeKb, utilizationOf20GBLogicalPartition
以上查询取自此处:https://learn.microsoft.com/en-us/azure/cosmos-db/how-to-alert-on-逻辑分区-key-storage-size