1

我正在尝试提供来自某个 Appengine 数据存储字段的 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 倍的存储空间。

有没有人有更好的主意?谢谢!

4

1 回答 1

0

由于您需要每天滚动 7 天增量,因此您需要保留过去 7 天的所有数据。所以看起来你已经在做的是正确的方法。

为了减少“严重性”,您可能希望将 Foo1..Foo7 设为列表属性

于 2012-08-08T10:24:16.637 回答