簡體   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