Paginating BigQuery

Tyl*_*eat 6 python pagination google-bigquery

我正在尝试创建类似于Google的BigQuery仪表板,除了预定义的查询/视图.我遇到的问题是对数据进行分页.

资料表端点支持分页中,你可以指定一个起始索引或使用网页的道理,让我做这样的事情:

query_reply = table_data_job.list(projectId=settings.PROJECT_ID,
                                  datasetId=settings.DATASET_ID,
                                  tableId=table,
                                  startIndex=offset,
                                  maxResults=page_size).execute()
Run Code Online (Sandbox Code Playgroud)

这个问题是我想运行特定的查询(或者,至少,命令表数据结果).

query_data = {'query': 'SELECT * FROM my_dataset.foo_table LIMIT %s' % page_size}
query_reply = job_collection.query(projectId=settings.PROJECT_ID,
                                   body=query_data).execute()
Run Code Online (Sandbox Code Playgroud)

据我所知,没有办法用上面的代码做偏移.这只是BigQuery不适合的东西吗?我想替代方法是在内存中进行分页并处理较小的结果集?

Jor*_*ani 5

BigQuery查询结果是表.因此,您可以运行查询并从结果中获取目标表,然后使用tabledata.list()api翻译结果.或者,您可以从回复中获取作业ID,并使用jobs.getQueryResults(),它具有分页支持.