1. 簡介
身為開發人員和資料工程師,我們經常會繼承大量資料,這些資料看起來更像是資料沼澤。我們不斷遇到相同的摩擦點:「這個『amt』欄位的實際定義是什麼?」「如果這個資料集發生問題,誰要負責?」,或是「我們可以在個人化推薦引擎中使用這個表格嗎?」
傳統上,資料目錄是填入任意文字標記的被動式清單,很快就會變得不一致且過時。這些模式不會強制執行結構,因此幾乎無法進行程式輔助控管。
為求實用,我們將在本實驗室中逐步完成一個情境:針對原始零售銷售資料建立健全的管理機制,確保財務部門能信任這些資料,並用於正式報表。您會將這項資料從含糊不清的「沼澤」狀態移至受控產品。
Dataplex Universal Catalog 提供主動式結構化中繼資料管理架構,可解決這個問題。您可以將結構化、以結構定義為基礎的中繼資料 (切面) 和已接受的業務定義 (詞彙表),直接附加至資料資產 (項目)。
如要編寫 Python 指令碼或 Terraform 模組,大規模自動執行這項作業,您必須先瞭解基礎物件模型。
在本程式碼研究室中,我們將在 Google Cloud 控制台中手動執行控管步驟。我們會明確連結項目、面向類型、面向和詞彙表之間的點,讓您對如何讓資料可探索、可理解且值得信賴,有紮實的心理模型。
必要條件
- 具備擁有者或編輯者存取權的 Google Cloud 專案。
- Google Cloud 控制台。
- 在 Cloud Shell 中使用 gcloud 和 bq CLI 的基本技能。
課程內容
- Dataplex 項目、切面類型和切面之間的重要差異。
- 如何建立商務詞彙表,解決術語含糊不清的問題。
- 如何設計切面類型,以強制執行技術中繼資料的嚴格結構定義 (超越「標記」)。
- 如何將業務術語連結至特定 BigQuery 資料欄。
- 如何將結構化 Aspect 附加至資料資產,以及驗證輸入內容。
- 如何針對這項新的結構化中繼資料執行精確的搜尋查詢。
軟硬體需求
- Google Cloud 帳戶和 Google Cloud 專案
- 網路瀏覽器,例如 Chrome
重要概念
- 項目:目錄中資料資產的標準抽象表示法。請將此視為「指標」或「名詞」。建立 BigQuery 資料表時,Dataplex 會自動為該資料表建立項目。我們不會直接控管資料表,而是控管資料表項目。
- 業務詞彙表:集中式版本控制字典,收錄貴機構的業務用語。這是單一可靠資料來源。可避免「銷售部門與財務部門對 GMV 的定義不同」的問題。
- 切面類型:特定類別中繼資料的架構或範本。Aspect Type 會定義欄位、資料類型 (字串、列舉、日期時間等) 和限制 (必填/選填)。這份合約可確保中繼資料一致性。
- 切面:附加至項目的特定中繼資料,遵循切面類型定義的結構。其中包含符合 Aspect Type 結構定義的實際資料。
2. 設定和需求
啟動 Cloud Shell
雖然可以從筆電遠端操作 Google Cloud,但在本程式碼研究室中,您將使用 Google Cloud Shell,這是 Cloud 中執行的指令列環境。
在 Google Cloud 控制台中,點選右上工具列的 Cloud Shell 圖示:

佈建並連線至環境的作業需要一些時間才能完成。完成後,您應該會看到如下的內容:

