如何使用 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 的 GD 库对图像执行接缝雕刻?

如何使用 PHP 编写类似 sql 的查询以从 BigQuery 获取数据

如何使用特定于浏览器的 vanilla JS 库对依赖项做出反应

Google BigQuery - PHP API - 如何导入 AVRO 文件?

如何使用节点 js 客户端在 BigQuery 中存储数字类型以进行流式插入?

在 google bigquery 中,如何使用 google python 客户端使用 javascript UDF