Несколько запросов UPDATE в Google BigQuery с использованием Python - PullRequest
1 голос
/ 16 апреля 2019

Я пытаюсь выполнить несколько запросов BigQuery через Python API, но кажется, что не все они выполняются, я предполагаю, что я не даю им достаточно времени для выполнения. Что у меня есть что-то вроде:

from google.cloud import bigquery
client = bigquery.Client()

query1 = "UPDATE ..."
client.query(query1)
query2 = "UPDATE ..."
client.query(query2)
query3 = "UPDATE ..."
client.query(query3)

Мое решение до сих пор заключается в вставке команды сна перед каждым клиентским вызовом, она работает, но она довольно медленная. Будем благодарны за любые советы или подсказки о том, как сделать это более эффективным способом.

1 Ответ

2 голосов
/ 16 апреля 2019

BigQuery использует асинхронные задания для запросов.Это означает, что вы можете отправить свой запрос, но он еще не закончен.Вы можете дождаться его завершения, если для следующего обновления требуется, чтобы предыдущее было завершено.

Если они не связаны друг с другом, просто отправьте все свои обновления, а затем подождите в конце, и все должно завершиться.Возвращаемым объектом запроса является это задание, поэтому вы можете использовать его для проверки состояния любой из ваших команд обновления.

Дополнительная информация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...