Dataplex Universal Catalog 的搜尋語法

本文將說明 Dataplex 通用目錄搜尋查詢的語法。閱讀本文前,請務必先瞭解 Dataplex Universal Catalog 中的中繼資料管理概念,例如項目、切面、切面類型、項目群組和項目類型。詳情請參閱「關於 Dataplex Universal Catalog 中的資料目錄管理」。

如要在Google Cloud 控制台中啟動 Dataplex Universal Catalog 搜尋查詢,請前往 Dataplex Universal Catalog「Search」頁面,然後選取「Dataplex Catalog」做為搜尋模式。

前往「Search」(搜尋) 頁面

詳情請參閱「在 Dataplex Universal Catalog 中搜尋資源」。

最簡單的 Dataplex Universal Catalog 搜尋查詢只包含一個述詞。這類述詞可比對多個中繼資料:

  • 資源名稱、顯示名稱或說明的子字串
  • 資源類型的子字串
  • 資源結構定義中資料欄名稱 (或巢狀欄名稱) 的子字串
  • 專案 ID 的子字串
  • 摘要說明中的字串

例如,述詞 foo 會比對下列資源:

  • 名稱為 foo.bar 的資源
  • 顯示名稱為 Foo Bar 的資源
  • 說明為 This is the foo script 的資源
  • 具備確切類型 foo 的資源
  • 資源結構定義中的 foo_bar
  • 資源結構定義中的巢狀欄 foo_bar
  • 專案 prod-foo-bar
  • 資源的總覽包含 foo 字詞

限定述詞

您可以限定述詞,方法是在述詞前面加上一個鍵,藉此將比對作業限制於中繼資料的特定部分:

  • 等號 (=) 會將搜尋範圍限制為完全比對。
  • 鍵後面的冒號 (:) 會將謂詞與搜尋結果中值內的子字串或符記比對。

符記化會將一段文字拆解為一連串符記,一個符記通常會對應至一個字詞。

例如:

  • name:foo 會選取名稱含有 foo 子字串的資源,例如 foo1barfoo
  • description:foo 會選取說明中含有 foo 符記的資源,例如 barfoo
  • location=foo 會比對指定位置中的資源,其中 foo 為位置名稱。

限制條件鍵 typesystemlocationorgid 僅支援完全比對 (=) 限定詞,而非子字串限定詞 (:)。例如 type=fooorgid=number

Dataplex Universal Catalog 支援下列限定詞:

限定詞 說明
name:x x 做為資源 ID 的子字串進行比對。
displayname:x x 做為資源顯示名稱的子字串比對。
column:x x 比對為資源結構定義中資料欄名稱 (或巢狀資料欄名稱) 的子字串。
description:x x 做為資源說明中的符記比對。
label:bar 比對具有標籤 (具有某些值) 的 BigQuery 資源,且標籤鍵包含 bar 做為子字串。
label=bar 比對具有標籤 (具有某些值) 且標籤鍵等於 bar 的字串形式的 BigQuery 資源。
label:bar:x x 比對為 BigQuery 資源中標籤值的子字串,且該標籤值附有 bar 鍵。
label=foo:bar 比對鍵值等於 foo 且鍵值等於 bar 的 BigQuery 資源。
label.foo=bar 比對鍵值等於 foo 且鍵值等於 bar 的 BigQuery 資源。
label.foo 比對標籤鍵值為 foo 的 BigQuery 資源。
type=TYPE 比對特定項目類型或其類型別名的資源。
projectid:bar 比對 ID 中包含 bar 做為子字串的 Google Cloud 專案內資源。
parent:x x 比對為資源階層路徑的子字串。父項路徑是父項資源的 fully_qualified_name
orgid=number 比對 Google Cloud 機構內的資源,其 ID 值必須與 number 完全相符。
system=SYSTEM 比對指定系統中的資源。
location=LOCATION

比對指定位置中名稱完全相符的資源。例如,location=us-central1 會比對在愛荷華州代管的資產。

BigQuery Omni 素材資源會使用 BigQuery Omni 位置名稱支援這個限定條件。例如,location=aws-us-east-1 會比對位於維吉尼亞州北部的 BigQuery Omni 資產。

createtime

