我使用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);
答案 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(不是很大),您可能会发现跳过分页更容易,只需一次检索结果中的所有行。