无法使用 objects.all() 遍历 table 中的所有对象
Unable to iterate over all objects in table using objects.all()
我正在编写一个迁移脚本,它将遍历 cassandra 模型 (Cats
) 的所有对象。 Cat
有 30000 多个对象,但使用 Cats.objects.all()
,我只能迭代 10000 多个对象。
qs = Cats.objects.all()
print(qs.count()) # returns 30000
print(len(qs)) # returns 10000
型号:
from django_cassandra_engine.models import DjangoCassandraModel
class Cats(DjangoCassandraModel):
...
使用的 Cassnadra 后端:django-Cassandra-engine
版本 1.6.2
默认提取大小(也称为页面大小)为 10K,因此您只会返回前 10K 行。如果你真的想获取 table 中的所有记录,你需要覆盖会话默认值:
'cassandra': {
...
'OPTIONS': {
...
'session': {
...
'default_fetch_size': 10000
}
}
}
但要小心将其设置为非常高的值,因为它会使请求的协调器节点过载并影响集群的性能。
您应该改为遍历页面中的结果,然后请求下一页,直到到达末尾。干杯!
我正在编写一个迁移脚本,它将遍历 cassandra 模型 (Cats
) 的所有对象。 Cat
有 30000 多个对象,但使用 Cats.objects.all()
,我只能迭代 10000 多个对象。
qs = Cats.objects.all()
print(qs.count()) # returns 30000
print(len(qs)) # returns 10000
型号:
from django_cassandra_engine.models import DjangoCassandraModel
class Cats(DjangoCassandraModel):
...
使用的 Cassnadra 后端:django-Cassandra-engine
版本 1.6.2
默认提取大小(也称为页面大小)为 10K,因此您只会返回前 10K 行。如果你真的想获取 table 中的所有记录,你需要覆盖会话默认值:
'cassandra': {
...
'OPTIONS': {
...
'session': {
...
'default_fetch_size': 10000
}
}
}
但要小心将其设置为非常高的值,因为它会使请求的协调器节点过载并影响集群的性能。
您应该改为遍历页面中的结果,然后请求下一页,直到到达末尾。干杯!