我在Azure表存储中存储了一些日志。我已经确定了我应该使用的PartitionKey。但是,我无法确定我应该为RowKey使用什么。如果我使用的是Sql Server,我会使用自动递增的整数。据我所知,拥有自动生成的RowKey不是Azure表存储的选项。我很好地使用GUID,但是,每个人似乎都警告不要使用GUID。然而,我不确定我应该使用什么。
任何人都可以为我提供一个指针,用于存储日志数据的RowKey吗?我已经看到了以下语法(RowKey: {'_': '1'}
),如下所示,但无法找出它的含义:
var task = {
PartitionKey: {'_':'hometasks'},
RowKey: {'_': '1'}
};
谢谢!
答案 0 :(得分:3)
您可以采取多种方法。其中一种方法是to store date/time value in ticks as RowKey
。这有助于您获取特定时间范围的日志数据。请记住,由于RowKey
属于String
数据类型,因此您可能需要使用零预填充它,以便所有值都具有相同的长度。例如,
DateTime.UtcNow.Ticks.ToString(" D20&#34)
有了这个,你可以采取两种方法:
PartitionKey
上的表格即可获得最高级别的' x'行和他们将是最新的。您将执行以下操作:(DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks).ToString(" d20")
您在评论中也提到I expect the data sets to be quite large.
。我希望你没有使用单PartitionKey
。因为如果记录数量非常大并且所有记录都放在同一个分区中,性能可能会受到影响。