Bigquery PHP заполнить таблицу с заданием вставки

Я пытаюсь заполнить ранее созданную таблицу из задания вставки в PHP.
В документации Google есть короткий абзац, в котором говорится следующее:

«Запустите асинхронный запрос, передайте имя существующей таблицы и установите writeDisposition = WRITE_APPEND.»

Теперь я получаю строки из больших запросов, используя следующие предложения:

      // 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);

Даже если я присоединяюсь к сервису -> работа, я получаю сообщение об ошибке:

  $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');

Спасибо и пока!

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');
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]