2017-02-09 5 views
0

У меня есть ниже код, чтобы использовать драйвер Кассандры питона для пагинациипитона-водитель пагинация не работает

Я попытался как первостепенный запрос и установить сеанс default_fetch_size. но никто из них не работает, результаты всегда выводят все строки из таблицы. что мне не хватает?

from cassandra.cluster import Cluster 
from cassandra.query import SimpleStatement 

# setup 
cluster = Cluster(["10.40.10.xxx","10.40.10.xxx","10.40.22.xxx","10.40.22.xxx"]) 
session = cluster.connect() 
session.set_keyspace("ad_realtime") 
# session.default_fetch_size = 10 

query = "SELECT * from campaign_offset" 
statement = SimpleStatement(query, fetch_size=10) 
results = session.execute(statement) 

for row in results: 
    print row 

ответ

1

Пейджинг в Python Драйвер не означает получение только части вашего запроса. Это означает только получение частей вашего запроса за раз.

Ваш код

for row in results: 
    print row 

ли вызова поискового вызова машины. В основном это создает итератор, который запрашивает только fetch_size строк за определенный промежуток времени из набора результатов, определенного вашим запросом.

Используйте LIMIT и WHERE, чтобы ограничить ваш фактический результат. cassandra pagination: the difference between driver and CQL

+0

то мне интересно, как получить результат текущей страницы? –

+0

http://datastax.github.io/python-driver/api/cassandra/cluster.html#cassandra.cluster.ResultSet.current_rows –

0

Вы можете получить строки текущей страницы с помощью current_rows, как:

for row in results.current_rows: 
    print row 
Смежные вопросы