【发布时间】:2019-12-06 23:11:44
【问题描述】:
我遇到了 Azure 表存储问题。我需要在存储表中查询数十万条数据。
第一种方法是检索所有数据,然后按要求进行查询,但耗时太长。
第二种方法是如果我直接使用查询从表存储中获取过滤数据
因此,根据我的理解,第二种方法是最好的,但我无法正确查询。 如何从 Azure 表存储中检索最后一个条目,在此我也尝试 MAX 并按功能排序,但它对我不起作用。
没有运行代码:
var query2 = new TableQuery().Where(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, patientId.ToString()),
TableOperators.And,
TableQuery.GenerateFilterConditionForGuid("DeviceID", QueryComparisons.Equal, deviceId))
).OrderByDescending(x=>x.EventDate).Take(1).Select(x=>x.EventDate).ToList();
运行时间过长的代码:
var query = new TableQuery<TherapyEvent>().Where(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, patientId.ToString()),
TableOperators.And,
TableQuery.GenerateFilterConditionForGuid("DeviceID", QueryComparisons.Equal, deviceId)) );
var resp= _table.ExecuteQuery(query).OrderByDescending(x=>x.EventDate).Take(1).Select(x=>x.EventDate).ToList()
【问题讨论】:
-
您也可以尝试将 TimeStamp 添加为过滤器的一部分以获得最后一个。
-
现在无法在行键中添加时间戳,因为数据已经存在,而且数据量很大,我无法更改现有数据,因为它已经被某些软件使用了。
-
TimeStamp 是一个在您添加新数据时自动创建的属性。数据已经存在,只考虑检索最新的
标签: c# azure azure-table-storage azure-tablequery