在 Knowledge Catalog 中,您可以透過搜尋查詢,使用語意和關鍵字比對功能,在目錄中尋找特定資料資產。結合自然語言、中繼資料篩選器和邏輯運算子,即可找出相關項目,進而探索、管理及瞭解貴組織的資料。
Knowledge Catalog 也支援僅限關鍵字的搜尋模式,以提供回溯相容性。如要進一步瞭解這個模式、篩選器和使用方式,請參閱「僅限關鍵字搜尋」。
查詢語法總覽
您可以使用下列元件建構 Knowledge Catalog 搜尋查詢:
- 簡易搜尋:使用單一搜尋字詞尋找資料資產。
- 任意文字搜尋:使用自然語言詞組或關鍵字尋找資料資產。
- 具有限定詞的述詞:使用特定中繼資料欄位 (例如名稱、位置、系統或類型) 縮小搜尋範圍。
- 切面搜尋:根據附加的業務和技術中繼資料搜尋項目。
- 邏輯運算子:使用
AND、OR或NOT運算子結合多個搜尋條件,建立複雜的查詢。
具有限定詞的述詞
使用具有限定詞的述詞,明確指示搜尋功能評估特定中繼資料欄位 (例如資產名稱、類型或系統),縮小搜尋結果範圍。
您可以在述詞前面加上鍵,將比對範圍限制在特定中繼資料,藉此限定述詞:
- 等號 (
=):將搜尋範圍限制為完全比對。 - 在鍵後方加上冒號 (
:),將述詞與搜尋結果中值的子字串或權杖進行比對。
斷詞會將文字串流分割成一系列詞元,每個詞元通常對應一個字詞。
例如:
name:foo會選取名稱包含foo子字串的資源,例如foo1和barfoo。description:foo會選取說明中含有foo權杖的資源,例如bar和foo。location=foo會比對指定位置中的資源,並以foo做為位置名稱。
支援的限定詞
Knowledge Catalog 搜尋支援下列限定詞:
| 限定詞 | 說明 |
|---|---|
name:x |
比對資源 ID 或資源顯示名稱中是否含有 x 子字串。 |
displayname:x |
比對資源顯示名稱中是否含有 x 子字串。 |
column:x |
比對資源結構定義中,與 x 相符的資料欄名稱 (或巢狀資料欄名稱) 子字串。 |
description:x |
比對資源說明中的 x 符記。例如:
|
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 |
比對指定位置中名稱完全相符的資源。必須使用 BigQuery Omni 資產支援這項限定詞,只要使用 BigQuery Omni 位置名稱即可。例如, |
createtime |
尋找在指定日期、時間戳記或相對時間 (以天為單位) 內、之前或之後建立的資源。如要瞭解支援的格式和運算子,請參閱「時間篩選器」。 |
updatetime |
尋找在指定日期、時間戳記或相對時間 (以天為單位) 內、之前或之後更新的資源。如要瞭解支援的格式和運算子,請參閱「時間篩選器」。 |
完全比對限定詞
述詞鍵 type、system、location 和 aspect 搜尋 (不含 has) 僅支援完全比對 (=) 限定詞,不支援子字串限定詞 (:)。
請使用下列完全比對語法:
| 述詞索引鍵 | 修正語法 | 語法錯誤 |
|---|---|---|
type |
type=table (或 type=view、type=dataset) |
type:table或type:tab |
system |
system=bigquery (或 system=spanner) |
system:bigquery或system:big |
location |
location=us-central1 (或 location=europe-west1) |
location:us-central1或location:us |
子字串限定詞
name、displayname、column、projectid 和 parent 等述詞支援使用冒號 (:) 限定詞進行子字串比對:
name:transactions會比對 ID 或顯示名稱包含transactions的資源。例如daily_transactions_raw和transactions_v2。column:customer_id會比對資料欄名稱含有customer_id的資源。projectid:prod會比對 ID 包含prod的專案資源。例如:finance-prod-2026。
時間篩選器
您可以依建立時間 (createtime) 或上次更新時間 (updatetime) 篩選資源。
支援的運算子和格式
- 支援的運算子:
:、=、<、>、<=、>=、=>、=< - 相對天數 (
-Nd):依過去的相對天數篩選 (例如-30d、-7d、-1d)。 - 日曆日期 (
YYYY-MM-DD或YYYY/MM/DD):依格林威治標準時間/世界標準時間的特定日期篩選。 - 完整時間戳記 (
YYYY-MM-DDTHH:MM:SS或YYYY-MM-DDTHH:MM:SSZ):依格林威治標準時間/世界標準時間的精確時間戳記篩選。系統也支援部分時間戳記,例如YYYY-MM-DDTHH:MM或YYYY-MM-DDTHH。
時間篩選器語法
下表說明時間篩選器語法:
| 格式類別 | 有效語法 | 語法無效 | 說明 |
|---|---|---|---|
| 相對時間單位 |
|
|
|
| 日曆日期 |
|
|
|
| 時間戳記和時區 |
|
|
|
| 時段範圍 |
|
|
|
| 自然語言日期 |
|
|
|
標籤篩選器
使用 labels 述詞,依附加的標籤篩選資源。您可以依標籤鍵、標籤值或兩者篩選:
| 查詢模式 | 範例 | 說明 |
|---|---|---|
labels=KEY |
labels=environment |
比對具有標籤且鍵為 environment 的資源,不論其值為何。 |
labels:KEY_SUBSTRING |
labels:tier |
比對標籤鍵含有 tier 子字串 (例如 service_tier 或 storage_tier) 的資源。 |
labels.KEY=VALUE |
labels.env=prod |
比對標籤鍵為 env 且值完全符合 prod 的資源。 |
labels.KEY:VALUE_SUBSTRING |
labels.owner:analytics |
比對標籤鍵為 owner 且值包含 analytics 做為子字串 (例如 analytics-team 或 data-analytics) 的資源。 |
| 多個標籤 (AND) | labels.env=prod labels.data_tier=tier1 |
比對同時附加 env=prod 和 data_tier=tier1 標籤的資源。 |
| 與系統和類型結合 | system=bigquery type=table labels.env=prod labels.confidentiality=high |
比對標有 env=prod 和 confidentiality=high 的 BigQuery 資料表。 |
Aspect 搜尋
您可以使用查詢語法,根據附加的切面搜尋項目。
子字串比對會嘗試比對有限數量的面向。如果使用路徑片段找不到項目,請使用完整路徑縮小搜尋範圍,並提高檢索率。
| 限定詞 | 說明 |
|---|---|
aspect:x或 has:x |
比對 x,做為附加至項目的切面類型完整路徑的子字串,格式為 projectid.location.ASPECT_TYPE_ID |
aspect=x或 has=x |
比對 x,做為附加至項目的切面類型完整路徑,格式為 projectid.location.ASPECT_TYPE_ID |
x |
搜尋面向欄位值。比對
只有面向的頂層欄位可供搜尋。 |
邏輯運算子
查詢可以使用邏輯運算子結合多個述詞。注意:邏輯運算子 AND、OR 和 NOT 區分大小寫,且必須使用大寫字母。
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_masked或transactions_masked。 - 不支援:
name:*_masked:*會視為常值字元,而非模式萬用字元。
括號
搜尋查詢中的括號具有特定技術功能。如果過度使用括號,或將括號套用至自然語言查詢,可能會混淆搜尋剖析器,並降低結果品質。
簡單的自然語言
提出業務問題時,請以純文字格式傳送查詢。請勿用括號括住。例如,輸入:
Find customer orders containing email addresses
縮寫述詞語法
括號與述詞鍵搭配使用時非常有效,能以精簡格式列出多個 OR 和 AND 條件。
使用
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)。
- 不正確:
後續步驟
- 瞭解如何在 Knowledge Catalog 搜尋資源
- 進一步瞭解 Knowledge Catalog 的中繼資料管理功能。
- 瞭解如何使用切面,為項目和項目連結新增中繼資料。
- 瞭解如何管理項目及擷取自訂來源。