Knowledge Catalog 搜尋語法

透過 Knowledge Catalog,您可以探索、集中編目、管理及瞭解貴機構的資料。如要有效率地在資料目錄中找出特定資料資產,可以使用功能強大的搜尋查詢。搜尋查詢的語法包括:

  • 簡易搜尋:使用單一搜尋字詞尋找資料資產。
  • 任意文字搜尋:使用自然語言片語或關鍵字尋找資料資產。
  • 限定述詞:使用特定中繼資料欄位 (例如名稱、位置、系統或類型) 縮小搜尋範圍。
  • 切面搜尋:根據附加的業務和技術中繼資料搜尋項目。
  • 邏輯運算子:使用 ANDORNOT 運算子結合多個搜尋條件,建立複雜的查詢。瞭解這項語法後,您就能快速找到所需資料。

限定述詞

使用限定述詞,明確指示搜尋評估特定中繼資料欄位 (例如資產名稱、類型或系統),縮小搜尋結果範圍。

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

  • 等號 (=):將搜尋範圍限制在完全相符的結果。
  • 在鍵後方加上半形冒號 (:),即可將述詞比對至搜尋結果值中的子字串或權杖。

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

例如:

  • name:foo 會選取名稱包含 foo 子字串的資源,例如 foo1barfoo
  • description:foo 會選取說明中含有 foo 權杖的資源,例如 barfoo
  • location=foo 會比對指定位置中的資源與 foo (位置名稱)。

支援的限定符

Knowledge Catalog 搜尋支援下列限定詞:

限定詞 說明
name:x x 比對為資源 ID 或資源顯示名稱的子字串。
displayname:x x 做為資源顯示名稱的子字串比對。
column:x x 做為資源結構定義中資料欄名稱 (或巢狀資料欄名稱) 的子字串比對。
description:x x 做為資源說明中的符記比對。例如:
  • description:"products" 會顯示說明中含有符記 products 的所有資源。例如「目錄中的產品清單」。
  • description:"prod" 不會顯示說明中含有權杖 products 的資源。而是顯示說明中含有權杖 prod 的所有資源。例如「prod environment」。
labels:bar 比對具有標籤 (含某些值) 的資源,且標籤鍵包含 bar 做為子字串。
labels=bar 比對具有標籤 (含某些值) 的資源,且標籤鍵等於字串 bar
labels.bar:x 在附加至資源的標籤值中,將 x 做為子字串比對,並以 bar 做為鍵。
labels.foo=bar 比對鍵等於 foo 且鍵值等於 bar 的資源。
type=TYPE 比對特定項目類型或其類型別名的資源。需要 = 限定符。
projectid:bar 比對 Google Cloud 專案中的資源,這些專案的 ID 包含 bar 做為子字串。
parent:x x 做為資源階層路徑的子字串比對。
system=SYSTEM 比對指定系統的資源。需要 = 限定符。
location=LOCATION

比對指定位置中名稱完全相符的資源。需要 = 限定符。 舉例來說,location=us-central1 符合愛荷華州代管的資產。

BigQuery Omni 資產支援這項限定符,方法是使用 BigQuery Omni 位置名稱。舉例來說, location=aws-us-east-1 會比對北維吉尼亞的 BigQuery Omni 資產。

createtime

尋找在指定日期、時間戳記或相對時間 (以天為單位) 內、之前或之後建立的資源。如要瞭解支援的格式和運算子,請參閱「時間篩選器」。

updatetime

尋找在指定日期、時間戳記或相對時間 (以天為單位) 內、之前或之後更新的資源。如要瞭解支援的格式和運算子,請參閱「時間篩選器」。

完全比對限定符

述詞鍵 typesystemlocation 和面向搜尋 (不含 has) 僅支援完全比對 (=) 限定符,不支援子字串限定符 (:)。

請使用下列完全相符語法,設定這些述詞:

