为什么使用 V2 格式的 BigQuery 审核日志的列名称中包含“_v1_”?

Why do BigQuery audit logs that use the V2 format, have column names with "_v1_"?

我使用新的 V2 格式通过控制台打开了审计日志,并创建了一个接收器将它们导出回 BigQuery 进行分析:

导出到 BigQuery 的 table 在列名中都有“v1”,即使我选择了 V2 格式:

然后,当我尝试查询 table 时,因为列名超过 128 个字符,它会抛出错误:

为什么要使用 v1 命名模式导出审核日志,以及如何避免列名超过 128 个字符的限制?

how do I get around the column names being over the 128 character limit?

我认为问题不在于引用长命名列路径,而在于输出列的名称
因此,要解决 Legacy SQL 中的问题 - 您应该提供符合名称 cnvention 的别名。
或者只使用标准 SQL - 在这种情况下,别名默认是叶字段的名称(在这种情况下 totalBilledBytes

#legacySQL  
SELECT  
  protopayload_google_cloud_audit_auditlog.
    servicedata_google_cloud_bigquery_logging_v1_auditdata.
    jobCompletedEvent.
    job.
    jobStatistics.
    totalBilledBytes AS totalBilledBytes   
FROM [yourTable]

#standardSQL   
SELECT  
  protopayload_google_cloud_audit_auditlog.
    servicedata_google_cloud_bigquery_logging_v1_auditdata.
    jobCompletedEvent.
    job.
    jobStatistics.
    totalBilledBytes    
FROM `yourTable`

Why are the audit logs being exported using the v1 naming schema?

v2 格式的导出指的是 LogEntry 包含审核日志负载。

列名中的 'v1' 是 BigQuery AuditData 消息(特别是 google.cloud.bigquery.logging.v1.AuditData 协议缓冲区)的版本,它存储在日志条目的原型负载字段中。 public documentation,以 REST 风格描述,不公开版本。