在隐式取消中,array_path必须解析为ARRAY,UNNEST关键字是可选的。
示例:
SELECT * FROM mytable.struct_typed_column.array_typed_field1;
然而,当我在通过StackDriver导出的真实的appengine日志上尝试这个时:
SELECT *
FROM log_stream.appengine_googleapis_com_request_log_20160928.protoPayload.line
我收到错误:
表名无效:log_stream.appengine_googleapis_com_request_log_20160928:protoPayload.line
为了澄清我想要完成的任务,如果有帮助,此查询将返回我正在尝试UNNEST的行:
SELECT protoPayload.line
FROM log_stream.appengine_googleapis_com_request_log_20160928
WHERE ARRAY_LENGTH(protoPayload.line) > 0
LIMIT 10
我错过了什么?
答案 0 :(得分:1)
我针对我们的文档提交了一个(内部)错误,根据您的反馈澄清了这一部分,希望我们能尽快解决。在此期间,迁移指南的This section会更有帮助。
假设line
重复这样做你想要的:
SELECT line
FROM log_stream.appengine_googleapis_com_request_log_20160928 AS t,
t.protoPayload.line AS line
LIMIT 10;
或者,如果protoPayload
重复,则会:
SELECT protoPayload.line
FROM log_stream.appengine_googleapis_com_request_log_20160928 AS t,
t.protoPayload AS protoPayload
LIMIT 10;