述詞鍵 正確語法 錯誤的語法
type type=table (或 type=viewtype=dataset) type:tabletype:tab
system system=bigquery (或 system=spanner) system:bigquerysystem:big
location location=us-central1 (或 location=europe-west1) location:us-central1location:us

子字串限定符

namedisplaynamecolumnprojectidparent 等述詞支援使用冒號 (:) 限定符進行子字串比對:

  • name:transactions 會比對 ID 或顯示名稱包含 transactions 的資源。例如 daily_transactions_rawtransactions_v2
  • column:customer_id 會比對含有 customer_id 的資料欄名稱。
  • projectid:prod 會比對專案中 ID 含有 prod 的資源。例如:finance-prod-2026

時間篩選器

您可以依建立時間 (createtime) 或上次更新時間 (updatetime) 篩選資源。

支援的運算子和格式

  • 支援的運算子:=<><=>==>=<
  • 相對天數 (-Nd):依過去的相對天數篩選 (例如 -30d-7d-1d)。
  • 日曆日期 (YYYY-MM-DDYYYY/MM/DD):依格林威治標準時間/世界標準時間的特定日期篩選。
  • 完整時間戳記 (YYYY-MM-DDTHH:MM:SSYYYY-MM-DDTHH:MM:SSZ):依格林威治標準時間/世界標準時間的精確時間戳記篩選。系統也支援部分時間戳記,例如 YYYY-MM-DDTHH:MMYYYY-MM-DDTHH

時間篩選器語法

下表說明時間篩選器語法:

格式類別 有效語法 語法無效 說明
相對時間單位
  • createtime>-30d (過去 30 天)
  • createtime<=-7d (7 天前或更早)
  • updatetime=-1d (前一天)
  • updatetime>=-90d
  • createtime>-24h
  • createtime>-60m
  • createtime>-2w
  • createtime>30d
  • 相對時間僅支援負數天數單位 (-Nd)。
  • 不支援較短的單位 (小時 h、分鐘 m) 和較長的單位 (週 w、月 m)。
  • 正向偏移量不得以減號 (-) 開頭。
日曆日期
  • createtime:2025-01-15
  • createtime>2025-01-01
  • createtime<=2025-06-30
  • createtime:2025/01/15
  • createtime:2025-01
  • createtime:2025
  • createtime:15-01-2025
  • createtime:Jan-15-2025
  • createtime:01/15/2025
  • 日期格式必須為 YYYY-MM-DDYYYY/MM/DD
  • 如果格式的元件順序不標準 (例如 DD-MM-YYYYMM/DD/YYYY) 或包含月份名稱,則為無效格式。
時間戳記和時區
  • createtime:2025-01-15T05:30:00
  • createtime>2025-01-15T05:30:00Z
  • createtime:2025-01-15T05:30
  • createtime:2025-01-15T05:30:00-08:00
  • createtime:2025-01-15T05:30:00 EST
  • createtime:2025-01-15T05:30:00+05:30
  • 所有時間戳記都會以格林威治標準時間/世界標準時間評估。
  • 系統不支援非 GMT 時區偏移 (例如 -08:00+05:30) 和時區縮寫 (例如 ESTPST)。
時段範圍
  • createtime>=2025-01-15T09:00:00 createtime<=2025-01-15T17:00:00
  • createtime:09:00:00..17:00:00
  • createtime:09:00-17:00
  • 系統不支援一天中的時間範圍語法。
  • 請改用完整日期時間字串,分別比較下限和上限。
自然語言日期
  • createtime=-1d
  • createtime>-30d
  • createtime:yesterday
  • createtime:"last week"
  • createtime:today
  • createtimeupdatetime 限定符不支援自然語言日期片語。
  • 使用相對日期語法 (-1d-7d) 或明確日期。

標籤篩選器

使用 labels 述詞,依附加的標籤篩選資源。您可以依據標籤鍵、標籤值或兩者篩選:

