【问题标题】:Perform update operation in bigQuery through PHP通过 PHP 在 bigQuery 中执行更新操作
【发布时间】:2020-08-01 01:33:05
【问题描述】:

我正在我的 Google Cloud 项目中集成一个 bigQuery。我已经解决了集成大查询所需的所有要求。现在我想通过我的 PHP 文件执行更新操作。我在 bigQuery 中创建了一个数据集和表。

  • 数据集名称 - 计数
  • 表名称 - 公司

我想通过我的 PHP 文件更新这个表。在此之前,这是我更新云数据存储中值的代码:

$dataset = $bigQuery->dataset('count'); 
$table =  $dataset->table('companies');

if ($check) {

    $updateResponse = $table->update(['name' => 'A friendly name.']);
    if ($updateResponse->isSuccessful()) {
        print('Data updated into BigQuery successfully' . PHP_EOL);
    }  

}

但是这段代码不起作用?

【问题讨论】:

  • 欢迎来到 SO!你的问题到底是什么?
  • name 似乎是一个元数据标签,但Data inserted into BigQuery successfully 是一条消息,建议应将一些数据插入表中。这是两件不同的事情,所以,您能否澄清一下您到底想要完成什么,表格最终状态的示例将有助于我们理解您的问题。

标签: php google-bigquery


【解决方案1】:

代码似乎没问题,但名称不是有效的元数据。 friendlyName 是有效的,请检查其他table metadata resources。我不太确定isSuccessful是否存在,所以,为了验证操作是否成功,我会申请:

$info = $table->info();
echo $info['friendlyName'];

如果要更新 BigQuery 表中的数据,可以像执行 SELECT 语句一样执行 DML 语句:

$bigQuery = new BigQueryClient(['projectId' => $projectId,]);
$query = 'UPDATE statement';
$jobConfig = $bigQuery->query($query);
$job = $bigQuery->startQuery($jobConfig);

这种情况下可以用$job->isComplete()询问DML操作的进度,见完整示例here

你提到了“... updating the values in cloud datastore”;但是,您的代码适用于 BigQuery,如果有与数据存储相关的内容,请澄清。

【讨论】:

    猜你喜欢
    • 2019-02-19
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 2018-05-02
    相关资源
    最近更新 更多