(首先感谢您阅读我冗长的查询)
我正在使用PY客户端库学习BQ API。
创建客户端 >>插入查询作业请求
bigquery.Client()
之后,我正在发出以下命令来检查作业是否已完成:
client.query(sql)
当我检查API资源管理器时:
,但是当我切换 Traffic 下拉列表>> 通过凭据时,它会通过某些未指定凭据报告其他API请求。
有人可以澄清此凭证是什么,以及该凭证正在生成的附加API方法是什么,以及是否包含在项目中 API配额?
(令人惊讶的是,仅在通过通过响应代码或通过凭据对流量进行细分时才报告此附加调用,而在通过API方法进行细分时却没有报告或通过API版本)
bigquery.jobs.get
,因为当我查看GH代码时,调用bigquery.jobs.getQueryResults
会调用self._client._get_query_results
,这似乎使此additional API call。 有人可以澄清为什么我没有看到报告在API Explorer中的此方法调用吗?
我也查看了Stackdriver Logging ...
有人可以澄清为什么它不显示#1 **的日志(我期望
job.done()
=protoPayload.methodName
或类似于API方法jobservice.get
的东西),而是仅显示我登录#3(bigquery.jobs.get
=protoPayload.methodName
)
更新:我注意到它始终是对jobservice.getqueryresults
的调用(在bigquery.tabledata.list
期间被调用!!),API Explorer在 Unspecified 客户端名称下报告。 job.result()
(在bigquery.jobs.get
期间被调用?!)未记录到StackDriver
答案 0 :(得分:1)
bigquery.jobs.get“返回有关特定作业的信息” [1]。
最近有一个公开问题,涉及未指定的凭据,您可以遵循[2]。如果此未指定的凭据使用任何引号为[3]的资源,则可能会影响项目的配额。
因为它可能取决于您用于进行API调用的客户端ID。如果您未指定服务帐户或自定义客户端ID,则您提到的“其他API调用”可能不会出现在项目的API仪表板中。
这可能是因为bigquery.jobs.get的执行可能发生在您的项目之外,这与#3有关。
我建议您访问Stackdriver的网页[4],并访问Metrics Explorer。选择“已使用的API”作为资源类型,并选择“请求”作为指标;您将看到方法调用的另一种表示形式。