如何编写GCP Log Explorer过滤规则筛选多表引用BigQuery审计日志
筛选referencedTables包含两个及以上项的BigQuery审计日志
正确过滤规则
使用Log Explorer支持的array_length()函数判断数组元素数量,规则如下:
resource.type="bigquery_resource" protoPayload.methodName="jobservice.jobcompleted" array_length(protoPayload.metadata.jobChange.job.jobStats.queryStats.referencedTables) >= 2
原方法无效原因
- 方法1、2:
referencedTables是数组类型,Log Explorer不支持通过.count直接获取数组长度,这类语法不符合日志过滤的表达式规范。 - 方法3:字段名拼写错误(应为
referencedTables而非referencedTable),且数组元素是独立结构,无法通过正则匹配数组的字符串形式来判断元素数量。 - 方法4:Log Explorer过滤语法不支持
referencedTables[1]这种数组下标访问方式,无法通过判断第二个元素存在来间接确认数组长度。
补充说明
该规则会精准筛选出BigQuery任务完成日志中,referencedTables数组包含2个及以上表项的条目,对应INSERT INTO...SELECT这类涉及多表操作的查询审计日志。
内容的提问来源于stack exchange,提问作者Jay A
相关产品推荐
相关产品推荐

