大查询限制和跳过分页的结果

时间:2017-07-04 01:08:50

标签: php google-bigquery

我使用php库设置来自bigquery的查询。但是对于查询本身的限制,我得到了这个回复"查询尚未完成。",它大约10k或更多,但我的页面应该限制为50。如何在bigquery上设置分页,我跳过,限制。

select * from table skip,limit

$bigQuery = new BigQueryClient([
    'projectId' => 'xxxxx',
]);
$datasetId = 'dbxxxx';
$dataset = $bigQuery->dataset($datasetId);
$options = array(
    'useLegacySql' => true,
    'maxResults' => 50,
    'startIndex' => 1
    );

$query = "SELECT id FROM [ideas] WHERE date >= '".$datefrom."' AND date <= '".$dateto."' ORDER BY date DESC";
$runquery = $bigQuery->runQuery($query,$options);

1 个答案:

答案 0 :(得分:1)

请你详细说明你的意思&#34;跳过,限制&#34;?

查看BigQuery PHP库的源代码,建议使用的方法是在尝试访问行之前等待查询完成: https://github.com/GoogleCloudPlatform/google-cloud-php/blob/master/src/BigQuery/QueryResults.php

用法示例:

$isComplete = $queryResults->isComplete();
if ($isComplete) {
  $rows = $queryResults->rows(); 
  foreach ($rows as $row) {
      echo $row['name'] . PHP_EOL;
  }
}

如果您的结果集是~10000(不是很大),您可能会发现跳过分页更容易,只需一次检索结果中的所有行。