有没有办法确定Azure表中的现有分区?

时间:2011-12-23 18:37:50

标签: azure azure-table-storage

我希望能够查询Azure以确定可用的分区。这有两种不同的用例。

1)查询报告聚合时,某些分区基于在特定日期完成的事物的记录信息。分区键表示数据集,其中的数据是该日期的操作。我正在将该分区的统计信息聚合到另一个表中。即:当天完成后的后处理。

ex:表名:DailyAggregation PartitionKey:CustomerID:5,YYYY-MM-DD

我想避免尝试查询不存在的表分区,并且不希望每天都处理所有数据。例如,我有5个月的统计数据并且已经处理了前4天,但是存在几天或几周的差距。查询不存在的分区中的数据是没有意义的。

2)某些分区基于可能在将来删除的标识符。我想编写一些系统完整性代码来帮助我识别保存数据的分区,对它们的引用不再存在,所以我可以删除它。即:孤儿数据。

ex:表名:DailyAggregation PartitionKey:CustomerID:5,YYYY-MM-DD

CustomerID存储在SQL Azure中。假设客户行已删除。我希望能够轻松确定是否存在此CustomerID不再存在的DailyAggregation分区,以便清除不再被引用的数据。

思想?

1 个答案:

答案 0 :(得分:0)

我会这样做。

我首先选择整个表格中的第一个元素。我会通过不指定PartitionKey或RowKey和“Take 1”来获取第一行来做到这一点。

接下来,我将创建另一个查询,该查询获取与您从Take 1查询中获得的分区键匹配的所有行。

然后,为了获得下一组元素的下一个开始,我将得到你刚刚获得的分区键之后的第一个分区键。因此,如果您的分区键是日期,那么我只需在日期中添加一个,因此查询将类似于“PartitionKey> = LastDate.AddDay(1)”。要正确执行此查询,您应该将日期转换为long类型并填充它,以便字符串表示形式具有相同的长度。

之后,您可以迭代我解释的内容,无需查询任何不必要的日期即可获取整个表格内容。