app-engine-ndb相关内容

使用 MapReduce 时,ndb 模型不会保存在内存缓存中

我创建了两个 MapReduce 管道,用于上传 CSV 文件以批量创建类别和产品.每个产品都通过 KeyProperty 绑定到一个类别.类别和产品模型建立在 ndb.Model 上,因此根据文档,我认为从数据存储区检索它们时,它们会自动缓存在 Memcache 中. 我在服务器上运行了这些脚本,上传了 30 个类别,然后上传了 3000 个产品.所有数据都按预期显示在数据存储区中. ..

如何更新 NDB 模型的架构

我已经使用 App Engine 的旧 DB Datastore API 看到了这个问题的解决方案,但在使用较新的 NDB API 时找不到解决方案. 添加迁移支持的最佳方法是什么,以便我能够从旧版本的架构迁移到新版本.最好编写一个迁移脚本,这将如何工作? 类似于迁移这样的架构(请注意,示例在 NDB 中): class 图片(ndb.Model):作者 = ndb.StringPr ..

如何设置 ndb keyProperty

我在理解实体和键在 Google App Engine NDB 中的工作方式时遇到了一些问题. 我有一个 post 实体和一个 user 实体.如何将 post 上的 user_key 设置为 user? 在交互式控制台中,到目前为止我有这个: from google.appengine.ext import ndb从 app.lib.posts 导入 Post从 app.lib. ..
发布时间:2021-11-16 19:58:54 Python

出于计费目的,ndb 缓存读取操作是否仍计为数据存储读取操作?

来自 NDB 缓存: NDB 为您管理缓存.有两个缓存级别:上下文缓存和通往 App Engine 标准缓存的网关服务,内存缓存.默认情况下,所有实体都启用了两个缓存类型,但可以配置以满足高级需求. 我的应用程序不会更改任何 ndb 缓存配置,因此它必须使用默认值 - 两个缓存级别均已启用. 我正在我的临时环境(一个单独的、专用的 GAE 项目)上运行一些测试,在那里我可以将活动 ..

如何在 NDB/DB 查询中忽略大小写

这似乎是一个简单的问题,但我在 类定义. 如果我有查询 Video.query(Video.tags.IN(topics)) topics 以小写的 unicode 字符串形式出现,但 Video.tags 大部分是大写的.我可以遍历 topics 并在查询它们之前将它们大写,但是有没有办法完全忽略大小写? 解决方案 在查询中不能忽略大小写. 通常,如果您知道要进行 ..
发布时间:2021-11-16 19:58:45 其他开发

有没有办法为 ndb.get_multi() 指定投影?

使用 NDB,可以指定投影对于查询,允许限制为与查询匹配的实体检索的属性数量. 但是,我在文档中找不到任何关于在使用 ndb.get_multi() 时如何指定投影的内容,它总是获取完整的实体. 有没有办法在使用 ndb.get_multi() 时只获取某些属性? 解决方案 不,投影功能仅适用于查询.投射 get() 操作没有任何优势(就更少的 I/O 操作而言). ..
发布时间:2021-11-16 19:58:42 其他开发

App Engine 从 JsonProperty 返回 JSON

我喜欢 JsonProperty 如何在属性被放入数据存储时自动将 Python 结构编码为 JSON,并在检索时自动解码.但是,最好将该 JSON 数据发送到 Web 浏览器而无需再次对其进行编码.有没有办法获取原始JSON数据(即防止解码)? class DataForBrowser(ndb.Models)json = ndb.JsonProperty()def get_json(self) ..
发布时间:2021-11-16 19:58:39 Python

什么是 Google Appengine Ndb GQL 查询最大限制?

我环顾四周是为了得到答案,我可以从 Google AppEngine 上 Ndb 上的 GQL 查询获得的结果的最大限制是多少.我正在使用带有游标的实现,但如果我一次检索它们会快得多. 解决方案 基本上,您不再有每个查询 1000 个实体的旧限制,但请考虑使用合理的限制,因为您可能会遇到超时错误,并且最好批量获取它们,这样用户就不会在加载期间等待. ..
发布时间:2021-11-16 19:58:36 Python

最好通过 keys_only=True 然后 get_multi 查询还是只是完整查询?

我将 NDB 与 python 2.7 一起使用,并打开线程安全模式. 我知道使用 NDB 查询实体不使用本地缓存或内存缓存,而是直接进入数据存储,与通过键名获取不同.(如果这个前提不正确,剩下的问题可能是多余的.) 因此,一个好的范例是只使用 keys_only=True 进行查询,然后使用 get_multi 来获取完整的实体吗? 好处是keys_only=True 查询比k ..
发布时间:2021-11-16 19:58:21 Python

当只有约 50 个实体时,GAE Python NDB 查询获取响应时间 >55 秒

我们有一个旅游搜索网站.为了搜索公交车,我们对公交车运营商实体执行查询.我们使用 GAE Python NDB.当仅存在约 50 个实体时,查询获取响应时间 >55 秒(在部署版本而非开发服务器上). 目前我的查询包含五个项目.如果我增加到五个以上,响应会进一步减慢.请提出将查询时间缩短到约 1 或 2 秒或尽可能短的方法. 请在下面找到相关详细信息(对不起,我试图在某种程度上最小化以下内 ..
发布时间:2021-11-16 19:58:15 其他开发

未为重复 StructuredProperty 中的 Expando 模型正确保存自定义属性

我正在尝试使用 Expando 模型作为另一个模型中重复的 StructuredProperty.即,我想将无限数量的 Accounts 添加到我的 User 模型中.由于 Accounts 可以根据它们的类型具有不同的属性(Accounts 是对社交网络帐户的引用,例如 Twitter 需要比 Facebook 的 OAuth 过程更多的信息),我有将我的 Account 模型设计为 Expan ..

NDB 的 GAE Memcache 使用率似乎很低

我有一个包含约 40 GB 数据库的 Google App Engine 项目,但使用 NDB 时读取性能很差.我注意到我的内存缓存大小(如仪表板上所列)只有大约 2 MB.我希望 NDB 隐式地更多地使用内存缓存来提高性能. 有没有办法调试 NDB 的内存缓存使用情况? 解决方案 这个问题的表述相当糟糕——读取性能不佳的原因有很多,大多数是由于应用程序编写的糟糕,但你没有告诉我们有 ..
发布时间:2021-11-16 19:58:09 其他开发