当前位置: 首页 > 知识库问答 >
问题:

Cosmos db以秒为单位存储和检索数千个文档

蓬意致
2023-03-14

我用适当的分区键在cosmos数据库中存储了数百万个文档。我需要检索500000个文档来进行一些计算,并在UI中显示输出,这应该在10秒内发生。这可能吗?我试过了,但用了将近一分钟。那么对于这种需求,这是正确的方法吗?

"id": "Latest_100_Sku1_1496188800",
    "PartitionKey": "Latest_100_Sku1
    "SnapshotType": 2,
    "AccountCode": "100",
    "SkuCode": "Sku1",
    "Date": "2017-05-31T00:00:00",
    "DateEpoch": 1496188800,
    "Body": "rVNBa4MwFP4v72xHElxbvYkbo4dBwXaX0UOw6ZRFIyaBFfG/7zlT0EkPrYUcku+9fO/7kvca"

一个文档的大小:825字节

Am使用autoscale 4000吞吐量

查询统计-我使用2个查询。

查询1-从c中选择*,其中({ids})中的c.id在这里我在查询选项中使用PartitionKey。

查询统计METRIC VALUE请求收费102.11 RUs显示结果1-100检索文档数更多信息200检索文档大小更多信息221672字节输出文档数更多信息200输出文档大小更多信息221972字节索引命中文档数更多信息200索引查找时间更多信息17.0499 ms文档加载时间更多信息1.59 ms查询引擎执行时间更多信息0.3401 ms系统功能执行时间更多信息0.060000000000000005ms用户定义的功能执行时间更多信息0 ms文档写入时间更多信息0.16 ms往返行程1

查询2——从c中选择*,其中c.PartitionKey在({keys})和c.DateEpoch中

查询统计METRIC VALUE请求收费226.32 RUs显示结果1-100检索文档数更多信息200检索文档大小更多信息176580字节输出文档数更多信息200输出文档大小更多信息176880字节索引命中文档数更多信息200索引查找时间更多信息88.31 ms文档加载时间更多信息4.2399000000000004ms查询引擎执行时间更多信息0.4701 ms系统功能执行时间更多信息0.060000000000000005ms用户定义的功能执行时间更多信息0 ms文档写入时间更多信息0.19 ms往返行程1

共有1个答案

郁灿
2023-03-14

查询#1看起来很好。查询#2很可能受益于DateEpoch上的复合索引。我不确定UDF是什么,但如果你要将日期转换为epoch,你想阅读一篇新的博客文章Azure Cosmos DB中的新日期和时间系统功能

总的来说,在1-2个查询中检索500K个文档来进行一些计算似乎是一个奇怪的用例。通常,大多数人会使用变更提要,使用物化视图模式预先计算值并将其持久化。根据您运行这两个查询的频率,这通常是更有效地使用计算资源。

 类似资料:
  • 问题内容: 有什么办法可以使时间戳记中的毫秒数变为或(或出于好奇而使毫秒数)? 是否有这样的事情: 或者,唯一的选择是使用从? 问题答案: 在MySQL中 以秒 为单位获取Unix时间戳: 详细信息:http : //dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix- timestamp 未经测试的

  • 我想得到的是: 是否可以强制excel将“30378”视为秒数而不是天数?我知道我可以把'00:00:30378'写进一个牢房--这是唯一的办法吗?

  • 问题内容: 目前,我正在记录东西,并且正在使用带有自定义的格式化程序: 我的问题是微秒为六位数。无论如何,是否需要吐出更少的数字,例如微秒的前三个数字? 问题答案: 最简单的方法是使用切片将微秒的最后三位数字切掉: 我强烈建议切碎。我曾经写过一些对时间戳进行四舍五入而不是四舍五入的记录代码,当四舍五入改变了最后一位时,我发现它实际上有点令人困惑。定时代码在某个时间戳记时停止运行,但是由于舍入的缘故

  • 问题内容: 有什么办法可以使它成为7.631000吗?我可以使用时间模块,但是我还需要将t1和t2变量用作DateTime对象。因此,如果有一种简便的方法可以用datettime进行操作,那就太好了。否则会看起来很丑: 问题答案:

  • 在我的应用程序中,我有一个绑定到button onclick事件的脚本,可以动态生成文本文件。这些文件不太大(约3000行),但数据流入可能很慢(有时需要30分钟才能捕获所有流式数据)。一旦这个过程完成,我需要存储这个文件,以便用户可以下载它。我还将有文本文件生成从以前的实例,这个点击事件,以及需要区分它们。 最好的方法是什么?我可以在数据库中存储这样大小的文本文件,然后检索它吗?我应该只存储一个

  • 我有一系列存储在特定标记标准中的文件,当这些文件组合在一起时,就构成了一整卷文本。文本有多种不同的语言,每个文件都是该语言的副本。 为了通过web应用程序存储、检索并向潜在的许多用户显示这些信息,我需要实现最合适的方法。目前我的思路是: 将文件转换为XML(标记语言的设计目的是使其易于实现),然后在用户想要查看该部分时加载相关文件。我使用的是Rails和Ember。js显示结果,因此(我认为)要求