Azure表:选择一个分区键,以便按时间和用户ID有效地对记录进行排序

问题描述 投票:0回答:1

我当前正在Azure表中跟踪API调用元数据,其中PartitionKeyUserIdRowKey为随机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。这有助于我查询属于特定用户的记录。但是,我需要...

azure nosql azure-storage azure-table-storage
1个回答
1
投票

1)将当前UTC时间四舍五入到最接近的分钟并将其转换为滴答声。这使我可以定期使用时间下载数据时间间隔,但我无法有效地查找与特定用户。

© www.soinside.com 2019 - 2024. All rights reserved.