查詢模式 範例 說明
labels=KEY labels=environment 比對具有確切鍵 environment 的標籤的資源,不論標籤值為何。
labels:KEY_SUBSTRING labels:tier 比對標籤鍵包含 tier 做為子字串的資源 (例如 service_tierstorage_tier)。
labels.KEY=VALUE labels.env=prod 比對標籤鍵為 env 且值完全為 prod 的資源。
labels.KEY:VALUE_SUBSTRING labels.owner:analytics 比對標籤鍵為 owner 的資源,且值包含 analytics 做為子字串 (例如 analytics-teamdata-analytics)。
多個標籤 (AND) labels.env=prod labels.data_tier=tier1 比對同時附加 env=proddata_tier=tier1 標籤的資源。
結合系統和類型 system=bigquery type=table labels.env=prod labels.confidentiality=high 比對標示 env=prodconfidentiality=high 的 BigQuery 資料表。

您可以使用查詢語法,根據附加的層面搜尋項目。

子字串比對會嘗試比對有限數量的層面。如果無法使用路徑片段找到項目,請使用完整路徑縮小搜尋範圍,提高召回率。

限定詞 說明
aspect:x

has:x
x 比對為附加至項目的層面類型完整路徑的子字串,格式為 projectid.location.ASPECT_TYPE_ID
aspect=x

has=x
比對 x,做為附加至項目的構面類型完整路徑,格式為 projectid.location.ASPECT_TYPE_ID
x
OPERATOR
value

搜尋構面欄位值。與x附加至項目的 層面類型和層面欄位名稱的完整路徑 相符,格式如下:

  • 系統切面類型的語法:

    • ASPECT_TYPE_ID.FIELD_NAME
    • dataplex-types.ASPECT_TYPE_ID.FIELD_NAME
    • dataplex-types.LOCATION.ASPECT_TYPE_ID.FIELD_NAME

    舉例來說,下列查詢會比對項目,其中 bigquery-dataset 層面中的 type 欄位值為 default

    • bigquery-dataset.type=default
    • dataplex-types.bigquery-dataset.type=default
    • dataplex-types.global.bigquery-dataset.type=default
  • 自訂顯示比例類型的語法:

    • 如果是在全球區域建立構面: PROJECT_ID.ASPECT_TYPE_ID.FIELD_NAME
    • 如果切面是在特定區域建立: PROJECT_ID.REGION.ASPECT_TYPE_ID.FIELD_NAME

    舉例來說,以下查詢會比對項目,其中 employee-info 方面的 is-enrolled 欄位值為 true

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

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

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

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

邏輯運算子

查詢可以使用邏輯運算子合併多個述詞。注意:邏輯運算子 ANDORNOT 區分大小寫,且必須以大寫字母表示。

AND 運算子

如果以半形空格分隔多個搜尋字詞或述詞,系統會自動套用邏輯 AND 運算子,因此不必明確寫出。

下列範例說明如何使用 AND 運算子建構查詢。

  • 搜尋 BigQuery 資料表

    system=bigquery type=table
    
  • 在專案 banking-prod 中搜尋名為「customer_id」的資料欄

    projectid:banking-prod column:customer_id
    
  • 如有需要,可以使用明確的 AND 運算子:

    system=bigquery AND type=table AND location=us-central1
    

OR 運算子

使用 OR 運算子比對多個條件中的任一條件。將 OR 與其他條件合併時,請使用括號 ( ) 將運算式分組,並定義優先順序。

下列範例說明如何使用 OR 運算子建構查詢。

  • 搜尋 BigQuery 資料表和檢視表

    system=bigquery (type=table OR type=view)
    
  • 在多個系統中搜尋表格

    (system=bigquery OR system=spanner) type=table
    
  • 在行銷或財務資料集中搜尋項目

    system=bigquery (parent:marketing_analytics OR parent:finance_analytics)
    

NOT 運算子

如要否定述詞,請在述詞前面加上大寫的 NOT- (連字號)。

