查看BigQuery中缓存了哪些查询?

时间:2020-03-13 06:24:26

标签: google-bigquery

有什么方法可以查看BigQuery中当前在缓存中的查询吗?还是可以安全地假设在特定时间范围内进行的所有查询将被缓存?

1 个答案:

答案 0 :(得分:1)

您可以利用Job metadata来查询INFORMATION_SCHEMA.JOBS_BY_*并获得详细列表,其中包含有关所有正在运行的作业和过去的作业(最多180天)的信息。您要查找的字段是布尔值cache_hit。通过以下查询,您将检索所有已缓存作业的列表以及其他字段。

SELECT
  creation_time,
  user_email,
  job_id,
  cache_hit,
  total_bytes_processed
FROM
  `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
  job_type = "QUERY"
  AND cache_hit = TRUE
ORDER BY
  creation_time DESC

请注意,以上查询显示了美国地区的结果,其中other available fields可以为您提供有趣的信息。此外,您可以使用bq query命令在命令行中运行此查询。

bq query --nouse_legacy_sql \
'SELECT
 creation_time, user_email, job_id, cache_hit, total_bytes_processed
FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE job_type = "QUERY" AND cache_hit = TRUE'