如何确定 BigQuery 是否正在为物化视图自动刷新进行增量更新

问题描述 投票:0回答:1

这是一个后续问题::

了解 Google Bigquery 物化视图定价

我制作了一个物化视图,它对 50GByte 表使用一组相当复杂的查询。表中的数据每 10-20 分钟更新一次,我已将物化视图设置为每 30 分钟更新一次。完美......除了我真正想要的是物化视图只对最新数据运行查询。谷歌文档实际上表示,只要查询“简单”,它就会这样做。我的查询有 JSON 提取、一些 REGEXPS 和一些 CASE 语句,但没有 SQL UDF 或 Javascript。

我实际上想要一些复杂的 UDF......但如果这会将“简单”变成每次都会导致完整 50GByte 刷新的东西,则不会。

如何确定我的查询是否足够简单,不会每 30 分钟查询一次完整的 50GByte?除了等待月底查看我的账单...

google-bigquery materialized-views
1个回答
0
投票

取得一些进展。首先,即使我是管理员,我也需要添加到 IAM

• 角色/bigquery.metadataViewer

没有它,一切都不起作用。完成此操作后,以下查询显示对

BQ.REFRESH_MATERIALIZED_VIEW

的调用
SELECT
  creation_time,job_id,query, total_slot_ms, total_bytes_processed,
  materialized_view_statistics.materialized_view[SAFE_OFFSET(0)].rejected_reason
  AS full_refresh_reason
FROM
  `region-us.INFORMATION_SCHEMA.JOBS_BY_PROJECT`
WHERE
  job_id LIKE '%materialized_view_refresh_%'
ORDER BY creation_time DESC LIMIT 20

现在我看到我的一些材质视图表现正确:第一次创建它们时,完全刷新原因被标记为“无数据”,并且消耗的数据量很大,但所有后续刷新都被标记为原因“null” “并且消耗的数据量非常小。

不幸的是,我的大怪兽总是被标记为“无数据”,所以每次刷新时它都会消耗掉整个 50 GByte,这有点没有抓住要点……但至少现在我有一些东西可以开始了。

© www.soinside.com 2019 - 2024. All rights reserved.