Google app engine NDB查询挂起一组条件

Google app engine NDB查询挂起一组条件,google-app-engine,google-cloud-datastore,app-engine-ndb,Google App Engine,Google Cloud Datastore,App Engine Ndb,更新: 我在index.yaml中没有条目,希望zig-zag可以很好地处理等式(在数据存储UI中似乎是这样),下面是我正在进行的实际查询: UploadBlock.query( UploadBlock.time_slices == timeslice, # timeslice is each value in the repeated property UploadBlock.company == block.company, UploadBlock.aggregat

更新: 我在index.yaml中没有条目,希望zig-zag可以很好地处理等式(在数据存储UI中似乎是这样),下面是我正在进行的实际查询:

UploadBlock.query(
    UploadBlock.time_slices == timeslice,  # timeslice is each value in the repeated property
    UploadBlock.company == block.company,
    UploadBlock.aggregator_serial == block.aggregator_serial,
    UploadBlock.instrument_serial == block.instrument_serial)\
.fetch(10, keys_only=True)
我之所以交叉发布这篇文章,是因为我没有先阅读最初的支持页面,所以这篇文章也出现在谷歌论坛的

我有一个数据存储查询,作为我的系统的一个组成部分。它是四个属性的相等过滤器。当我对一组条件进行查询时,查询只是挂起。对于数据存储查看器中的这组条件,它不会挂起,因此我可以看到只有两个结果要返回。我可以通过id毫无问题地获取这两个实体,但无论是在远程shell中还是在生产环境中,查询总是挂起。对于许多不同的条件,查询运行得很好,似乎就是这一组。我尝试替换这两个实体,以便条件仍然匹配,但它们具有不同的ID,我得到了相同的结果

有关更具体的信息,四个属性定义如下:

company = ndb.KeyProperty(indexed=True)
aggregator_serial = ndb.StringProperty(indexed=True)
instrument_serial = ndb.StringProperty(indexed=True)
time_slices = ndb.IntegerProperty(indexed=True, repeated=True)
我正在运行gcloud版本

Google Cloud SDK 207.0.0
app-engine-java 1.9.64
app-engine-python 1.9.71
app-engine-python-extras 1.9.69
beta 2018.06.22
bq 2.0.34
core 2018.06.22
gcloud
gsutil 4.32
我将非常感谢您对我下一步工作的帮助


提前谢谢

你能说出实际的查询代码吗?在index.yaml中也有一个查询条目,对吗?我不会依赖于Z字形-它的性能可能会根据实际数据而有所不同。尝试为查询添加一个复合索引以绕过它,看看这是否有帮助。@DanCornilescu感谢您的响应,我已经使用remote shell运行了这个查询,并让它运行了大约16个小时而没有完成,数据存储UI立即运行一个等效的查询,这些症状是否仍然与之字形性能问题相适应?不确定。但是,如果添加索引有帮助,答案可能是肯定的:)在我的例子中,我注意到我的应用程序查询和控制台中的GQL查询之间的结果不一致,偶尔/间歇出现异常。