从Azure表存储中检索随机行
本文关键字:检索 随机 存储 Azure | 更新日期: 2023-09-27 17:50:44
虽然这看起来很简单,但我想不出一个常数时间的方法来从Azure表存储中获取随机行。
我有一个base64字符串作为他们的行键的元素(它本质上是一个GUID)和一个分区键(没有足够的数据来证明多个分区)。
现在我能想到的最好的事情是选择一个随机元素是持有一行,并获得一个"随机"行,我只是运行一个查询的行,这是大于当前的我持有的。冲洗并重复。
任何想法吗?
如果有帮助的话,这里是row元素:
public class PhoneEntity : TableEntity
{
private PhoneID _id;
private Uri _pushUri;
public Uri PushUri
{
get { return _pushUri; }
set { _pushUri = value; }
}
public PhoneID Id
{
get { return _id; }
set { _id = value; }
}
public PhoneEntity(PhoneID id, Uri pushUri)
{
Id = id;
PushUri = pushUri;
this.PartitionKey = "PhonePartition";
this.RowKey = id.Id64;
}
}
您可以简单地创建一个随机行键并查询大于它的第一行(. take(1))。如果找不到一行,说明您的随机行键太大,请使用另一个随机键重试。
假设您的行键分布良好,并且使用GUID,那么重试不应该太频繁地发生。