我使用新的V2格式通过控制台打开了审核日志,并创建了一个接收器,将它们导出回BigQuery进行分析:
导出到BigQuery的表在列名中都有“ v1 ”,即使我选择了V2格式:
然后,当我尝试查询表时,因为列名超过128个字符,所以会引发错误:
为什么使用v1命名架构导出审核日志,如何绕过超过128个字符限制的列名?
答案 0 :(得分:2)
如何解决超过128个字符限制的列名?
我认为问题不在于引用长命名列路径,而是在输出列的名称中
因此,要解决旧版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`
答案 1 :(得分:0)
为什么使用v1命名架构导出审核日志?
v2格式的导出是指包含审核日志有效内容的LogEntry。
列名中的“v1”是BigQuery AuditData消息的版本(特别是google.cloud.bigquery.logging.v1.AuditData
协议缓冲区),它存储在日志条目的proto payload字段中。以REST样式描述的public documentation不公开版本。