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