BigQuery定时查询写入数据未触发告警问题及解决方案咨询
问题解答
定时查询写入是否被「Uploaded rows」指标统计?
是的,定时查询写入的数据不会被该指标统计。「BigQuery Dataset - Uploaded rows」仅统计通过加载作业(比如从GCS上传文件、本地文件导入)写入的行数,而定时查询通常通过INSERT、MERGE或CREATE TABLE AS SELECT这类DML/DDL操作写入数据,这类操作的行数不会被该指标捕获。
如何配置指定邮箱的告警监控日分区数据?
可以通过Cloud Monitoring结合BigQuery的原生指标或自定义查询来实现,步骤如下:
方法一:基于原生「Row count」指标配置
- 进入Cloud Monitoring控制台,创建新的告警策略
- 选择指标:依次展开
BigQuery > Table > Row count,指定你的项目、数据集和目标表 - 过滤分区:添加过滤条件,选择
partition_time,设置为相对时间-1d(匹配前一日的分区) - 设置阈值:配置触发条件为「当时间序列值 > 0」,即分区有数据时触发告警
- 配置通知渠道:
- 在告警策略的「通知」环节,点击「添加通知渠道」
- 选择「电子邮件」类型,输入需要接收告警的指定邮箱,保存渠道
- 将该渠道关联到当前告警策略,完成配置
方法二:自定义查询+自定义指标(适合复杂逻辑)
如果需要更灵活的分区检查逻辑,比如结合业务规则判断数据有效性,可以用这种方式:
- 编写BigQuery查询,检查目标分区的行数:
SELECT COUNT(*) AS row_count FROM `你的项目ID.你的数据集.你的表` WHERE DATE(_PARTITIONTIME) = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY) - 创建定时查询,将该查询的结果导出到Cloud Monitoring的自定义指标(在定时查询的「目标设置」里选择「导出到Cloud Monitoring」,指定指标名称和标签)
- 在Cloud Monitoring中基于这个自定义指标创建告警策略,设置阈值为
row_count > 0 - 同样配置指定邮箱的通知渠道,关联到告警策略即可
内容的提问来源于stack exchange,提问作者Maciej Jankowski
相关产品推荐
相关产品推荐

