繁体   English   中英

BigQuery 中的“path_expression”是什么

[英]What is a "path_expression" in BigQuery

BigQuery 在语法页面中描述了一个path_expression ,如下所示:

路径表达式描述了如何在对象图中导航到 object,并且通常遵循此结构...

例子:

 foo.bar foo.bar/25 foo/bar:25 foo/bar/25-31 /foo/bar /25/foo/bar

具有有效表的路径表达式的一些实际示例是什么,例如在 CTE 中? 我的想法是路径表达式将是明确限定字段或结构子字段的内容,例如:

myTable.myField.mySubfield

但是从上面的语法来看,它允许:

/:-

我不确定它是什么或如何使用它。 有人可以展示一个如何使用路径表达式的真实示例吗?

路径表达式描述了在哪里搜索(或存储)数据。 考虑这个例子

#legacySQL
SELECT
  weight_pounds, state, year, gestation_weeks
FROM
  [bigquery-public-data:samples.natality]
ORDER BY
  weight_pounds DESC
LIMIT
  10;

在此示例中,部分[bigquery-public-data:samples.natality]path_expression 据说要查看natality bigquery-public-data项目中samples数据库中的出生表。

但是从上面的语法来看,它允许: /:-

这实际上是不允许的,作为path_expression

此示例将被解析为:

/:-

{first_part}/{subsequent_part}:{subsequent_part}

{{ unquoted_identifier | quoted_identifier }} / 
{{ unquoted_identifier | quoted_identifier | number }} : 
{{ unquoted_identifier | quoted_identifier | number }}

unquoted_identifier必须至少以字母或下划线开头。 一个quoted_identifier可以包含任何字符,但不能为空。 因此,空字符串不能被视为unquoted_identifierquoted_identifiernumber ,因此该表达式无效(并且在 3 个位置无效)。

一个可能的最小path_expression可能类似于:

a:b.c

意思是在a项目的b数据库中查看c表。

我可能是错的,但我认为您将Path Expression (如参考文档中定义的那样)与(例如)JSONPath 之类的东西混淆了。
在我看来,前者只是为了在文档中有一致的参考而引入的术语,而后来(显然)是 JSON 的查询语言,类似于 Z3501BB093D363810B671EDF8Z9 的 XPath 的查询语言。

因此,如果您要求使用 JSONPath 之类的东西 - 我敢打赌您会得到一些使用示例,但询问Path Expression use并没有太多机会收集答案,即使有大量的赏金,因为它仅在该文档中使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM