BigQuery 摘要

Posted

技术标签:

【中文标题】BigQuery 摘要【英文标题】:BigQuery summary 【发布时间】:2021-03-12 01:48:37 【问题描述】:

我可以在哪里/如何轻松查看每月运行了多少 BigQuery 分析查询。总体存储使用情况/随时间变化(每月)如何?

我快速浏览了“监控 > 仪表板 > Bigquery”。那是探索的最佳地点吗?它似乎只能追溯到 10 月初 - 是在发布时还是仅显示最后 X 周的数据?尝试查询计数的指标资源管理器 (Metric:bigquery.googleapis.com/job/num_in_flight) 给了我一个奇怪的未标记 y 轴,例如0 到 0.08 的范围?奇怪的是,我预计每周会运行数百个查询。

背景:随着月份的进展,最好对 BigQuery 进行高级摘要,以便为更广泛的组织和管理提供有关使用规模的想法。

【问题讨论】:

【参考方案1】:

您可以通过导出 BigQuery 使用日志来跟踪计费的字节数。

设置日志导出(这是使用旧版日志查看器)

    打开日志记录 -> 日志查看器 点击创建接收器 输入“接收器名称” 对于“接收器服务”,选择“BigQuery 数据集” 选择要监控的 BigQuery 数据集 创建接收器

Create sink

启用日志后,所有要执行的查询都会将数据使用日志存储在您在接收器中选择的 BigQuery 数据集下的“cloudaudit_googleapis_com_data_access_YYYYMMDD”表中。

Created cloudaudit_googleapis_com_* tables

Here is a sample query to get bytes used per user

  #standardSQL
  WITH data as
  (
    SELECT
      protopayload_auditlog.authenticationInfo.principalEmail as principalEmail,
      protopayload_auditlog.metadataJson AS metadataJson,
      CAST(JSON_EXTRACT_SCALAR(protopayload_auditlog.metadataJson,
          "$.jobChange.job.jobStats.queryStats.totalBilledBytes") AS INT64) AS totalBilledBytes,
    FROM
      `myproject_id.training_big_query.cloudaudit_googleapis_com_data_access_*`
  )
  SELECT
    principalEmail,
    SUM(totalBilledBytes) AS billed_bytes
  FROM
    data
  WHERE
    JSON_EXTRACT_SCALAR(metadataJson, "$.jobChange.job.jobConfig.type") = "QUERY"
  GROUP BY principalEmail
  ORDER BY billed_bytes DESC

Query results

注意事项: 您只能从设置日志导出之日开始跟踪使用情况 每天创建表“cloudaudit_googleapis_com_data_access_YYYYMMDD”以跟踪所有日志

【讨论】:

我也是用这种方式来监控BigQuery的!记录您想要的内容并对此进行分析!我赞成!【参考方案2】:

我认为 Cloud Monitoring 是创建和查看指标的唯一地方。如果您对它们默认为 BigQuery 提供的内容不满意,唯一的另一种选择是创建您自己的定制购物车和仪表板以满足您的需求。您可以使用监控查询语言来实现这一点。使用 MQL,您可以实现您在问题中描述的内容。以下是更多详细信息的链接。

    Introduction to BigQuery monitoring Introduction to Monitoring Query Language

【讨论】:

以上是关于BigQuery 摘要的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 传输与 BigQuery 负载

BigQuery - 获取 BigQuery 表中的总列数

数据处理 - BigQuery 与 Data Proc+BigQuery

BigQuery:写入查询结果时使用 bigquery 作业的意外行为

Google BigQuery - 将数据流式传输到 BigQuery

Python BigQuery 脚本 bigquery.jobs.create 错误