gpt4 book ai didi

azure - 查询整个分区后,Azure 表存储性能急剧下降

转载 作者:行者123 更新时间:2023-12-03 00:43:34 25 4
gpt4 key购买 nike

我使用 Azure 表存储作为时间序列数据库。数据库不断扩展更多行(每个分区每秒大约 20 行)。每天我都会为当天的数据创建新的分区,以便所有分区都有相似的大小,并且不会变得太大。

到目前为止,一切都运行得完美无缺,当我想从特定分区检索数据时,获取 1000 个值永远不会超过 2.5 秒,平均需要 1 秒。

当我尝试查询分区的所有数据时,尽管事情变得非常非常慢,但在过程中间,每个查询将花费 30-40 秒来获取 1000 个值。

所以我取消了该过程,只是为了在较小的范围内重新启动它。但现在所有查询都花费太长时间。从一开始所有查询都需要 15-30 秒。这是否意味着数据以非有效的方式重新排列,这就是我看到性能急剧下降的原因?如果是的话有没有办法处理这样的重新安排?

最佳答案

我绝对会建议您查看 Jason 上面指出的链接。您没有给出有关如何生成分区键的太多细节,但从声音来看,您陷入了几种反模式。包括通过应用 Append(或 Prepend)以及单个分区中的实体过多。我建议您减少分区大小,并在分区键中添加哈希或随机前缀,这样它们就不会按字典顺序排列。

Azure 存储在后台遵循范围分区方案,因此即使您选择的分区键是唯一的,如果它们是连续的,它们也会落入同一范围,并可能由单个分区服务器提供服务,这会妨碍Azure 存储服务整体负载平衡和扩展存储请求的能力。

您应该考虑的另一个方面是如何读回实体,最好的建议是使用分区键和行键的点查询,最糟糕的是没有 PK 和 RK 的全表扫描,中间有分区由于您的分区大小,扫描在您的情况下性能也会很差。

关于azure - 查询整个分区后,Azure 表存储性能急剧下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36306026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com