如何通过查询获取 cosmosDB 中的数据库或容器大小?

Posted

技术标签:

【中文标题】如何通过查询获取 cosmosDB 中的数据库或容器大小?【英文标题】:how to get database or container size in cosmosDB with query? 【发布时间】:2021-12-20 02:10:23 【问题描述】:

我想检索容器中的项目数和容器的大小。 我可以通过以下查询接收容器中的项目数。

SELECT count(1) FROM c

回复:

[
    
        "$1": 3
    
]

有收货尺寸查询吗?

【问题讨论】:

【参考方案1】:

当您执行像Select * From Root 这样的普通查询时,有关容器的大致大小和项目数的信息会通过x-ms-resource-usage 响应标头公开。

这就是你的数据的样子:

documentSize=0;documentsSize=107;documentsCount=30;collectionSize=114;

您可以解析响应头并获取值。大小以 KB 为单位返回。所以在上面的例子中,文档的总大小是 107KB,集合的总大小是 114KB。

如果您使用的是 .Net SDK,您可以在 ResourceResponse 中获取此信息。您感兴趣的属性是DocumentUsage。我没有查看其他 SDK,但我很确定您会在那里找到类似的东西。

还有其他一些方法可以找到这些信息。更多详情请查看此链接:https://docs.microsoft.com/en-us/azure/cosmos-db/monitor-cosmos-db。

【讨论】:

以上是关于如何通过查询获取 cosmosDB 中的数据库或容器大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CosmosDB 中使用 Join 操作/子查询

如何从数据工厂中清除 CosmosDB?

CosmosDB MongoDB API:新查询被隐藏

Azure 数据工厂和 Cosmos DB

Azure CosmosDB (13) CosmosDB数据建模

SQL Server 同一查询中的多个计数 - CosmosDB