复合键作为azure表存储的分区键

时间:2016-12-06 15:58:51

标签: azure azure-table-storage nosql

我有一个数据模型,其属性如A,B,C,D..G。该模型具有复合键(A,B,C,D)。我需要将此数据模型的实体存储到azure存储中。 我应该连接(A + B + C + D)然后将结果存储为分区键的值(以便更快地进行检索操作?)。

在这种情况下选择分区键/行键的最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

  

我应该连接(A + B + C + D)然后将结果存储为分区键的值(以便更快地进行检索操作吗?)

正如这位官员document提到的有关考虑查询的问题:

  

了解您将使用的查询将允许您确定哪些属性对于PartitionKey非常重要。查询中使用的属性是PartitionKey的候选属性。   如果实体具有两个以上的键属性,则可以使用连接值的复合键。

  

在这种情况下选择分区键/行键的最佳做法是什么?

为了获得更好的查询性能,您需要将查询中使用的属性视为PartitionKey或RowKey的候选对象。以下是一个简单的示例,供您更好地理解选择PK / RK:

有一个名为Product的表,它具有以下属性:

| ID | Name | CategoryID | SubCategoryID | DeliveryType | Price | Status | SalesRegion |

如果查询经常基于CategoryIDSubCategoryID,我们可以将CategoryID_SubCategoryID组合为PartitionKey,以快速找到特定分区并检索特定类别中的所有产品。对于RowKey,我们可以设置ID来查询特定产品ID或SalesRegion_Price_DeliveryType以按SalesRegion,Price,DeliveryType的顺序过滤产品。

此外,您可以按照此tutorial关于设计可扩展且高性能的Azure存储表。

答案 1 :(得分:-1)