這部虛擬機器搭載各種您需要的開發工具,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作,可大幅提升網路效能和驗證。您可以在瀏覽器中完成本程式碼研究室的所有作業。您不需要安裝任何軟體。
啟用必要的 API 並設定環境
執行下列指令,設定專案 ID、定義區域,並啟用必要的服務 API。
export PROJECT_ID=$(gcloud config get-value project)
gcloud config set project $PROJECT_ID
export LOCATION="us-central1"
gcloud services enable dataplex.googleapis.com \
bigquery.googleapis.com \
datacatalog.googleapis.com
建立 BigQuery 資料集並準備範例資料
我們需要具體的資料資產來管理。我們將建立 BigQuery 資料集,並載入代表交易的小型 CSV 範例。Dataplex 會自動探索這個資料表,並為其建立項目。
# Create the BigQuery Dataset in the us-central1 region
bq --location=$LOCATION mk --dataset \
--description "Retail data for governance codelab" \
$PROJECT_ID:retail_data
# Create a temporary CSV file with the sample data
echo "transaction_id,user_email,gmv,transaction_date
1001,test@example.com,150.50,2025-08-28
1002,user@example.com,75.00,2025-08-28" > /tmp/transactions.csv
# Load the data from the temporary CSV file into BigQuery
bq load \
--source_format=CSV \
--autodetect \
retail_data.transactions \
/tmp/transactions.csv
# (Optional) Clean up the temporary file
rm /tmp/transactions.csv
執行快速查詢來驗證設定:
bq query --nouse_legacy_sql "SELECT * FROM retail_data.transactions"
3. 透過商務詞彙表建立通用語言
有效管理的第一步是明確定義。如果開發人員看到名為「gmv」的資料欄,就不必猜測其中是否包含稅金或退貨。業務詞彙表可將業務定義與技術實作項目分離,解決這個問題。
- 在 Google Cloud 控制台中,前往「Dataplex Universal catalog」(Dataplex Universal Catalog)。
- 在左側導覽選單中,選取「詞彙表」(位於「管理中繼資料」下方)。

- 按一下「建立商務詞彙表」。
- 輸入下列詳細資料:
- Name (名稱):
Retail Business Glossary - 位置:
us-central1(或你在設定中定義的位置)。
- Name (名稱):
- 點選「建立」。

- 按一下新建立的「零售業業務詞彙表」即可進入。

- 按一下「建立類別」,然後將類別命名為
Sales Metrics,再按一下「建立」。類別可協助您將相關字詞分組。 - 選取
Sales Metrics類別,然後按一下「新增字詞」,將其命名為Gross Merchandise Value,然後按一下「建立」 - 按一下「總覽」頁面上的「+ 新增」按鈕,然後填寫下列詳細資料:
- 總覽:
The total value of merchandise sold over a given period of time before the deduction of any fees or expenses. This is a key indicator of e-commerce business growth.
- 總覽:
- 按一下 [儲存]。

您現在已建立明確的定義,可連結至整個機構的技術資產。
4. 使用切面類型定義結構化技術中繼資料
簡單的「鍵:值」標記不足以滿足工程嚴謹度。如果您需要追蹤「資料擁有者」,就不會希望一個資料表標記為 owner:bob,另一個標記為 contact:alice@example.com。您需要結構定義,才能強制規定擁有者必須提供有效的電子郵件地址。
我們會使用「切面類型」定義這項合約。
- 在 Dataplex 左側導覽面板中,選取「目錄」下方的「切面類型和標記範本」。
- 選取「自訂」分頁標籤,然後按一下「建立切面類型」。

- 輸入下列詳細資料:
- 顯示名稱:
Data Asset Governance - 位置:
us-central1
- 顯示名稱:
- 在「範本」部分,我們將定義
Aspect的結構定義。按一下「新增欄位」,建立下列三個欄位:- 欄位 1:
- 顯示名稱:
Data Steward - 「Type」(類型):
Text - 文字類型:
Plain text - 基數:必要 (勾選核取方塊)
- 顯示名稱:
- 欄位 2 (再次按一下「新增欄位」):
- 顯示名稱:
Data Sensitivity - 「Type」(類型):
Enum - 值:新增
Public、Internal和Confidential - 基數:選用
- 顯示名稱:
- 欄位 3 (再次按一下「新增欄位」):
- 顯示名稱:
Last Review Date - 「Type」(類型):
Date and time - 基數:選用
- 顯示名稱:
- 欄位 1:
- 按一下 [儲存]。

您剛才建立了一個可重複使用的中繼資料合約。目前沒有任何項目使用,但結構存在。
5. 將控管措施連結至資產
現在我們將所有內容整合在一起。我們有 BigQuery 資料表 (retail_data.transactions)、業務定義 (Gross Merchandise Value) 和管理架構 (Data Asset Governance)。
我們會擴充 BigQuery 資料表的 Dataplex 項目。
在結構定義中加入業務情境資訊 (資料欄層級)
將「gmv」欄位連結至字彙表,向使用者說明實際意義。
- 在 Dataplex 左側導覽面板中,按一下「搜尋」。
- 按一下右上方的「Dataplex Universal Catalog」分頁標籤 (如果尚未啟用)。

- 搜尋「
retail_data.transactions」。按一下 BigQuery 資料表的結果。

