如何 "aggregate" DataStore 上的实体
How to "aggregate" entities on DataStore
我了解 "joins" 和 "aggregate" 查询在 Cloud Datastore 查询引擎中不受支持。
但是,如果我必须这样做 "aggregate",如何聚合实体?
哪种方式更好?或者有什么更好的方式?
- 如果实体值被更新,同时更新和求和到另一个实体进行聚合。
- 读取每个实体并使用 Dataflow 减少。
- 导出到 Bigquery。
不需要实时数据
如果您不需要实时数据,请定期 exports 从 Cloud Datastore 到 BigQuery:
gcloud datastore export --kinds="myKind" gs://${BUCKET}
有人甚至做了 shell script 来帮助将一种导出到 GCS,然后导入到 BigQuery。
需要实时数据
这里要研究的一件事是使用 projections。投影查询更快更便宜,因为您可以告诉 Datastore 只需 return 您只是要聚合的 属性,它会将其从索引中流出。
如果您有更大的数据集,Dataflow 可以派上用场。
我了解 "joins" 和 "aggregate" 查询在 Cloud Datastore 查询引擎中不受支持。
但是,如果我必须这样做 "aggregate",如何聚合实体?
哪种方式更好?或者有什么更好的方式?
- 如果实体值被更新,同时更新和求和到另一个实体进行聚合。
- 读取每个实体并使用 Dataflow 减少。
- 导出到 Bigquery。
不需要实时数据
如果您不需要实时数据,请定期 exports 从 Cloud Datastore 到 BigQuery:
gcloud datastore export --kinds="myKind" gs://${BUCKET}
有人甚至做了 shell script 来帮助将一种导出到 GCS,然后导入到 BigQuery。
需要实时数据
这里要研究的一件事是使用 projections。投影查询更快更便宜,因为您可以告诉 Datastore 只需 return 您只是要聚合的 属性,它会将其从索引中流出。
如果您有更大的数据集,Dataflow 可以派上用场。