有什么方法可以查看BigQuery中当前在缓存中的查询吗?还是可以安全地假设在特定时间范围内进行的所有查询将被缓存?
答案 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'