从Datastore获取大型JSON

Phi*_*hil 2 google-app-engine google-cloud-endpoints google-cloud-datastore

我在Google Cloud Endpoints上创建了一个API,可以从Datastore中的单个实体获取所有数据.使用Objectify执行NoSQL请求(非常简单的一个:从实体中选择*).

此数据存储区实体填充了200行(实体),每行(实体)具有相同类型的子实体列表:

  • 膳食:
    • 字符串标题
    • int preparationTime
    • 列表<成分> listOfIngredients(子实体......)
    • ...

因此,当我获取API时,会返回一个JSON.它的大小约为641Ko,有17K线.

当我查看API资源管理器时,它告诉我请求需要4秒才能执行: 在此输入图像描述

我想减少那段时间,因为它真的很高......我已经:

  • 将GAE实例增加到F2
  • 启用Memcache

它有点帮助,但我不认为这是最有效的方式......

我应该使用Big Query更快地生成JSON文件吗?或者也许有另一种解决方案?

Ram*_*ppa 5

您是否需要单个请求中的所有实体?

  • 如果不是,则可以使用Cursor Queries批量获取实体并根据需要显示,例如:根据需要一次获取20或30个实体.
  • 如果是,
    • 您的膳食实体经常变化吗?
      • 如果不是,您可以生成一个json文件并将其存储在GCS中,并且每当您的实体发生更改时,您都可以更新json文件,这样在客户端端获取的速度会快得多,并且使用etag header,可以轻松地提取新内容
      • 如果是,那么我认为批量提取只是拉动那么多实体的有效方法