如何获取有关 BigQuery 中正在使用/查询的视图和数据集的使用数据?

Posted

技术标签:

【中文标题】如何获取有关 BigQuery 中正在使用/查询的视图和数据集的使用数据?【英文标题】:How do I get usage data about the what views and datasets are being used/queried in BigQuery? 【发布时间】:2019-07-08 16:13:40 【问题描述】:

我需要 BigQuery 中数据集和视图的使用情况数据。我想计算针对所有不同数据集和视图运行了多少查询。我的目标是了解当前正在使用哪些数据集和视图。

我查看了审核日志,但无法将所有记录导出到 Excel 中进行分析。我最多只能导出特定日期的 300 条日志。有没有办法在 BigQuery 中运行查询,而不是从审核日志中导出这些数据?

【问题讨论】:

【参考方案1】:

是的,您可以设置 export "sink" in Stackdriver 将数据导入 BigQuery 进行分析。他们还提供了有关 payload fields are transformed 如何导出的文档。

第一个链接包含一些关于仅过滤到 BigQueryAuditMetadata 类型的注释,但请注意,您还可以使用 advanced log filter 过滤有效负载内的字段(例如,如果您只想查看哪些表正在写,读,只包括某些用户等)。

显然,您可以根据需要将所有内容流式传输到 BigQuery,但过滤有助于降低噪音。

【讨论】:

感谢您的快速回答,非常感谢您的帮助!我根据文档创建了一个导出接收器,并为 resource.type="bigquery_dataset" 进行了过滤。我看到在 BigQuery 中创建的数据集。如何查询这些数据?该数据集没有任何表或视图。 其实刷新BigQuery后我看到数据集中现在有表了。但是,看起来加载需要一些时间,并且我看到了一些流缓冲区统计信息。您知道加载三个月的审计日志需要多长时间吗? @Ck87 这实际上取决于您帐户上的活动量(包括间接访问,例如可能会增加大量噪音的 Data Studio 连接)。除了同步最近的数据外,在数据被分区之前可能会有 90 分钟的延迟——但仍然可以查询流式缓冲区(它将只有 _PARTITIONTIMENULL)。如果您还没有处理过流式插入,您可能想看看cloud.google.com/bigquery/streaming-data-into-bigquery。如果这最终解决了,请随时接受答案;如果没有,我很乐意提供进一步的帮助。

以上是关于如何获取有关 BigQuery 中正在使用/查询的视图和数据集的使用数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取参数化 BigQuery 查询的控制台视图?

如何使用 API 在 BigQuery 中获取临时表的名称

如何使用 Google Bigquery 的 Java API 以 Json 形式获取查询结果

如何在 BigQuery 中透视表

如何使用 Google Analytics 数据在 Bigquery 中获取可用的日期时间字段

如何从 bigquery 中的视图中获取已保存的查询