我正在尝试从PHP中的插入选择作业填充以前创建的表。 谷歌文档有一个简短的段落,说明下一个:
“运行异步查询,传入现有表的名称,并设置writeDisposition = WRITE_APPEND。”
现在我使用下面的句子从bigquery获取行:
// query request service
$query = new Google_Service_Bigquery_QueryRequest();
//armar query
$selectQuery = "select source_year, year, month, day from publicdata:samples.natality LIMIT 100";
if($whereQuery!=null && strlen($whereQuery)>0)$selectQuery = $selectQuery . " WHERE " . $whereQuery;
//print_r(var_dump($selectQuery));
$query->setQuery($selectQuery);
$response = $service->jobs->query($project_id, $query);
$jsonStr = "";
if($response)if($response->getRows())$jsonStr = $response->getRows();
print_r($jsonStr);
但我需要从查询结果中填充另一个表。 谢谢你的建议。 再见
谢谢Pentium10,但我收到错误消息“调用未定义的方法Google_Service_Bigquery_QueryRequest :: setDestinationTable()”,因为我没有使用作业来执行查询。
我使用下面的句子来获取查询结果,但它不起作用:
//query request service
$query = new Google_Service_Bigquery_QueryRequest();
//destination table
$destinationTable = new Google_Service_Bigquery_TableReference();
$destinationTable->setDatasetId($dataset);
$destinationTable->setProjectId($project_id);
$destinationTable->setTableId('ventastest');
$query->setDestinationTable($destinationTable);
$query->setWriteDisposition('WRITE_APPEND');
//build query
$selectQuery = "SELECT " . $fieldsQuery . " FROM " . $dataset . "." . $tableQuery;
if($whereQuery!=null && strlen($whereQuery)>0)$selectQuery = $selectQuery . " WHERE " . $whereQuery;
$query->setQuery($selectQuery);
$response = $service->jobs->query($project_id, $query);
$jsonStr = "";
if($response)if($response->getRows())$jsonStr = $response->getRows();
print_r($jsonStr);
即使我附加到service->作业,我收到错误消息:
$destinationTable = new Google_Service_Bigquery_TableReference();
$destinationTable->setDatasetId($dataset);
$destinationTable->setProjectId($project_id);
$destinationTable->setTableId('ventastest');
$service->jobs->setDestinationTable($destinationTable);
$service->jobs->setWriteDisposition('WRITE_APPEND');
谢谢,再见!
答案 0 :(得分:2)
$destinationTable = new Google_Service_Bigquery_TableReference();
$destinationTable->setDatasetId(DATASET_ID);
$destinationTable->setProjectId(PROJECT_ID);
$destinationTable->setTableId('name_of_the_table');
$queryConfig->setDestinationTable($destinationTable);
$queryConfig->setWriteDisposition('WRITE_APPEND');