如何限制 BigQuery 获取的行数?

Posted

技术标签:

【中文标题】如何限制 BigQuery 获取的行数?【英文标题】:How do I limit the amount of rows BigQuery gets? 【发布时间】:2019-04-30 13:21:02 【问题描述】:

我正在尝试使用 firebase 云功能从 BigQuery 表中获取一些数据到我的 React 前端。

我的表有 14000 多行,所以我不想同时将它们全部带入,我更愿意发送请求一次获得 100 左右。

我在这里查看了文档:https://cloud.google.com/bigquery/docs/managing-table-data#browse-table

但他们的解决方案似乎对返回的内容没有任何影响。

exports.getTableDataFromFrontEnd = functions.runWith(runtimeOpts).https.onCall((data, context) => 
  console.log('V23');

  let promise = new Promise(function(resolve, reject) 
    async function browseRows()   

        // Create a client
        const bigqueryClient = new BigQuery();

        const datasetId = 'CSV_Upload';
        const tableId = 'Test_Table';

        //Limit the query to 100 rows (This is not working).
        const options = 
            limit: 100    
        ;

        // List rows in the table
        const [rows] = await bigqueryClient
          .dataset(datasetId)
          .table(tableId)
          .getRows(options)

          resolve(rows) //This still has 14000+ rows.
      
      browseRows();
    );    
    return promise;
  );

【问题讨论】:

【参考方案1】:

我不确定您使用的是什么库,但如果是这个,那么选项的名称是 maxResults,而不是 limit

https://cloud.google.com/nodejs/docs/reference/bigquery/1.0.x/Table#getRows

【讨论】:

非常感谢。那解决了它。我想我对不同的文档集感到困惑。

以上是关于如何限制 BigQuery 获取的行数?的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery更新如何获取更新的行数

如何使用 BigQuery Streaming 获取插入的行数

如何使用 node.js 客户端库计算完成的 BigQuery 作业的行数

获取 BigQuery 表中的行数(流式缓冲区)

Google Bigquery 命令行返回限制

如何使用python修复在bigquery中上传csv文件