下列範例說明如何使用 NOT 運算子建構查詢。

  • 尋找所有資料表 (沙箱專案中的資料表除外)

    • 使用 NOT 運算子
    type=table NOT projectid:sandbox-project
    
    • 使用連字號
    type=table -projectid:sandbox-project
    
  • 找出名稱中不含 test 的所有 BigQuery 資源

    system=bigquery -name:test
    

縮寫語法

如要使用簡寫語法,請在括號內使用 | (垂直線) 代表 OR 運算子,並使用 , (逗號) 代表 AND 運算子。這個簡短語法適用於合格述詞

  • 搜尋多個專案 ID

    • 使用 OR 運算子:
    projectid:(finance-prod|sales-prod|analytics-prod)
    
    • 使用半形括號:
    projectid:finance-prod OR projectid:sales-prod OR projectid:analytics-prod
    
  • 搜尋符合多個資料欄名稱的項目 (AND)

    column:(customer_id,transaction_date,amount)
    
  • 搜尋符合多個資料欄名稱的項目 (OR)

    column:(customer_id|user_id|client_id)
    

萬用字元政策

Knowledge Catalog 搜尋語法不支援在查詢字串或述詞中使用萬用字元,例如 *?

如果在查詢中加入星號 (*) 或問號 (?),系統會將其視為字面值字元,而非模式比對萬用字元。

舉例來說,如要搜尋名稱結尾為 _masked 的資料表:

  • 支援name:_masked:使用子字串比對 : 限定詞,找出名稱包含 _masked 的所有資源,例如 customer_records_maskedtransactions_masked
  • 不支援name:*_masked* 會視為字元常值,而非模式萬用字元。

括號

搜尋查詢中的括號具有特定技術功能。如果過度使用括號或將括號套用至自然語言查詢,可能會混淆搜尋剖析器,導致搜尋結果品質下降。

簡單的自然語言

提出商家問題時,請以純文字傳遞查詢內容。請勿以半形括號括住。例如:

Find customer orders containing email addresses

縮寫述詞語法

搭配述詞鍵使用括號時,可以緊湊的格式列出多個 ORAND 條件,效果極佳。

  • 使用 OR (|) 將群組述詞鍵分組。

    • 使用 (|) 搜尋列出專案中的項目

      projectid:(finance-prod|finance-test|analytics-raw)
      
    • 使用 (OR) 搜尋列出專案中的項目

    projectid:finance-prod OR projectid:finance-test OR projectid:finance-raw
    
  • 使用 AND (,) 將群組述詞鍵分組。

    • 使用 (,) 搜尋包含所有指定資料欄的項目
    column:(customer_id, order_date, total_amount)
    
    • 使用 (AND) 搜尋包含所有指定資料欄的項目
    column:customer_id AND column:order_date AND column:total_amount
    

您可以將自然語言查詢與精簡篩選器結合使用。

舉例來說,如要尋找指定每月活躍使用者的資料表,但將搜尋範圍限制在指定專案,請使用下列查詢:

monthly active users type=table projectid:(data-warehouse|analytical-tier)

使用半形括號的最佳做法

  • 請勿將整個問題放在半形括號中,因為語意引擎可能會將括號視為字面字元,導致結果關聯性偏低。

    • 錯誤(Show me datasets about US population by state)
    • 正確Show me datasets about US population by state
  • 請勿在自然語言欄位中,混用複雜的巢狀布林樹狀結構和括號。搜尋功能會根據自然語言意圖進行最佳化調整。使用括號和明確的邏輯區塊,會使查詢過於複雜,導致剖析器混淆。

    • 錯誤(revenue data) AND system=BIGQUERY AND projectid:(data-warehouse | analytical-tier)
    • 正確revenue data system=bigquery projectid:(data-warehouse|analytical-tier)
  • 除非空格是值的一部分,否則請勿任意新增空格。

    • 錯誤column:( email | id )
    • 正確column:(email|id)

後續步驟