关于BigQuery官方文档中路径表达式的用途与有效性问询
BigQuery路径表达式的疑问与排查
BigQuery官方文档中描述了路径表达式(path expressions),给出的示例如下:
foo.bar foo.bar/25 foo/bar:25 foo/bar/25-31 /foo/bar /25/foo/bar
但文档仅简要提及:
路径表达式描述了如何在对象图中导航至目标对象。
未对其使用方式、场景做详细说明,由此产生以下疑问:
- 此处的“对象图”具体指什么?
- 如何结合对象图使用该语法?
- 类似
foo/bar/25-31的路径表达式含义是什么?
核心问题:官方文档中描述的这些路径表达式究竟是什么?
检索BigQuery全量文档后,未找到关于该路径表达式的其他提及内容,进一步疑问:该语法是否真的属于BigQuery SQL的一部分?
已排查内容
Stack Overflow上已有相关问题,但无有效答案。基于该问题下的假设,完成了以下排查:
并非表引用语法
BigQuery Legacy SQL曾使用类似路径的语法引用表:
SELECT state, year FROM [bigquery-public-data:samples.natality]
但该语法仅在Legacy SQL中有效,标准SQL中会触发语法错误。且BigQuery标准SQL有独立的表路径语法,与文档中的路径表达式语法完全不同。
并非JSONPath语法
BigQuery的JSONPath有独立文档定义,用法示例如下:
SELECT JSON_QUERY(json_text, '$.class.students[0]')
其语法形式与文档中的路径表达式差异明显。
并非JSON对象图访问语法
BigQuery还支持独立的JSON下标运算符来访问JSON对象,示例如下:
SELECT json_value.class.students[0]['name']
该语法同样与文档中的路径表达式不匹配。
当前假设
推测BigQuery实际上并不支持文档中描述的这类路径表达式,官方文档的该部分内容存在错误。由于正在开发BigQuery SQL解析器,需明确BigQuery允许的全部语法,因此希望得到准确结论。
内容的提问来源于stack exchange,提问作者Rene Saarsoo
相关产品推荐
相关产品推荐

