为了账号安全,请及时绑定邮箱和手机立即绑定

分页BigQuery

分页BigQuery

白板的微信 2021-03-19 10:05:32
我正在尝试创建与Google BigQuery仪表盘类似的东西,但带有预定义的查询/视图。我遇到的问题是分页数据。该资料表端点支持分页中,你可以指定一个起始索引或使用网页的道理,让我做这样的事情:query_reply = table_data_job.list(projectId=settings.PROJECT_ID,                                  datasetId=settings.DATASET_ID,                                  tableId=table,                                  startIndex=offset,                                  maxResults=page_size).execute()问题是我想运行特定的查询(或者至少要对表数据结果进行排序)。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()据我所知,没有办法对上述代码进行补偿。这只是BigQuery不适合的吗?我想替代方法是在内存中进行分页并在较小的结果集上工作?
查看完整描述

2 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

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


查看完整回答
反对 回复 2021-03-30
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

您只能通过使用ROW_NUMBER()来实现与SQL的分页


这是通用模板


SELECT  t.*

FROM (

SELECT 

1 AS one, 

[field], 

ROW_NUMBER() OVER(PARTITION BY one) AS rownum

FROM [table] ) t WHERE rownum BETWEEN X AND Y


查看完整回答
反对 回复 2021-03-30
  • 2 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号