gpt4 book ai didi

c# - 如何检索 Azure 表中的最新行?

转载 作者:行者123 更新时间:2023-12-03 04:32:36 24 4
gpt4 key购买 nike

我正在尝试检索在 Azure 自动创建的主要分钟指标表中创建的最新行。有没有什么方法可以在不扫描整个表的情况下做到这一点?分区键基本上是不同格式的时间戳。例如:

20150811T1250

但是,我无法知道最新的partitionkey是什么,所以我不能只按分区查询。此外,行键是无用的,因为所有行都具有相同的行键。我完全不知道如何做到这一点,尽管这似乎是一件非常基本的事情。有什么想法吗?

表中行的几个分区键的示例:

20150813T0623
20150813T0629
20150813T0632
20150813T0637
20150813T0641
20150813T0646
20150813T0650
20150813T0654

编辑:作为后续问题。有没有办法向后扫描表格?这将允许我只扫描第一行,因为那将是最新行。

最佳答案

在查询数据时,Azure 表提供的选择非常有限。鉴于您知道如何分配 PartitionKey(YYYYMMDDTHHmm 格式),一种可能的解决方案是从当前日期/时间(UTC 格式)减去当前日期/时间的一些偏移量进行查询,然后从那里开始查询。

例如,假设开始时间为 2015 年 12 月 3 日 00:00:00。您可以做的是尝试获取从 2015 年 12 月 2 日 23:00:00 到 2015 年 12 月 3 日 00:00:00 之间的数据,并查看是否返回任何记录。如果返回记录,您可以简单地获取结果集中的最后一个条目,这将是您的最新条目。如果没有找到记录,则向后移动 1 小时(即从 2015 年 12 月 2 日 22:00:00 到 2015 年 12 月 2 日 23:00:00)并再次获取记录并重复此操作,直到找到为止匹配结果。

另一个想法(虽然有点复杂)是创建另一个表并定期将数据从主表复制到这个新表。复制数据时,您需要做的是获取 PartitionKey 值,从中创建一个日期/时间对象,然后从 DateTime.MaxValue 中减去该值。计算此新值的刻度,并将其用作新实体的 PartitionKey(您需要将该刻度转换为字符串并进行一些字符串预填充,以便所有值具有相同的长度)。现在,最新条目将始终位于顶部。

关于c# - 如何检索 Azure 表中的最新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34056492/

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