【发布时间】:2019-12-26 01:02:51
【问题描述】:
如何使用bq ls 命令获得运行时间最长的 bq 作业?
我找不到如何对结果进行排序的示例
编辑:每个 cmets,如何使用 bigquery 日志查看正在运行的作业让我非常困惑。以这个 stackdriver 日志查询为例:
resource.type="bigquery_resource"
logName="projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access"
protoPayload.resourceName="projects/my-project/jobs/job_abc123"
那应该返回作业 job_abc123 的所有日志,对吗?好吧,我只返回一个带有protoPayload.methodName="jobservice.jobcompleted" 的条目,而protoPayload.status 是空白的。
那么我应该搜索哪些日志才能查看 job_abc123 的运行历史记录?如何使用 BQ SD 日志查看正在进行的查询及其当前运行时间?谷歌的文档很混乱,对我没有帮助
【问题讨论】:
-
执行此操作的最简单方法是将所有 BigQuery 日志导出回 BigQuery 本身,然后只需编写一些 SQL。如果你想要一个 hacky/quick 的解决方案,你可以使用一些 bash 魔法。
-
有没有办法创建一个接收器来自动做到这一点?还是您每次都必须手动执行此操作
-
不,您需要创建接收器并在之后编写一些 SQL。您可以将 SQL 保存为视图,这样您只需执行一次。
-
查看此链接如何自动化日志导出cloud.google.com/bigquery/docs/reference/auditlogs/…。它工作得很好,您可以使用调度程序或任何其他自动化工具来获得最长的查询
-
@TamirKlein 但审核日志是否显示当前正在运行的查询?这是如何运作的? SD 是否为每分钟或正在运行的某项工作写入日志?
标签: google-bigquery