資料網格使用手冊
Cortex Framework 的資料網格可擴充資料基礎,透過 BigQuery 中繼資料和 Dataplex Universal Catalog 啟用資料治理、探索和存取權控管。這項功能會提供一組基本中繼資料資源和 BigQuery 資產註解,可供自訂,並視需要與資料基礎一併部署。這些基本規格提供自訂設定,做為中繼資料基礎,可輔助 Cortex Framework 資料基礎。請先參閱資料網格概念,再繼續閱讀本指南。
本頁面列出的步驟專為設定 Cortex Framework 的資料網格而設計。在「資料網格目錄」部分中,找出各工作負載專屬資料夾內的資料網格設定檔。
設計
Cortex 的資料網格設計與整體資料基礎類似,包含三個階段,各階段有不同的子元件,由 Cortex 或使用者管理:
- 更新基礎資源規格:Cortex 會在每次發布時更新基礎資源規格,為資料網格提供標準化的中繼資料基礎。
- 資源規格自訂:部署前,使用者可以根據特定用途和需求調整資源規格。
- 資料網格部署和更新:使用者可以在 Cortex 設定檔中啟用資料網格。在 Cortex 部署期間,資料資產部署完成後,就會部署這個服務。此外,使用者還可彈性地獨立部署 Data Mesh,以便進一步更新。
資料網格目錄
在下列位置,找出每個工作負載和資料來源的 Data Mesh 基礎設定檔。請注意,目錄包含不同的檔案結構,但所有規格都位於 config
資料夾下。
工作負載 | 資料來源 | 目錄路徑 |
可使用 | SAP ECC | src/SAP/SAP_REPORTING/config/ecc |
SAP S/4 HANA | src/SAP/SAP_REPORTING/config/s4 |
|
Salesforce Sales Cloud (SFDC) | src/SFDC/config
|
|
Oracle EBS | src/OracleEBS/config
|
|
行銷 | CM360 | src/marketing/src/CM360/config |
Google Ads | src/marketing/src/GoogleAds/config
|
|
Meta | src/marketing/src/Meta/config
|
|
Salesforce Marketing Cloud (SFMC) | src/marketing/src/SFMC/config
|
|
TikTok | src/marketing/src/TikTok/config
|
|
YouTube (搭配 DV360) | src/marketing/src/DV360/config
|
|
Google Analytics 4 | src/marketing/src/GA4/config
|
中繼資料資源是在資料來源層級定義,每個 Google Cloud 專案都有一個 YAML 檔案,其中包含所有資源的清單。如有需要,使用者可以擴充現有檔案,或在該目錄中建立其他 YAML 檔案,內含其他資源規格。
資產註解是在資產層級定義,且目錄中包含許多 YAML 檔案,每個檔案都有一則註解。
啟用 API 並驗證權限
修改 Data Mesh 的預設值,即可實作說明以外的功能。如要在 config.json
中修改 Data Mesh 的預設值,以便實作說明以外的功能,請務必設定必要的 API 並確認權限,如下表所示。使用資料基礎部署資料網格時,請將權限授予部署使用者或 Cloud Build 帳戶。如果部署作業涉及不同的來源和目標專案,請確保在採用這些功能的專案中,都已啟用這些 API 和權限。
功能 | 權限角色 | 說明文件 |
BigQuery 資產和資料列存取權 | BigQuery 資料擁有者 | 如要進一步瞭解資產角色和資料列角色,請參閱必要角色和必要權限。 |
BigQuery 資料欄存取權 | 政策標記管理員 | 詳情請參閱「搭配資料欄層級存取權控管使用的角色」和「使用資料欄層級存取權控管功能限制存取權」說明文件。 |
目錄標記 | Data Catalog TagTemplate 擁有者 | 詳情請參閱「使用 Data Catalog 標記 BigQuery 資料表」和「Data Catalog 身分與存取權管理」說明文件。 |
Dataplex Universal Catalog Lakes | Dataplex Universal Catalog 編輯者 | 詳情請參閱「建立湖泊」說明文件。 |
瞭解基本資源規格
設定 Cortex 的資料網格時,主要介面是基本資源規格,這是一組隨附的 YAML 檔案,用於定義部署的中繼資料資源和註解。基本規格提供初步建議和語法範例,但可進一步自訂,以符合使用者需求。這些規格分為兩類:
- 中繼資料資源,可套用至各種資料資產。舉例來說,定義如何使用業務網域標記資產的目錄標記範本。
- 註解:指定如何將中繼資料資源套用至特定資料資產。舉例來說,目錄標記會將特定表格與銷售網域建立關聯。
以下各節將逐步說明每種規格類型的基本範例,並說明如何自訂規格。如果啟用相關的部署選項,系統會以 ## CORTEX-CUSTOMER
標記基本規格,指出應修改這些規格以符合部署需求。如需進階用途,請參閱 src/common/data_mesh/src/data_mesh_types.py
中這些規格結構定義的標準定義。
中繼資料資源
中繼資料資源是專案中的共用實體,可套用至許多資料資產。大多數規格都包含 display_name
欄位,且須符合下列條件:
- 只能包含萬國碼 (Unicode) 字母、數字 (0-9)、底線 (_)、破折號 (-) 和空格 ( )。
- 開頭或結尾不得為空格。
- 長度上限為 200 個半形字元。
在某些情況下,display_name
也會做為 ID 使用,這可能會產生額外需求。在這些情況下,我們會提供標準說明文件的連結。
如果部署作業參照不同來源和目標專案中的中繼資料資源,則必須為每個專案定義規格。舉例來說,Cortex Salesforce (SFDC) 包含兩個 Lake 規格。一個用於原始和 CDC 區域,另一個用於報表。
Dataplex Universal Catalog Lakes
Dataplex Universal Catalog 的湖泊、區域和資產可用於從工程角度整理資料。湖泊有 region
,可用區有 location_type
,兩者都與 Cortex 位置 (config.json
> location
) 相關。Cortex 位置會定義 BigQuery 資料集的儲存位置,可以是單一或多個區域。可用區 location_type
應設為 SINGLE_REGION | MULTI_REGION
,以符合該可用區。不過,Lake 區域一律只能是單一區域。如果 Cortex 位置和可用區 location_type
是多個區域,請選取該群組中的單一區域做為 Lake 區域。
- 規定
- 限制
- Dataplex Universal Catalog 只支援註冊 BigQuery 資料集,而非個別資料表,做為 Dataplex Universal Catalog 資產。
- 資產可能只能在單一區域註冊。
- Dataplex Universal Catalog 僅支援特定位置。詳情請參閱「Dataplex Universal Catalog 位置」。
請參閱以下範例:
lakes.yaml
。
這些資源是在 YAML 檔案中定義,並指定 data_mesh_types.Lakes
。
目錄標記範本
您可以使用 Data Catalog 標記範本,為 BigQuery 資料表或個別資料欄新增內容。這類中繼資料可協助您從技術和業務角度分類及瞭解資料,並與 Dataplex Universal Catalog 搜尋工具整合。定義可用於標記資料的特定欄位,以及每個欄位可保留的資訊類型 (例如文字、數字、日期)。產品目錄標記是範本的執行個體,包含實際的欄位值。
範本欄位 display_name
會做為欄位 ID,且必須符合類別 TagTemplate 中指定的 TagTemplate.fields
規定。如要進一步瞭解支援的欄位類型,請參閱「資料目錄欄位類型」。
Cortex Data Mesh 會將所有標記範本設為公開可讀取。此外,這個版本還在代碼範本規格中導入額外的 level
概念,定義代碼應套用至整個資產、資產內的個別欄位,還是兩者皆是,可能的值為 ASSET | FIELD | ANY
。雖然目前不會嚴格執行這項規定,但日後的驗證檢查可能會確保在部署期間,標記會套用至適當層級。
請參閱以下範例。
範本是在 YAML 檔案中定義,其中會指定 data_mesh_types.CatalogTagTemplates
。
目錄標記是範本的例項,將在下方的資產註解中討論。
使用代碼範本控管資產和資料欄層級的存取權
Cortex Framework 可讓您針對與目錄標記範本相關聯的所有構件,啟用資產或資料欄層級的存取權控管。
舉例來說,如果使用者想根據業務線授予素材資源存取權,可以為asset_policies
目錄line_of_business
代碼範本建立不同的主體,並為每個業務網域指定主體。每項政策都會接受 filters
,可用於只比對具有特定值的標記。在這種情況下,我們可以比對 domain
值。請注意,這些filters
僅支援等號比對,不支援其他運算子。如果列出多個篩選器,結果必須符合所有篩選器 (例如 filter_a AND filter_b
)。最終的素材資源政策集是註解中直接定義的政策,以及範本政策的聯集。
使用目錄標記進行資料欄層級的存取權控管時,系統會對相符的欄位套用政策標記,運作方式類似。不過,由於一個資料欄只能套用一個政策標記,因此優先順序如下:
- 直接政策標記:如果直接在資料欄註解中定義政策標記,系統會優先採用該標記。
- 相符的標記範本政策:否則,存取權會由相關聯目錄標記範本中欄位定義的第一個相符政策決定。
使用這項功能時,強烈建議一併啟用或停用目錄標記和存取控制清單 (ACL) 的部署作業。確保 ACL 部署作業順利完成。
如要瞭解這項進階功能的規格,請參閱 data_mesh_types.CatalogTagTemplate
中 asset_policies
和 field_policies
參數的定義。
目錄詞彙表
詞彙表是提供詞彙字典的工具,可用於資料資產中特定欄位使用的術語,這些術語可能不為大眾所知。使用者可以在控制台中手動新增條款,但資源規格不支援這項操作。
政策分類和標記
政策分類和標記可讓您以標準化方式,控管資料欄層級的存取權,確保敏感資料資產安全無虞。舉例來說,假設有標記的分類,可控管特定業務線的 PII 資料,則只有特定群組可以讀取遮蓋資料、未遮蓋資料,或完全沒有讀取權限。
如要進一步瞭解政策分類和標記,請參閱「資料欄資料遮蓋簡介」說明文件。下列章節特別相關:
Cortex Framework 提供範例政策標記,說明如何指定政策標記及潛在用途,但預設不會在 Data Mesh 部署作業中啟用影響存取權控管的資源。
請參閱以下範例。
政策分類是在 YAML 檔案中定義,並指定 data_mesh_types.PolicyTaxonomies
。
素材資源註解
註解會指定適用於特定資產的中繼資料,並可能參照已定義的共用中繼資料資源。註解包括:
- 資產說明
- 欄位說明
- 目錄標記
- 素材資源、資料列和資料欄層級存取權控管
Cortex Framework 資料基礎提供下列工作負載的預先設定註解 (說明)。
- SAP ECC (原始、CDC 和報表)
- SAP S4 HANA (原始、CDC 和報表)
- SFDC (僅限報表)
- Oracle EBS (僅供報表使用)
- CM360 (僅限報表)
- Google Ads (僅限報表)
- Meta (僅限報表)
- SFMC (僅限報表)
- TikTok (僅供報表)
- YouTube (搭配 DV360) (僅限報表)
- Google Analytics 4 (僅限報表)
請參閱以下範例。
註解是在 YAML 檔案中定義,指定 data_mesh_types.BqAssetAnnotation
。
目錄標記
目錄標記是已定義範本的執行個體,其中會指派適用於特定資產的欄位值。請務必指派與相關聯範本中宣告的欄位類型相符的值。
TIMESTAMP
值應採用下列其中一種格式:
"%Y-%m-%d %H:%M:%S%z"
"%Y-%m-%d %H:%M:%S"
"%Y-%m-%d"
請參閱以下範例。
請參閱data_mesh_types.CatalogTag
中的規格定義。
指定存取權政策讀取者和主體
使用存取權政策,在 Cortex Framework 中控管 BigQuery 資料的存取權。這些政策會定義哪些主體可以存取特定資料資產、資產中的資料列,甚至是個別資料欄。主體必須採用 IAM 政策繫結成員定義的特定格式。
素材資源層級存取權
您可以透過各種權限,授予整個 BigQuery 資產的存取權:
READER
:查看資產中的資料。WRITER
:修改及新增資產資料。OWNER
:完全掌控資產,包括管理存取權。
這些權限相當於 SQL 中的 GRANT DCL
陳述式。
與大多數資源和註解的行為不同,覆寫旗標不會移除具有 OWNERS
角色的現有主體。如果新增擁有者時啟用覆寫功能,系統只會將新擁有者附加至現有擁有者。這是為了防範非預期的存取權遺失情況。
如要移除資產擁有者,請使用控制台。覆寫會移除具有 READER
或 WRITER
角色的現有主體。
請參閱以下範例。
請參閱data_mesh_types.BqAssetPolicy
中的規格定義。
資料列層級存取權
您可以根據特定資料欄值篩選器,授予資料列集的存取權。
指定資料列存取政策時,系統會將提供的篩選字串插入 CREATE DDL statement
。如果啟用 overwrite 旗標,系統會先捨棄所有現有的資料列存取政策,再套用新的政策。
請注意下列有關資料列層級存取權的資訊:
- 新增任何資料列存取政策後,未在這些政策中指定的使用者就無法存取任何資料列。
- 列政策僅適用於表格,不適用於檢視畫面。
- 請避免在資料列存取政策篩選器中使用分區資料欄。如要瞭解資產類型和已分割的資料欄,請參閱相關的報表設定 YAML 檔案。
如要進一步瞭解資料列層級存取權政策,請參閱資料列層級安全性的最佳做法。
請參閱以下範例。
請參閱data_mesh_types.BqRowPolicy
中的規格定義。
資料欄層級存取權
如要啟用資料欄層級存取權,請使用政策標記名稱和分類名稱,為個別欄位加上政策標記註解。更新政策標記中繼資料資源,設定存取權控管。
請參閱以下範例。
請參閱data_mesh_types.PolicyTagId
中的規格定義。
部署資料網格
資料網格可以部署為資料基礎部署作業的一部分,也可以單獨部署。無論是哪種情況,系統都會使用 Cortex config.json
檔案判斷相關變數,例如 BigQuery 資料集名稱和部署選項。根據預設,部署資料網格不會移除或覆寫任何現有資源或註解,以免發生任何非預期的損失。不過,如果單獨部署,也可以覆寫現有資源。
部署選項
您可以根據使用者的需求和支出限制,在 config.json
> DataMesh
中啟用或停用下列部署選項。
選項 | 注意事項 |
deployDescriptions
|
這是預設啟用的唯一選項,可部署含有資產和資料欄說明的 BigQuery 註解。不需要啟用任何額外的 API 或權限。 |
deployLakes
|
部署資料湖泊和可用區。 |
deployCatalog
|
在資產註解中部署目錄範本資源及其相關聯的標記。 |
deployACLs
|
透過資產註解部署政策分類資源,以及資產、資料列和資料欄層級的存取權控管政策。記錄包含的訊息會指出存取權政策的變更方式。 |
使用 Data Foundation 部署
根據預設,config.json
> deployDataMesh
會在每個工作負載建構步驟結束時,啟用部署資料網格資產說明。這項預設設定不需要啟用任何其他 API 或角色。如要部署 Data Mesh 的其他功能,請啟用部署選項、必要的 API 和角色,並修改相關聯的資源規格。
單獨部署
如要單獨部署資料網格,使用者可以採用 common/data_mesh/deploy_data_mesh.py
檔案。這項公用程式會在建構程序中用於一次部署一個工作負載的資料網格,但直接呼叫時,也可用於一次部署多個工作負載。您應在 config.json
檔案中啟用要部署規格的工作負載。舉例來說,請確保deploySAP=true
部署 SAP 適用的資料網格。
如要確保部署作業使用必要的套件和版本,您可以透過下列指令,從 Cortex 部署程序使用的相同映像檔執行公用程式:
# Run container interactively
docker container run -it gcr.io/kittycorn-public/deploy-kittycorn:v2.0
# Clone the repo
git clone https://github.com/GoogleCloudPlatform/cortex-data-foundation
# Navigate into the repo
cd cortex-data-foundation
如需可用參數及其用法的說明,請執行下列指令:
python src/common/data_mesh/deploy_data_mesh.py -h
以下是 SAP ECC 的叫用範例:
python src/common/data_mesh/deploy_data_mesh.py \
--config-file config/config.json \
--lake-directories \
src/SAP/SAP_REPORTING/config/ecc/lakes \
--tag-template-directories \
src/SAP/SAP_REPORTING/config/ecc/tag_templates \
--policy-directories \
src/SAP/SAP_REPORTING/config/ecc/policy_taxonomies \
--annotation-directories \
src/SAP/SAP_REPORTING/config/ecc/annotations
如要瞭解目錄位置,請參閱「資料網格目錄」一節。
覆寫
根據預設,部署 Data Mesh 不會覆寫任何現有資源或註解。不過,單獨部署 Data Mesh 時,可以啟用 --overwrite
標記,以變更下列部署方式。
覆寫中繼資料資源 (例如 Lake、目錄標記範本和政策標記) 時,系統會刪除任何同名的現有資源,但不會修改名稱不同的現有資源。也就是說,如果從 YAML 檔案中完全移除資源規格,然後重新部署 Data Mesh 並啟用覆寫功能,系統不會刪除該資源規格,因為不會發生名稱衝突。這是為了避免 Cortex Data Mesh 部署作業影響可能正在使用的現有資源。
如果是湖泊和區域等巢狀資源,覆寫資源會移除所有子項。舉例來說,覆寫 Lake 時,系統也會移除現有的可用區和資產參照。如果目錄標籤範本和政策標籤遭到覆寫,系統也會從資產中移除現有的相關註解參照。覆寫資產註解中的目錄標記時,只會覆寫共用相同範本的現有目錄標記執行個體。
只有在提供與現有說明衝突的有效新說明 (不得為空白) 時,資產和欄位說明覆寫才會生效。
另一方面,ACL 的行為則不同。覆寫 ACL 會移除所有現有主體 (素材資源層級擁有者除外)。這是因為從存取政策中省略的主體,與獲得存取權的主體同樣重要。
探索資料網格
部署資料網格後,使用者可以使用 Data Catalog 搜尋及查看資料資產。包括根據套用的目錄標記值探索資產。使用者也可以視需要手動建立及套用目錄字彙表字詞。
您可以在 BigQuery 結構定義頁面查看已部署的存取權政策,瞭解各層級套用至特定資產的政策。
資料歷程
使用者可能會發現啟用及以視覺化方式呈現 BigQuery 資產之間的沿襲關係很有用。您也可以透過 API,以程式輔助方式存取歷程。 資料沿襲僅支援資產層級的沿襲。資料沿襲與 Cortex 資料網格並無關聯,但日後可能會推出使用沿襲的新功能。
如有任何 Cortex Data Mesh 或 Cortex Framework 要求,請前往「支援」部分。