0

我想了解Partion键和Row Key。了解天蓝色表

我了解PartitionKey的定义 自动将表的实体分布在多个存储节点上。相同的PartitionKey存储在同一个节点上。 T RowKey是其所属分区内实体的唯一ID。

,所以如果我有这样的记载:

StudentName: 
StudentId: 

Date: 
Attendence: 
Attendance signed by Teacher: 
在这种情况下,我如何定义这个表

。我真的不明白在实现中的partitionkey和Row键。从定义我明白他们。鉴于我想要插入的记录,我如何定义它们。

回答

1

这不是严格正确的,但是您可以查看分区键的方式是定义“组”,并使用行键标识该组中的特定记录。

了解Azure存储的工作原理非常重要,以便最有效地建模您的数据。你是正确的,分区存储在同一个节点上,并且唯一的索引(用于快速查找)是分区键和行键。

在您的学生记录示例中,此记录的用途是什么,或者更确切地说,记录如何“组合”在一起?如果这是一个班级考勤名单,也许你的PartitionKey是课程编号,而RowKey是单独的学生编号(PartitionKey = CourseId,RowKey = StudentId)。在这种情况下,您可以获取整个分区并获得完整课程名单,也可以使用PartitionKey + RowKey查找单个学生。

另一种方法可能是给每个学生自己的分区(PartitionKey = StudentId),然后行键是特定的日期(RowKey = Date)。使用此模型,您可以通过查询PartitionKey快速获取学生的全部出勤记录,或者如果您想查看他们是否出席某一特定日子,请查询PartitionKey + RowKey(StudentId + Date)。

有多种方式来建模您的数据。这取决于你如何使用这些特定记录来获得最佳效果。

+0

非常感谢您的详细解释。我需要根据学生证和日期进行很多查找,以获得他在本课程中的表现。对于该用例:我有3个参数,这些参数在我的搜索中将始终存在。是否可以,如果我保持partision作为学生和行作为日期和状态参数不作为密钥 –

+0

是的,这将工作。只要你在PartitonKey + RowKey上过滤,你的查询应该很快。 – mfanto