LogsRouter 导出到 BigQuery 导致部分遍历 JSON RECORD
LogsRouter export into BigQuery results in a partial traversal down a JSON RECORD
BigQuery 或 GCP LogsRouter 最近是否发生了变化,在一定深度后停止解构 JSON 日志?
具体来说,上面的 jsonPayload.metadata.event
用于自动归类为 RECORD(从先前设置的数据接收器中获知)。为了修复该错误,我们重建了表,现在遗留接收器和我们的新接收器都将此记录作为字符串输入。
有什么方法可以让我们再次将其解析为 RECORD?或者,如果这是设计使然,现在推荐的解析方法是什么?
FWIW,看起来 jsonPayload.metadata
正在正确解构,这让这一切变得更加混乱
提前致谢,
如您所知,BigQuery 中的字段数据类型是在您创建日志接收器时自动创建的。
您可以按照 BigQuery Doc
中的说明更改 BigQuery 中的数据类型
您提到在之前的架构中您有 jsonPayload.metadata.event
字段作为 RECORD 类型,这意味着应该有一些其他注册表:
jsonPayload.metadata.event.type
jsonPayload.metadata.event.name
jsonPayload.metadata.event.api_version
但是在这种情况下,如果您已经重新创建了模式,则意味着为该条目找到的数据类型被识别为 String
,因此在尝试对 BQ 模式进行任何更改之前,您可能需要检查日志记录条目正在创建架构,并在需要时自定义它们。有一些 documentation 可能会帮助您实现这一目标。
BigQuery 或 GCP LogsRouter 最近是否发生了变化,在一定深度后停止解构 JSON 日志?
具体来说,上面的 jsonPayload.metadata.event
用于自动归类为 RECORD(从先前设置的数据接收器中获知)。为了修复该错误,我们重建了表,现在遗留接收器和我们的新接收器都将此记录作为字符串输入。
有什么方法可以让我们再次将其解析为 RECORD?或者,如果这是设计使然,现在推荐的解析方法是什么?
FWIW,看起来 jsonPayload.metadata
正在正确解构,这让这一切变得更加混乱
提前致谢,
如您所知,BigQuery 中的字段数据类型是在您创建日志接收器时自动创建的。 您可以按照 BigQuery Doc
中的说明更改 BigQuery 中的数据类型您提到在之前的架构中您有 jsonPayload.metadata.event
字段作为 RECORD 类型,这意味着应该有一些其他注册表:
jsonPayload.metadata.event.type
jsonPayload.metadata.event.name
jsonPayload.metadata.event.api_version
但是在这种情况下,如果您已经重新创建了模式,则意味着为该条目找到的数据类型被识别为 String
,因此在尝试对 BQ 模式进行任何更改之前,您可能需要检查日志记录条目正在创建架构,并在需要时自定义它们。有一些 documentation 可能会帮助您实现这一目标。