azure表存储中的partitionkey和rowkey

时间:2016-06-18 09:41:56

标签: azure azure-table-storage

我理解azure表存储中分区键的好处。但是,考虑到我的关系数据库背景,我对如何仅在rowkey中从azure表存储中检索实体感到困惑。据我所知,这是不可能的。这意味着我必须将分区键/ rowkey对存储在某处以获取给定rowkey的实体。我应该只引入一个带有一个任意分区键的“分片”表,这样我可以在给定rowkey的情况下查找分区键吗?

1 个答案:

答案 0 :(得分:4)

这是可能的,但会导致表扫描,如MSDN的section中所述。

如果您不需要多个分区,那么如果您的数据规模不大且需要多个分区的可扩展性,那么使用单个分区(例如使用常量)绝对没问题。

另一种可能的方法是使用当前<macrodef name="getsubstring"> <attribute name="src"/> <attribute name="start"/> <attribute name="length"/> <attribute name="result"/> <sequential> <loadresource property="@{result}"> <string value="@{src}}" /> <filterchain> <tokenfilter> <replaceregex pattern="^.{@{start}}(.{@{length}}).*" replace="\1" /> </tokenfilter> </filterchain> </loadresource> </sequential> </macrodef> <property name="prop1" value="nameBLABLABLA" /> <getsubstring src="${prop1}" start="0" length="4" result="p"/> <echo message="${p}" /> 作为RowKey,这将为您提供高度可扩展的解决方案,但如果您需要查询行范围,则会导致性能下降。

关联的MSDN页面讨论了两者的优缺点,因此我认为根据您对特定问题域的了解,您应该能够找到平衡的解决方案。