有没有办法使用不是分区键的列名来查询Azure存储表?

时间:2017-07-10 06:38:55

标签: azure-table-storage

我尝试使用列名查询azure表,但执行后没有返回任何数据。以下是我在java中使用的代码。是否需要进行表扫描?

String partitionFilter = TableQuery.generateFilterCondition(
            COLUMN_ID,
            TableQuery.QueryComparisons.EQUAL,
            columnId);

1 个答案:

答案 0 :(得分:2)

  

是否需要进行表格扫描?

是的,它会执行表扫描,因为您的过滤器不包含PartitionKey。请参阅" Design for querying"部分以获取详细信息。

  

执行后没有返回任何数据

请检查表格存储中的某些数据是否符合过滤条件。此外,您可以使用HTTP(S)流量捕获工具(如fiddler)捕获请求,并检查响应中是否包含任何错误或有用信息,这将有助于您解决问题。

<强>更新

  

有没有办法索引列名,以便查询更有效?

目前,Azure表存储中的PartitionKey和RowKey上的聚簇索引上没有其他索引。如果可能,您可以修改table design以提高效果。此外,您还可以转到提供吞吐量优化表,全局分布和自动二级索引的Azure Cosmos DB's "premium table"