BigQuery: ошибка при получении результатов запроса с PHP

# #php #google-bigquery

#php #google-bigquery

Вопрос:

Я изменил некоторые конфигурации в BigQuery, и на самом деле я больше не могу получать данные.

Это и есть поток:

 $query = "select what i need to select";  $client = new Google_Client();  $client-gt;setApplicationName('Google-BigQuery');  $client-gt;useApplicationDefaultCredentials(); // running in app engine env  $client-gt;addScope('https://www.googleapis.com/auth/bigquery');  $client-gt;addScope('https://www.googleapis.com/auth/devstorage.read_write');  $bq = new Google_Service_Bigquery($client);  $job = new Google_Service_Bigquery_Job();  $config = new Google_Service_Bigquery_JobConfiguration();  $queryConfig = new Google_Service_Bigquery_JobConfigurationQuery();  $config-gt;setQuery($queryConfig);  $job-gt;setConfiguration($config);  $queryConfig-gt;setQuery($query);  

Затем:

 $job = $bq-gt;jobs-gt;insert($project, $job); // OK $jr = $job-gt;getJobReference(); // OK -gt; here i got jobid as $jr['jobId'] $queryResults = $bq-gt;jobs-gt;getQueryResults('my-project', 'job-id-from-jr'); // ERROR  

Если я выполню запрос с панели мониторинга BigQuery, это будет работа, и я смогу получить результаты. Здесь я получил ошибку 404 «не найдено», я проверил, совпадает ли идентификатор задания с этим на панели мониторинга, и он совпадает. { «ошибка»: { «код»: 404, «сообщение»: «Не найдено: Задание мой проект:идентификатор задания»,

Единственное отличие состоит в том, что в задании внутри панели мониторинга указано местоположение как

мое имя:европа-запад1.идентификатор работы

Не могу найти способ напрямую указать зону выполнения, я попытался добавить europe-west1 в качестве строки перед идентификатором задания, но получил ошибку (это невозможно сделать).

Есть ли способ это исправить? Можно ли указать зону?

Спасибо!

Ответ №1:

Хорошо, решено путем передачи массива в качестве 3-го параметра

 $arrLocation = array("location" =gt; "europe-west1"); $queryResults = $bq-gt;jobs-gt;getQueryResults('my-project', 'job-id-from-jr', $arrLocation);