我在Google Cloud Datastore中拥有大约500万个实体。我想使用Java以编程方式获取此计数。我尝试了以下代码,但它可以达到一定的阈值(800K)。
当我查询500万条记录时,由于不返回任何计数,它进入了无限循环(我的猜测)。如何获取此大数据的实体数?我不想使用Google App Engine API,因为它需要设置环境。

private static Datastore datastore;

datastore = DatastoreOptions.getDefaultInstance().getService();

Query query = Query.newKeyQueryBuilder().setKind(kind).build();

int count = Iterators.size(datastore.run(query)); //count has the entities count

最佳答案

您需要多精确的计数?对于稍微过时的计数,您可以使用stats entity来获取一种实体的数量。

如果您不能使用stats实体中的过时计数,则需要保留计数器实体以获得所需的实时计数。您应该考虑使用sharded counter

关于java - 如何在Google Cloud Datastore中获取一种实体的总数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57031421/

10-11 04:19