我目前正在使用来自控制台的内置流媒体将我的App Engine日志流式传输到Big Query。据我所知,您不能定义任何处理数据的函数。
是否有实际日志内容的最佳做法?目前,我只是使用context.Infof打印东西,它可以打印结构的字段和值,原始文本进入列protoPayload.line.logMessage
打印JSON数据然后使用JSON函数听起来好多了? https://cloud.google.com/bigquery/query-reference#jsonfunctions
答案 0 :(得分:2)
此功能非常新,所以我认为还没有最佳做法。如果您不介意更改代码,在应用程序日志中记录JSON,然后使用BigQuery的JSON函数是一个很好的选择。如果您要处理现有应用日志,还可以使用REGEXP_EXTRACT来解析自由格式文本。
需要注意的一点是,如果每个请求有多个应用程序日志,它们将存储在重复的字段中,并且在BigQuery中查询重复的字段有点棘手。 BigQuery会自动展平结果,因此如果您的查询与每个请求匹配多个应用程序日志,那么您的请求日志条目可能会比请求更多。 " GROUP BY protoPayload.requestId"在这种情况下可能很有用。