Google bigquery 展平BQ日志表?
我正试图找出如何展平bigquery日志表(logs.cloudaudit\u googleapis\u com\u data\u access\u 20160404等),以便基本上可以看到任何给定目标表的所有已完成作业 理想情况下,我只需要像下面这样的东西,向我显示所有与表[dataset_xyz.table_abc]相关的作业条目,然后我就可以知道如何根据作业类型等来理解某些字段的填充Google bigquery 展平BQ日志表?,google-bigquery,Google Bigquery,我正试图找出如何展平bigquery日志表(logs.cloudaudit\u googleapis\u com\u data\u access\u 20160404等),以便基本上可以看到任何给定目标表的所有已完成作业 理想情况下,我只需要像下面这样的东西,向我显示所有与表[dataset_xyz.table_abc]相关的作业条目,然后我就可以知道如何根据作业类型等来理解某些字段的填充 SELECT * FROM [logs.cloudaudit_googleapis_com_d
SELECT
*
FROM
[logs.cloudaudit_googleapis_com_data_access_20160404]
where
(
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.query.destinationTable.datasetId='dataset_xyz'
and
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.query.destinationTable.tableId='table_abc'
)
or
(
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.tableCopy.destinationTable.datasetId='dataset_xyz'
and
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.tableCopy.destinationTable.tableId='table_abc'
)
or
(
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.destinationTable.datasetId='dataset_xyz'
and
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.destinationTable.tableId='table_abc'
)
我试着做了很多嵌套展平,但由于发现日志结构有点复杂,我无法真正理解它
我基本上希望能够查询日志导出,说“显示与编辑表[dataset_xyz.table_abc]有关的所有内容”,因此我猜主要是加载、表复制和查询作业,这些作业附加或重写表[dataset_xyz.table_abc]中的任何数据
我唯一能想到的下一件事就是沿着嵌套的记录将表拆开,然后以某种方式将它们分别连接在一起,但这似乎是一个疯狂的想法。我确信有一种方法可以重复地将其展平,但我就是不知道如何展平如此复杂的结构。即使我可以将protoPayload.serviceData.jobCompletedEvent.*下的所有内容展平,我也可以这样做
select protoPayload.serviceData.jobCompletedEvent.* from flatten(...
或者也许有一个更简单的方法来解决这个问题,而我却错过了
p、 我认为这可能是一个很好的例子,因为我认为这是人们想要做的足够普遍的事情 您是否尝试过以下方法:
选择protoPayload.serviceData.jobCompletedEvent.job.jobName.jobId
来自[audit_logs.cloudaudit_googleapis_com_data_access_20160406]
如果(求和),则省略记录(
(protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.query.destinationTable.tableId='table'和
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.query.destinationTable.datasetId='ds'
)
或
(
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.destinationTable.datasetId='ds'和
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.destinationTable.tableId='table'
)
)=0)