我有一个表存储用户的在线状态。这是Azure表中分区和行键的正确选择吗?
columns(userid, IsOnline,date)
如果用户在线,则Isonline布尔标志为true,如果它离线,则IsOnline布尔值为false。这样我就可以看到用户在哪个时间和哪个时间在线。
难道是精细选择partitionKey:用户id, Rowkey:事件
的日期和时间?
用户不能同时开关,所以rowkey应该是唯一的。我喜欢这个功能,它可以将用户的所有数据保存在同一个分区上。还选择日期rowId使排序更有效?
我只是碰到这个帖子来了,我很感兴趣在这个建议中。你能详细说明为什么在这种情况下降序数据有利吗?活动的日期/时间是否仍然按降序排列? – BenjiFB 2014-03-14 01:06:53
Azure表存储的工作方式是在检索数据时不能使其更改排序。它以上升的PK/RK方式存储。要检索的第一行是给定PK的最小RK。如果想知道用户的最新状态,并且RK是以ASC顺序存储的时间戳,则第一行将是最早的状态,因此在查找最新状态之前,数据的使用者将不得不检索所有的行。这有帮助吗? – Igorek 2014-03-14 03:05:51
是的,这有帮助!谢谢... – BenjiFB 2014-03-14 12:44:07