# #google-cloud-platform #google-bigquery
Вопрос:
Я пытаюсь выяснить, как указать местоположение набора данных в запросе API BigQuery, используя версию 0.27 API BigQuery.
У меня есть набор данных, расположенный в northamerica-northeast1
, и API BigQuery возвращает 404 ошибки, так как это не мультирегиональное местоположение по умолчанию «США».
Я использую этот run_async_query
метод для выполнения своих запросов, но, основываясь на документации, не уверен, как добавить местоположение в это поле, чтобы оно было известно о местоположении.
Я также пытался ранее обновить экземпляр моего клиента следующим образом:
def _get_client(self):
bigquery.Client.SCOPE = (
'https://www.googleapis.com/auth/bigquery',
'https://www.googleapis.com/auth/cloud-platform',
'https://www.googleapis.com/auth/drive')
client = bigquery.Client.from_service_account_json(_KEY_FILE)
if self._params['bq_data_location'].strip():
client.location = self._params['bq_data_location']
return client
Однако не похоже, что это правильный способ сообщить API BigQuery о местоположении набора данных.
Для дополнительного контекста в моем SQL, который я передаю API BigQuery, я уже указываю PROJECT_ID.DATASET_ID.TABLE_ID
, однако этого, по-видимому, недостаточно для поиска региональных данных.
Кроме того, я делаю этот запрос из Google App Engine, используя платформу потока данных с открытым исходным кодом CRMint.
Не могли бы вы помочь мне с примером того, как можно добавить местоположение в API BigQuery для версии 0.27, чтобы API не возвращал 404?
Спасибо!
Ответ №1:
Из примера кода видно, что вы, скорее всего, говорите о google-cloud-bigquery 0.27, который был выпущен в августе 2017 года и предшествовал поддержке определения местоположения (а также многим другим функциям).
Лучше всего обновить эту зависимость до чего-то более нового.
Комментарии:
1. Да, расположение набора данных, по-видимому, было введено самое раннее в 0.32. Обновление-это единственное решение здесь.