gpt4 book ai didi

azure - 在 Azure 表存储中设置 RowKey

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

我正在 Azure 表存储中存储一些日志。我已经确定了应该使用的 PartitionKey。但是,我无法确定应该使用什么作为 RowKey。如果我使用 Sql Server,我会使用自动递增整数。据我所知,Azure 表存储无法提供自动生成的 RowKey。我可以使用 GUID,但是,每个人似乎都警告不要使用 GUID。然而,我不确定我应该使用什么。

任何人都可以为我提供一个指针,告诉我应该使用什么作为存储日志数据的 RowKey?我见过以下语法(RowKey: {'_': '1'}),如下所示,但无法找出它的含义:

var task = { 
PartitionKey: {'_':'hometasks'},
RowKey: {'_': '1'}
};

谢谢!

最佳答案

您可以采取多种方法。一种这样的方法是 to store date/time value in ticks as RowKey 。这将帮助您获取特定时间范围内的日志数据。请记住,从RowKey开始是 String数据类型,您可能需要用零预先填充它,以便所有值都具有相同的长度。例如,

DateTime.UtcNow.Ticks.ToString("d20")

有了这个,您可以采取两种方法:

  1. 按时间顺序存储它们,如上例所示。
  2. 按时间倒序存储它们。这种方法的优点是最新的条目将始终添加到表的顶部。所以你可以只查询 PartitionKey 上的表并获取顶部“x”行,它们将是最新的。您将执行以下操作:

(DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks).ToString("d20")

您还在评论中提到 I expect the data sets to be quite large. 。我希望您没有使用单个 PartitionKey 。因为如果记录数量很大,并且全部放在同一个分区中,性能可能会受到影响。

关于azure - 在 Azure 表存储中设置 RowKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24466014/

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