我正在尝试从某个Appengine Datastore字段显示7天的尾随统计信息。如果我的模型有一个整数字段“Foo”,我希望能够在过去7天内通过Foo的增加找到前N个模型。
我认为最好通过例子来解释。假设我们有两个带有Foo字段的实体,我们每天午夜都会对Foo的值进行采样:
Day 01 02 03 04 05 06 07 08 09 10 11 12 13
User1.Foo 1 2 3 4 5 6 7 8 9 8 7 6 5
User2.Foo 50 55 50 45 50 55 50 45 50 55 50 45 50
我希望能够构建(每天)7天的增量:
Day 01 02 03 04 05 06 07 08 09 10 11 12 13
User1.FooDelta7d 6 6 6 4 2 0 -2
User2.FooDelta7d 0 -10 0 10 0 -10 0
并且能够查询用户ORDER BY FooDelta7d。
我可以通过在每个用户上保留7个额外的条目来解决这个问题,比如Foo1 Foo2 Foo3 ... Foo7并采用模7的日期来决定在午夜写入哪个条目:
Day 01 02 03 04 05 06 07 08 09 10 11 12 13
User1.Foo 1 2 3 4 5 6 7 8 9 8 7 6 5
User1.Foo1 1 1 1 1 1 1 1 8 8 8 8 8 8
User1.Foo2 2 2 2 2 2 2 2 9 9 9 9 9
User1.Foo3 3 3 3 3 3 3 3 8 8 8 8
User1.Foo4 4 4 4 4 4 4 4 7 7 7
User1.Foo5 5 5 5 5 5 5 5 6 6
User1.Foo6 6 6 6 6 6 6 6 5
User1.Foo7 7 7 7 7 7 7 7
所以在(比方说)第10天,增量是User1.Foo3 - User1.Foo4 = 8 - 4 = 4.这有效但对我来说似乎真的很糟糕,特别是因为它意味着每个字段需要跟踪8倍存储量
有没有人有更好的主意?谢谢!
答案 0 :(得分:0)
由于您需要每日滚动7天三角形,因此您需要保留过去七天的数据。所以看来你正在做的事情是正确的。
要降低“粗俗度”,您可能希望将Foo1..Foo7设为list property。