尋找在指定日期或時間之前、當天或之後建立的資源。

例如:

  • createtime:2019-01-01 與 2019-01-01 建立的資源相符。
  • createtime<2019-02 會比對 2019-02-01T00:00:00 之前建立的資源。
  • createtime>2019-02 會比對 2019-02-01T00:00:00 之後建立的資源。

時間戳記格式:YYYY-MM-DDThh:mm:ss

所有時間戳記都必須採用 GMT (不支援時區)。系統支援部分時間戳記、連字號 (-) 日期分隔符和斜線 (/) 日期分隔符。

例如:

  • 2010-10-22T05:36:24
  • 2010-10-22T05:36
  • 2010-10-22T05
  • 2010-10-22
  • 2010-10
  • 2010
  • 2010/10/22
updatetime

尋找在指定日期或時間之前、當天或之後更新的資源。

例如:

  • updatetime:2019-01-01 會比對 2019-01-01 更新的資源。
  • updatetime<2019-02 會比對 2019-02-01T00:00:00 之前更新的資源。
  • updatetime>2019-02 會比對 2019-02-01T00:00:00 之後更新的資源。

時間戳記格式:YYYY-MM-DDThh:mm:ss

所有時間戳記都必須採用 GMT (不支援時區)。系統支援部分時間戳記、連字號 (-) 日期分隔符和斜線 (/) 日期分隔符。

例如:

  • 2010-10-22T05:36:24
  • 2010-10-22T05:36
  • 2010-10-22T05
  • 2010-10-22
  • 2010-10
  • 2010
  • 2010/10/22
fully_qualified_name:x x 比對為 fully_qualified_name 的子字串。
fully_qualified_name=x x 比對為 fully_qualified_name

如要根據附加的面向搜尋項目,請使用以下查詢語法。

限定詞 說明
aspect:x 比對 x 做為附加至項目的面向類型完整路徑的子字串,格式為 projectid.location.ASPECT_TYPE_ID
aspect=x x 相符,為附加至項目的面向類型完整路徑,格式為 projectid.location.ASPECT_TYPE_ID
aspect:xOPERATORvalue

搜尋 aspect 欄位值。比對 x 的子字串,該子字串為附加至項目的面向型別和面向欄位名稱的完整路徑,格式為 projectid.location.ASPECT_TYPE_ID.FIELD_NAME

支援的運算子清單取決於各個面向中的欄位類型,如下所示:

  • 字串= (完全比對) 和 : (子字串)
  • 所有數字類型=:<><=>==>=<
  • Enum=
  • 日期時間:與數字相同,但比較的值會視為日期時間,而非數字
  • 布林值=

只有該面向的頂層欄位可供搜尋。

舉例來說,以下所有查詢都會比對 employee-info 層面的 is-enrolled 欄位值為 true 的項目。系統也會傳回與子字串相符的其他項目。

  • aspect:example-project.us-central1.employee-info.is-enrolled=true
  • aspect:example-project.us-central1.employee=true
  • aspect:employee=true

邏輯運算子

查詢可以包含多個述詞與邏輯運算子。如果您未指定運算子,則默示使用邏輯 AND。例如,foo bar 會傳回同時符合 foo 述詞和 bar 述詞的資源。

系統支援邏輯 AND 和邏輯 OR。例如:foo OR bar

您可以使用 - (連字號) 或 NOT 前置字串否定述詞。例如,-name:foo 會傳回名稱與述詞 foo 不符的資源。

邏輯運算子不區分大小寫。例如,orOR 都是可接受的值。

簡寫語法

您也可以使用簡短的搜尋語法,例如使用 | (垂直線) 表示 OR 運算子,使用 , (逗號) 表示 AND 運算子。

舉例來說,如要使用 OR 運算子搜尋多個專案中其中一個專案的項目,可以使用以下簡略語法:

projectid:(id1|id2|id3|id4)

不使用簡寫語法的相同搜尋會如下所示:

projectid:id1 OR projectid:id2 OR projectid:id3 OR projectid:id4

如要搜尋相符的欄名項目,請使用以下語法:

  • ANDcolumn:(name1, name2, name3)
  • ORcolumn:(name1|name2|name3)

這個簡略語法適用於限定的判定式,但 label 除外。

後續步驟