我是 Azure 的新手!目的是根据存储在 RowKey 中的时间戳返回行。由于每个查询都有交易成本,我想在保持性能的同时尽量减少交易/查询的数量
这些是建议的分区键和行键:
- 分区键: TextCache_(AccountID)_(ParentMessageId)
- 行键: (DateOfMessage)_(MessageId)
传说:
- AccountId - 是一个整数
- ParentMessageId - 如果有则为父 messageId,如果为父则为空
- DateOfMessage - 创建消息的日期 - 格式为 DateTime.Ticks.ToString("d19")
- MessageId - 消息的唯一 ID
我想从单个查询中返回 > 或 < DateOfMessage_MessageId 的行和任何子行
这可以通过我建议的 PartitionKeys 和 RowKeys 来完成吗?
即..(在伪代码中)
var results = ctx.PartitionKey.StartsWith(TextCache_AccountId)
&& ctx.RowKey > (TimeStamp)_MessageId
其次,如果我有多个帐户,并且只想返回前 10 个帐户,是否可以通过单个查询完成
即..(在伪代码中)
var results = (
(
ctx.PartitionKey.StartsWith(TextCache_(AccountId1)) &&
&& ctx.RowKey > (TimeStamp1)_MessageId1 )
)
||
(
ctx.PartitionKey.StartsWith(TextCache_(AccountId2)) &&
&& ctx.RowKey > (TimeStamp2)_MessageId2 )
) ...
)
.Take(10)