- 按一下「項目詳細資料」中的「結構定義」分頁標籤。
- 勾選「
gmv」欄列的核取方塊,然後按一下「新增商家字詞」。 - 選取
Gross Merchandise Value條款。

「gmv」欄不再只是「FLOAT」,現在已連結至「Gross Merchandise Value」的公司定義。
使用結構化技術中繼資料 (資料表層級) 充實項目
接著,我們會將 Data Asset Governance Aspect 附加至表格,以定義擁有權和機密程度。
- 停留在「Entry」(項目) 頁面。
retail_data.transactions - 按一下「新增標記或切面」分頁,然後從下拉式選單中選取
Data Asset Governance類型。

- 表單現在會顯示在切面類型結構定義中定義的欄位。請按照下列方式填寫:
- 資料管理員:
finance-team@example.com - 資料敏感程度:選取
Internal。 - 上次審查日期:選取今天的日期。
- 資料管理員:
- 按一下 [儲存]。

您已成功將結構化 Aspect 附加至項目。與簡單代碼不同,系統會根據您建立的結構定義驗證這項資料。
6. 統一探索與驗證
我們並非只是為了填寫表單而完成這項工作,我們這麼做是為了讓資料更容易發掘及信任。我們來看看這項中繼資料如何改變開發人員的搜尋和探索體驗。
返回 Dataplex Universal Catalog 的主要「Search」(搜尋) 頁面。
假設您是平台工程師,負責強制執行控管措施。您需要找出所有標示為「內部」的素材資源,這些素材資源受特定長寬比類型控管。您需要根據架構使用精確的述詞。
您可以透過兩種方式進行驗證:使用精確的查詢語法 (自動化作業的必要條件),或使用互動式使用者介面篩選器。
方法 1:透過結構化查詢驗證
- 在搜尋列 (位於「關鍵字」搜尋模式中) 輸入下列結構化查詢。
aspect:data-asset-governance.data-sensitivity=Internal
- 您應該會看到
retail_data.transactions資料表。

方法 2:透過 UI 篩選器構面驗證
- 清除搜尋列即可重設檢視畫面
- 查看畫面左側的「依屬性篩選」面板。
- 向下捲動並展開「資料資產管理」部分 (這代表您建立的切面類型)
- 在「資料私密程度」下方,勾選
Internal方塊。 - 搜尋結果會更新,顯示
retail_data.transactions表格。

無論是使用輸入的查詢或 UI 篩選器,底層機制都相同。
這說明瞭 Dataplex 與簡單 Wiki 的根本差異:您的中繼資料是可查詢的結構。您現在可以建構自動稽核 (例如「Find all tables where last_review_date is > 1 year ago」(找出 last_review_date 大於 1 年前的所有資料表)。
7. 清除環境
如要避免產生持續性費用,請刪除本程式碼研究室中建立的資源。
刪除 BigQuery 資料集
這項指令無法復原,且會使用 -f (強制) 標記移除資料集和所有資料表,無需確認。
# Re-run these exports if your Cloud Shell session timed out
export PROJECT_ID=$(gcloud config get-value project)
# Manually type this command to confirm you are deleting the correct dataset
bq rm -r -f --dataset $PROJECT_ID:retail_data
刪除 Dataplex 構件
- 前往 Dataplex Universal Catalog UI > 管理中繼資料 > 目錄。
- 在「Aspect types & tag templates」(切面類型和標記範本) 中,選取並刪除 data_asset_governance 切面類型。
- 依序前往「管理中繼資料」>「詞彙表」,選取
Retail Business Glossary,然後刪除。請務必先刪除字詞,Gross Merchandise Value再刪除字彙表。
8. 恭喜!
您已超越簡單的資料標記,在 Dataplex 中建立了基礎的結構化治理模型。
您學到:
- 詞彙表可解決業務上的模糊不清之處。
- 切面類型提供技術中繼資料的結構定義合約。
- Aspect 會將該結構定義套用至實際的資料項目。
- Dataplex 搜尋功能會運用這項結構化中繼資料,精確探索資料。
後續步驟
- 以程式碼形式進行管理:使用 Google Cloud Terraform 提供者,在版本控管中定義 Aspect 類型和詞彙表,確保開發/測試/正式環境的結構定義一致。
- 自動標記:編寫 Cloud Function 或 Cloud Build 步驟,在建立新資料集時觸發,自動附加「資料資產控管」層面,並使用預設值 (例如
sensitivity=Internal, steward=TBD),並檢舉以供審查。