Клиентская библиотека BQ PY: неточность ведения журнала API Explorer и Stackdriver - PullRequest
0 голосов
/ 29 июня 2018

(прежде всего спасибо за чтение моего длинного запроса)

Я изучаю BQ API, используя клиентские библиотеки PY.

После создания клиента bigquery.Client() >> вставив запрос задания запроса client.query(sql), я выполняю следующую команду, чтобы проверить, завершилось ли задание:

job.done()

Когда я проверяю API Explorer:

  1. Я вижу, как выполняется вызов метода bigquery.jobs.get - пока, очень хорошо ... Я считаю, что это вызов API для обновления статуса задания! enter image description here

  2. но когда я переключаю Трафик выпадающий >> >> 1024 * По учетным данным , он сообщает о дополнительном запросе API некоторыми Неуказанными учетными данными.

Может кто-то уточнить, что это за учетные данные, и какой дополнительный метод API вызывает этот учетные данные, и если он включен в проект Квоты API?

(как ни удивительно, этот дополнительный вызов сообщается только при сегментации трафика либо по коду ответа или по учетным данным , но не при сегментировании по API-методу или По версии API ) enter image description here

  1. Я ожидал дополнительного вызова метода bigquery.jobs.getQueryResults, потому что когда я смотрю на код GH, вызов job.done() вызовет self._client._get_query_results, что, кажется, делает этот дополнительный вызов API .

Может кто-нибудь уточнить, почему я не вижу сообщения об этом методе в API Explorer?

Я также посмотрел на ведение журнала Stackdriver ...

  1. Может кто-то уточнить, почему он не показывает журнал для # 1 ** (я ожидал protoPayload.methodName = jobservice.get или что-то похожее, соответствующее методу API bigquery.jobs.get), вместо этого он показывает только журнал для # 3 ( protoPayload.methodName = jobservice.getqueryresults)

enter image description here

ОБНОВЛЕНИЕ: я всегда замечаю вызов bigquery.tabledata.list (вызывается во время job.result() ?!), который API Explorer сообщает в Не указано имя клиента .. также я замечаю вызовы bigquery.jobs.get (вызывается во время job.done() ?!) не регистрируются в StackDriver

1 Ответ

0 голосов
/ 18 июля 2018
  1. bigquery.jobs.get "возвращает информацию о конкретной вакансии" [1] .

  2. Недавно открыт открытый вопрос о неуказанных учетных данных, которым вы можете следовать [2] . Если это неуказанные учетные данные с использованием какого-либо ресурса, цитируемого [3] , это может повлиять на квоту вашего проекта.

  3. Поскольку это может зависеть от того, какой идентификатор клиента вы использовали для выполнения вызовов API. Если вы не указали учетную запись службы или пользовательский идентификатор клиента, упомянутые вами «дополнительные вызовы API» могут не отображаться на панели инструментов API вашего проекта.

  4. Это может произойти, потому что выполнение bigquery.jobs.get может происходить за пределами вашего проекта, это связано с # 3.

Я рекомендую вам посетить веб-страницу Stackdriver [4] и получить доступ к Metrics Explorer. Выберите «Использованный API» в качестве типа ресурса и «Запрос» для Метрики; вы увидите альтернативное представление вызовов методов.

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