我有一个基于谷歌应用程序引擎的应用程序,它将数据存储在数据存储区中。我想实现一个 cron,每天读取大约 20k 行数据,并将数据汇总成一个更小的数据集,并将其存储在一个轻量级、易于访问的数据结构中,稍后我将使用它为用户提供谷歌图表。
我认为每次用户需要图表时读取所有实例级数据的成本太高,因此我想每天“提前”编译一次数据。
我正在考虑以下选项,并且我对任何能够优化性能并最小化 GAE 开销的反馈或方法感兴趣。
选项:
1) 创建一个小的 csv 或 xml 文件并将其保存在服务器本地,然后从那里读取数据
2)在数据存储中保留另一个“摘要级别”对象并读取它(仍然可能很昂贵?)
3) 创建 google 图表 SVG 并将其存储在本地,然后重新将其提供给用户(不确定这是否可行)
谢谢!
最佳答案
仔细检查,但我认为数据存储+内存缓存最终可能是最便宜的。
在您的 cronjob 中,您可以预先计算需要为每个图表返回的数据,并将其存储在数据存储区和内存缓存中。
对于每个图形请求,您都会从内存缓存中获取数据。 然而,Memcache 数据可以随时删除,因此,如果那里不可用,您可以从数据存储中读取数据并将其放回 memcache。
关于java - Java 谷歌应用引擎的轻量级数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17642010/