【问题标题】:Load chart data into a webapp from google datastore将图表数据从 google 数据存储区加载到 web 应用程序中
【发布时间】:2017-11-12 22:55:32
【问题描述】:
我有一个谷歌应用引擎应用程序,它可以将时间序列数据实时加载到谷歌数据存储区 nosql 样式表中。我希望就正确的架构类型获得一些反馈,以将这些数据提取到 Web 应用程序样式图表中(理想情况下,我也可以将其插入到 Word Press 等内容管理系统中)。
我的大部分服务器端代码都是 python。从数据存储数据库中提取数据并显示到我的网页中的合理客户端-服务器设置是什么?理想情况下,我会有一些可以扩展的东西,并且不会在我的数据库上造成不必要的读取次数(可能使用 google-app-engine 的内置缓存/等)。
我猜这是一个常见的用例,但我想了解一下可能有哪些最佳实践。我已经看到一些使用客户端 Web 端 javascript/ajax 和服务器端 php 来读取 DB 的示例——这真的是最好的方法吗?
【问题讨论】:
标签:
python
wordpress
google-app-engine
charts
google-cloud-datastore
【解决方案1】:
欢迎来到“视情况而定”。
你有一些选择。想象一下经典的四象限图表。一个轴是数据大小,另一个是陈旧/新鲜度。
如果您的时间序列数据变化迅速,但小到足以在请求中安全地检索,您可以按需查询,将其转换为 JSON,然后将其喷射到浏览器以由 JavaScript 图表包呈现你的选择。如果数据很大,您的应用程序将需要进行某种服务器端预处理,以便在需要数据时,可以在足够少的请求中检索数据,从而使请求不会超时。这可能涉及一些依赖于数据的东西,比如预先存储时间序列。
如果数据变化缓慢,您可以选择在服务器端生成图表,可能使用matplotlib。当新数据被摄取时,或者可能每隔一段时间,产生一个任务来生成和缓存图表(或 JSON 交给前端)作为数据存储中的 blob。如果数据足够大以至于任务将超时,您可能需要使用后端进程。如果数据足够大并且您不进行预处理,那么您就处于不快乐象限中。
根据我的经验,GAE memcache 最适合在请求之间的时间很短的请求之间缓存数据。不要依赖于生成工件,将它们填充到内存缓存中,并希望它们会在几分钟后出现。我很少看到这样的作品。