Tag: 应用程序引擎ndb

从数据存储中查询大量ndb实体的最佳实践

我已经遇到了App Engine数据存储的一个有趣的限制。 我正在创build一个处理程序来帮助我们分析一个生产服务器上的一些使用情况数据。 为了执行分析,我需要查询并总结从数据存储中拉出的10,000多个实体。 计算并不难,只是通过使用示例的特定filter的项目的直方图。 我遇到的问题是,我无法从数据存储中快速获取数据,以便在查询截止date之前进行任何处理。 我已经尝试了所有我能想到的将查询分块为并行RPC调用以提高性能,但是根据appstats,我似乎无法获得实际并行执行的查询。 无论我尝试什么方法(见下文),似乎总是会回到顺序的下一个查询的瀑布。 注意:查询和分析代码确实工作,只是运行缓慢,因为我无法从数据存储快速获取数据。 背景 我没有可以分享的现场版本,但是这里是我所说的系统部分的基本模型: class Session(ndb.Model): """ A tracked user session. (customer account (company), version, OS, etc) """ data = ndb.JsonProperty(required = False, indexed = False) class Sample(ndb.Model): name = ndb.StringProperty (required = True, indexed = True) session = ndb.KeyProperty (required = True, kind = Session) timestamp = […]