2015-01-19 2 views
2

У меня около 20000 строк в моей лазурной таблице. Я хотел запросить все строки в лазурной таблице. Но из-за некоторого лазурного ограничения я получаю только 1000 строк.python, запрашивающий все строки azure table

Моего код

from azure.storage import TableService 
table_service = TableService(account_name='xxx', account_key='YYY') 
i=0 
tasks=table_service.query_entities('ValidOutputTable',"PartitionKey eq 'tasksSeattle'") 
for task in tasks: 
    i+=1 
    print task.RowKey,task.DomainUrl,task.Status  
print i 

Я хочу, чтобы получить все строки из validoutputtable. Есть способ сделать так

ответ

5

Но из-за определенные ограничения лазурнога я получаю только 1000 строк.

Это документированное ограничение. Каждый запрос запроса к таблице Azure возвращает не более 1000 строк. Если есть более 1000 объектов, служба таблицы вернет токен продолжения, который должен использоваться для извлечения следующего набора объектов (см. Раздел «Примечания» здесь: http://msdn.microsoft.com/en-us/library/azure/dd179421.aspx)

Пожалуйста, посмотрите пример кода, чтобы получить все сущности из таблицы:

from azure import * 
from azure.storage import TableService 

table_service = TableService(account_name='xxx', account_key='yyy') 
i=0 
next_pk = None 
next_rk = None 
while True: 
    entities=table_service.query_entities('Address',"PartitionKey eq 'Address'", next_partition_key = next_pk, next_row_key = next_rk, top=1000) 
    i+=1 
    for entity in entities: 
     print(entity.AddressLine1) 
    if hasattr(entities, 'x_ms_continuation'): 
     x_ms_continuation = getattr(entities, 'x_ms_continuation') 
     next_pk = x_ms_continuation['nextpartitionkey'] 
     next_rk = x_ms_continuation['nextrowkey'] 
    else: 
     break; 
+0

Работал как очарование спасибо –

Смежные вопросы