BQ-PY客户端库:API资源管理器和Stackdriver日志记录差异

2024-05-16 15:07:34 发布

您现在位置:Python中文网/ 问答频道 /正文

(首先感谢您阅读我冗长的提问)

我正在学习使用PY客户端库的bqapi。你知道吗

在创建客户机bigquery.Client()>;插入查询作业请求client.query(sql)之后,我将发出以下命令来检查作业是否已完成:

job.done()

当我检查API资源管理器时:

  1. 我可以看到一个方法调用bigquery.jobs.get,到目前为止,还不错。。我相信这就是刷新作业状态的API调用! enter image description here

  2. 但是当我通过凭据切换流量drop down>;时,它会通过一些未指定的凭据报告额外的API请求。

Can someone clarify what's this Credential, and what additional API method call this credential is making and if it's included in project API quotas?

(令人惊讶的是,此附加调用仅在通过响应代码或凭据对流量进行分段时报告,而在通过API方法或API版本对流量进行分段时报告) enter image description here

  1. 我期待着额外的方法调用bigquery.jobs.getQueryResults,因为当我查看GH代码时,调用job.done()会调用^{},这似乎使这个additional API call。你知道吗

Can someone clarify why I don't see this method call in API Explorer being reported ?

我也看了Stackdriver日志。。。你知道吗

  1. Can someone clarify why it does not show the log for #1** (I expected protoPayload.methodName = jobservice.get or something similar corresponding to API method bigquery.jobs.get), instead it only shows me log for #3 (protoPayload.methodName = jobservice.getqueryresults)

enter image description here

更新:我注意到它总是调用bigquery.tabledata.list(在job.result()期间调用?!)API资源管理器在客户端名称下报告。。我还注意到对bigquery.jobs.get的调用(在job.done()期间调用?!)没有记录到StackDriver


Tags: 方法apiget报告jobsjobcallthis
1条回答
网友
1楼 · 发布于 2024-05-16 15:07:34
  1. 你知道吗bigquery.jobs.get“返回有关特定作业的信息”[1]

  2. 最近有一个公开的问题,关于您可以遵循[2]的未指定凭据。如果此未指定的凭据使用任何可引用的资源[3],则可能会影响项目的配额。

  3. 因为这可能取决于您用于进行API调用的客户机id。如果尚未指定服务帐户或自定义客户端id,则您提到的“附加API调用”可能不会出现在项目的API仪表板中。

  4. 这可能是因为bigquery.jobs.get可能发生在你的项目之外,这与#3有关。

我鼓励您访问Stackdriver的网页[4],并访问Metrics Explorer。选择“Consumed API”作为资源类型,选择“Request”作为度量;您将看到方法调用的另一种表示形式。你知道吗

相关问题 更多 >