Microsoft Azure存储表查询结果是否可以按属性值进行过滤

时间:2014-06-09 03:57:39

标签: c# sql azure azure-storage azure-table-storage

我目前正在学习Azure存储表。我从http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-table-storage-20/

学到了一些东西

它似乎是一个键/值对存储。它具有分区键,行键,最多包含252个属性。

从上面的链接中,它只能按行键过滤查询结果。我们可以通过过滤其中一个属性来查询结果。

我的项目是将当前的sql数据库迁移到Azure存储表。

当前SQL数据库有三列

a栏,b栏,C栏

目前,我们的功能需要支持通过过滤列a和列b来查询。当我们迁移到Azure存储表时,我们需要保留该功能

我认为我们只能将两列中的一列设置为行键,其他列应该位于Azure表的属性中。另外我不认为列b可以是行键,因为它不能唯一地标识我们之前的sql表中的行(我的理解是正确的吗?)

当我将表格迁移到Azure存储时,如果我只将列a设置为行键,将列b设置为属性,那么我可以同时查询列a和b。如果没有,有什么建议可以解决吗?

非常感谢

1 个答案:

答案 0 :(得分:2)

是的,您可以按任何属性进行过滤。但请记住,只有PartitionKey和RowKey被编入索引,因此任何不包含至少PartitionKey的查询操作都将导致全表扫描。如果您的表包含大量实体,这将成为一个问题。