我当前正在Azure表中跟踪API调用元数据,其中PartitionKey
为UserId
,RowKey
为随机Guid
。这有助于我查询属于特定用户的记录。但是,我需要定期将数据迁移到分析服务,以获取有关API调用频率,平均响应时间等的信息。我需要提出一种更好的PartitionKey
策略来做到这一点。
这些是我正在考虑的PartitionKey
选项:
1)将当前UTC时间向下舍入到最接近的分钟并将其转换为刻度。这使我无法使用时间间隔定期下载数据,但无法有效地查找与特定用户相关联的数据。] >
2)使用由{ticks} _ {userId}组成的合成密钥。
是否可以执行诸如Where(m => m.PartitionKey.Contains(ticks))
或Where(m => m.PartitionKey.Contains(userId))
之类的过滤查询?如果是这样,这是一种可扩展的方法吗?3)保存两个记录(一个带有刻度线,另一个带有userId作为分区键)。
如果采用这种方法,我如何确保在没有任何方法的情况下始终保存两个记录。强制执行原子交易?对我来说,目前最重要的是按时间对记录进行排序。因此,我主要考虑更改逻辑以适合#1。但是,我想确定我是否可以同时按时间和用户ID查询记录。
我目前正在Azure表中跟踪API调用元数据,其中PartitionKey为UserId,RowKey为随机Guid。这有助于我查询属于特定用户的记录。但是,我需要...
1)将当前UTC时间四舍五入到最接近的分钟并将其转换为滴答声。这使我可以定期使用时间下载数据时间间隔,但我无法有效地查找与特定用户。