我正在考虑使用分区键的时间戳来记录消息,以便始终保持它与第一个最新消息的顺序。使用独特的分区键会创建一个范围分区吗?
PartitionKey = String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks);
由于密钥不是每次都增加相同的模式,在这种情况下分区仍然会被分组在一个范围分区中吗?
这只是为了记录,不会有更新,只会插入新的,最终可能会删除旧的。要查询的主要属性是日期范围,用户和实体名称(它是在哪里发生的)。
我在你的实现中看到的问题是查询时间将增加你表中的每个条目,因为你将永远不得不进行全表扫描。如果你写了很多日志,它会变得非常缓慢......尝试对你的日志进行分组(例如:当天放置为PartitionKey,并将时间包含在RowKey中或使用user \ entityName作为PartitionKey等)。 Ps这个视频真的帮助我:http://www.microsoftpdc.com/2009/svc09; – 2014-10-09 17:40:24
让用户\ entityName困扰我,因为我们只能在这种情况下对用户进行部分搜索,我将如何仅使用entityName进行搜索? – 2014-10-10 07:40:13
这取决于,你需要找到一个优先事项。我的意思是,让我们说你这样做,如“EntityName_UserName”,你想找到所有的“AAAAA”EntityNames,所以你可以查询一个字符串大于或等于“AAAAA”和小于“AAAAB”...问题那么你将无法为UserName做同样的事情。 – 2014-10-10 07:52:23