1

我有一个基于谷歌应用引擎的应用程序,它将数据存储在数据存储区中。我想实现一个每天读取大约 20k 行数据的 cron,并将数据汇总到一个小得多的数据集中,并将其存储在一个轻量级、易于访问的数据结构中,稍后我将使用该结构为用户提供谷歌图表。

我认为每次用户需要图表时读取所有实例级数据的成本太高,因此我想每天“提前”编译一次数据。

我正在考虑以下选项,并且我对任何可以优化性能和最小化 GAE 开销的反馈或方法感兴趣。

选项:

1)创建一个小的csv或xml文件并将其保存在服务器本地,然后从那里读取数据

2)在数据存储中保留另一个“摘要级别”对象并读取它(仍然可能很昂贵?)

3)创建谷歌图表SVG并将其存储在本地,然后重新提供给用户(不确定这是否可能)

谢谢!

4

2 回答 2

1

仔细检查,但我认为 datastore + memcache 最终可能是最便宜的。

在您的 cronjob 中,您预先计算需要为每个图返回的数据,并将其存储在数据存储和内存缓存中。

对于每个图形请求,您都从 memcache 中获取数据。但是,Memcache 数据可以随时删除,因此如果那里不可用,您可以从数据存储中读取它并将其放回 memcache。

于 2013-07-15T01:45:51.023 回答
0

为什么不为第一个请求生成“昂贵”的数据,然后将这些结果存储在memcache中?根据您的特定实现,即使是第一个昂贵的请求也可能比读取和解析本地文件便宜一些。随后的读取将影响您的内存缓存,并且会便宜得多。

于 2013-07-14T23:12:48.610 回答