如何使用 PHP bigquery 客户端库对 bigquery 数据进行分页?
Posted
技术标签:
【中文标题】如何使用 PHP bigquery 客户端库对 bigquery 数据进行分页?【英文标题】:How do I paginate the bigquery data using PHP bigquery client library? 【发布时间】:2020-01-25 01:15:45 【问题描述】:我正在使用这个 php 客户端库来提取 BigQuery 数据。 (https://github.com/googleapis/google-cloud-php-bigquery)
问题是我无法对 BigQuery 数据进行分页。 这是我提取数据的方式。链接 clear 显示了我们如何提取数据,但没有提供任何关于分页数据的信息。
https://cloud.google.com/bigquery/docs/reference/libraries#client-libraries-install-php
【问题讨论】:
这能回答你的问题吗? Paginating BigQuery 【参考方案1】:分页文档在别处
https://cloud.google.com/bigquery/docs/paging-results#bigquery_browse_table-php
基本上代码是:
$maxResults = 10;
$startIndex = 0;
$options = [
'maxResults' => $maxResults,
'startIndex' => $startIndex
];
$bigQuery = new BigQueryClient([
'projectId' => $projectId,
]);
$dataset = $bigQuery->dataset($datasetId);
$table = $dataset->table($tableId);
$numRows = 0;
foreach ($table->rows($options) as $row)
print('---');
foreach ($row as $column => $value)
printf('%s: %s' . PHP_EOL, $column, $value);
$numRows++;
【讨论】:
你好 Pentium10,我试过这个答案。当有大约 600000 个数据时,此代码无用。在这里,使用生成器函数 rows 在 Google Cloud Client Library for PHP 中自动发生分页,该生成器函数会在迭代期间获取下一页结果。以上是关于如何使用 PHP bigquery 客户端库对 bigquery 数据进行分页?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHP 编写类似 sql 的查询以从 BigQuery 获取数据
如何使用特定于浏览器的 vanilla JS 库对依赖项做出反应
Google BigQuery - PHP API - 如何导入 AVRO 文件?