跳轉至

領域模型原則


1. 治理

核心原則

  1. 每項資源都必須屬於一個領域。 表格、檢視和關係都是領域資產。不存在未經治理、自由浮動的資源。領域是問責的單位。
  2. 每個領域都必須有數據管家。 領域在指派數據管家之前可處於待處理狀態,但沒有數據管家便不能提供受治理的數據。
  3. 管理員擁有數據來源。 數據來源屬於基礎架構,並非領域資源。管理員負責註冊及管理與外部數據系統的連接。
  4. 數據管家可以為領域認領表格。 認領是獨佔的——一個表格只屬於一個領域。這是連接基礎架構與語義層的受治理行為。
  5. 數據管家可以從領域資產建立領域內檢視。 檢視表達業務邏輯——連接、聚合、衍生指標——建立於數據管家在同一領域內擁有的資產之上。檢視會建立新的語義意義,並須經數據管家批准。
  6. 分析師可以根據已批准的關係建立跨領域查詢。 查詢是以任何受支援查詢語言表達的跨領域檢視。查詢不會建立新的語義——它們只是沿着已批准的關係路徑進行遍歷。無需額外批准:治理已在關係層及欄位可見性層預先處理。目錄是執行機制:編譯器會拒絕不在已批准關係目錄中的遍歷。
  7. 任何人都可以要求存取領域資源。 存取權於資源層級授予,而非查詢層級。若您有權存取某項資源,即可查詢該資源。治理透過管道在執行時強制實施。

資源:表格與檢視作為對等單位

表格與檢視的分別僅在於來源——表格是從數據來源認領,檢視則由數據管家定義。一旦兩者其中之一成為領域資產,治理模型便會以相同方式對待兩者:

  • 兩者都是一級領域資產,在目錄中可見
  • 兩者都可以成為關係的目標
  • 兩者都可根據原則6授予存取權
  • 兩者都受相同的治理管道所約束

數據管家可以私下認領表格,並只公開經整理的檢視作為對外的數據產品。

檢視組合

檢視必定只屬於單一領域——只有一種檢視類型,永遠是領域內的。檢視存在的目的有以下兩種之一:

  • 跨領域匯入——來源在領域之外。跨領域數據只可透過檢視進入某個領域,檢視作為唯讀轉接器,將外部數據命名為該領域的業務概念。
  • 本地衍生——來源屬於同一領域。檢視從現有領域資產衍生出新的或經計算的數據。新的或衍生的數據只能以檢視形式存在。

檢視可以參照:

  • 同一領域內已認領的表格
  • 根據欄位存取授權,從其他領域匯入的欄位
  • 同一領域內的另一個檢視,前提是該變動具有明確目的:欄位限制、聚合,或透過額外連接進行擴充

組合深度並無技術上的強制限制——數據管家在HITL審核期間的判斷,是質量控制的機制。

每個檢視均帶有在建立時聲明的業務目的:

  • 屬於受治理構件的一部分——數據管家在了解檢視用途的情況下作出批准
  • 根據原則7,於存取請求中作為參照,以便數據管家評估其適用性
  • 由檢視建立起,一直伴隨其貫穿整個治理工作流程

查詢

查詢會在領域資產上沿着已批准的關係路徑進行遍歷。與檢視不同,查詢不會建立新的語義意義——它們只是遍歷模型中已批准的結構。查詢可以任何受支援的查詢語言表達(SQL、GraphQL、Cypher)。

結構性強制實施: 關係目錄是執行機制。編譯器會對照已批准的目錄項目驗證每個遍歷,並拒絕參照未經批准路徑的查詢。治理是結構性的,而非執行時的檢查。

無需批准: 治理在上游進行——於關係層及欄位可見性層。若使用者有權存取相關欄位,且遍歷路徑已獲批准,該查詢即屬有效使用,無需額外關卡。

與檢視的分別:

  • 檢視:領域內、引入新的語義意義、由數據管家整理
  • 查詢:遍歷已批准的關係、無新語義、無批准關卡

按查詢語言劃分的領域表達方式:

每種受支援的語言均以其原生的結構性命名空間表達領域:

語言 領域表達方式 範例
GraphQL 類型及欄位名稱前綴 type sales__Order { ... }, query { sales__orders { ... } }
SQL 結構描述 (Schema) 名稱 SELECT * FROM sales.orders
Cypher 額外節點標籤(只有在類型名稱含糊不清時才需要領域) MATCH (o:Sales:Order)

編譯器會從這些結構性位置解析領域歸屬——無需任何註解或提示。

關係

關係是兩項資產之間已批准的遍歷路徑。領域邊界對關係本身並無影響——只會決定誰負責批准該關係。

批准:

  • 須由每位擁有涉及該關係之資產的個別數據管家批准
  • 若一位數據管家擁有兩項資產,只需一項批准。若涉及兩位數據管家,則須兩項批准
  • 並無領域內/跨領域的分類——所有權自然決定批准負擔
  • 批准一項關係會建立每位數據管家的相依圖,令主動式結構描述演進通知得以實現

關係按需求建立,而非投機建立。有業務需要的第一個團隊負責完成工作;其後的團隊則承襲該基礎架構。

優化效果: 關係聲明不僅是治理構件——同時也是連接形態的結構描述。定義關係的兩個表格、兩個欄位及連接類型,正正是查詢優化器預先具體化該連接所需的一切。跨數據來源的關係會自動產生已預先具體化的連接表格;同一數據來源內的關係則可透過 materialize: true 選擇啟用此功能。深思熟慮並批准有效關係的數據管家,可直接得到查詢加速作為附帶成果——治理工作與優化工作實為同一行為。

欄位存取授權

欄位存取授權是一項領域對領域的權限——領域A可於其檢視中使用領域B的特定欄位。

授權生命週期:

  • 當建立檢視時識別出需要外部欄位,便會觸發此授權
  • 由目標領域的數據管家批准一次
  • 屬於提出請求的領域,而非觸發授權的檢視
  • 提出請求領域內其後的任何檢視,均可使用已授權的欄位,無需進一步跨領域參與
  • 額外未獲授權的欄位須提出新請求

使用後通知: 當使用已授權欄位建立檢視時,來源數據管家會獲得通知——但無需請求批准。通知內容包括檢視名稱、聲明的業務目的、所使用的特定欄位,以及批准者為哪位數據管家。此舉讓來源數據管家獲得:

  • 可見性——了解其數據的使用情況
  • 監督權——若使用方式看似不當,有依據提出關注
  • 追索權——可撤銷授權,令相依的檢視失效

其取捨在於:來源領域批准欄位存取權時,並不知道日後每一種使用方式。逐一檢視批准在理論上正確,但在實踐上不可行。

查詢建立工作流程

三個階段,按序進行。

階段1 — 塑形(SQL探索,於關係頁面):

  • 分析師從關係頁面開啟塑形工具,以原始SQL探索潛在連接路徑
  • SQL會在可存取的數據上執行,受制於現有的行級安全及欄位遮罩
  • SQL中的JOIN會被解析,並呈現為候選關係建議
  • 機器建議的候選項(外部索引鍵推斷、語義推斷)會與分析師的SQL探索一併顯示於同一檢視中
  • 分析師選擇要提升為正式關係請求的候選項

階段2 — 關係批准(具重要影響——屬結構性且永久):

  • 提交予每位擁有涉及該關係之資產的個別數據管家
  • 這是否是合法的遍歷路徑?連接在語義上是否有效?
  • 所有涉及的數據管家均須批准;該關係其後成為永久的目錄項目

階段3 — 查詢建立:

  • 分析師以任何受支援語言(SQL、GraphQL、Cypher)建立查詢,並遍歷已批准的關係路徑
  • 只有目錄中已批准的關係方可遍歷——編譯器以結構化方式強制實施
  • 無需批准——欄位可見性及關係批准是唯一的關卡

以HITL作為主要控制手段

技術規則處理客觀的事項——欄位來源追蹤、領域邊界強制實施、編譯器驗證。情境判斷則留予數據管家。諸如檢視組合深度、每項查詢的目的要求,以及關係批准決定等限制,屬於HITL事宜,而非由編譯器強制實施的規則。

來源領域中立性: 來源領域的數據管家只需批准一次該關係,以及批准一次該欄位授權。之後,下游領域便可在該獲授權的界限內運作:

  • 於跨越邊界的決定時高度考量
  • 其後透過通知及查詢歷史記錄輕量地了解

2. 可發現性

發現層級

發現按治理程度遞增分為五個層級。每個層級均為下一層級的先決條件。

層級 描述 治理狀態
1 — 已註冊數據來源結構描述 已註冊數據來源中的每個表格、欄位及類型。屬於管理員層級的可見性。 無——原始清單
2 — 未認領表格 從已註冊數據來源內部檢查所得、沒有領域擁有者的表格。可存取數據來源的數據管家可見。 可用但未經治理
3 — 領域資產 已認領表格及數據管家定義的檢視。完全受治理、有擁有者、於目錄中可見。 完全受治理
4 — 關係 第3層資產之間已批准的遍歷路徑。屬跨領域檢視建立的先決條件。 由雙方數據管家批准
5 — 欄位授權 領域對領域的欄位存取權限。屬最具體及最審慎的受治理存取權。 由來源數據管家批准

未認領表格屬於缺口訊號——若所需數據只存在於第2層,數據管家須先認領,治理方可繼續進行。若所有層級均無任何候選項,則須升級至管理員處理。

外部索引鍵約束

外部索引鍵約束屬於數據來源層級的構造——不能跨越多個數據來源。跨數據來源的連接路徑完全源自已批准的目錄關係(第4層),此類關係較為穩健,因已經雙方數據管家驗證。

在同一數據來源內:

  • 外部索引鍵約束會於數據來源註冊時自動呈現為候選關係
  • 代表明確的建模意圖——在大部分分析型SQL系統中並非強制執行,但屬有意聲明
  • 候選項要成為已批准的關係,仍須經數據管家驗證

關係可信度層級

證據 可信度
已批准的目錄關係——跨數據來源、經雙方數據管家驗證 最高
數據來源內部外部索引鍵約束——明確建模意圖、非強制執行但屬有意
數據來源內部語義推斷——在一致的結構描述內,欄位名稱/類型相似
跨數據來源語義推斷——不同系統間的命名慣例存有差異;誤判風險高

由多種證據類型相互印證的建議,可信度會隨之提升。

數據探查及相關性分析

對於以語義方式推斷的候選項,數據探查提供一項驗證步驟:

  • 數值重疊——來源欄位的數值出現於目標欄位的比例
  • 基數——分佈是否符合預期的關係類型
  • 空值比率——來源欄位為空值的比例,反映其可選性

高相關性會提升可信度;低相關性則會抑制或降級該候選項。探查屬佐證證據,並非證明——整數範圍或會巧合重疊,而部分參照完整性在分析系統中亦相當常見。當中仍存在相當程度的出錯空間。數據管家的語義判斷,是唯一可靠的最終把關。

LLM輔助發現

LLM會同時在五個層級運作,按可信度排序,建議關係、候選認領及遍歷路徑。

LLM所呈現的內容:

  • 按可信度排序的候選關係
  • 可能滿足數據需求的未認領表格,並提示啟動認領程序
  • 若無任何候選項——即為升級至管理員的訊號

根據業務描述進行檢視設計:

分析師提供自然語言描述及可選限制條件。LLM會產生建議的檢視結構。

輸入:

  • 業務描述:實體、指標、關係、意圖
  • 可選限制條件:篩選器、時間範圍、聚合、已排除欄位、敏感度限制

範例:

「過去30天按對手方劃分的每日交易量,只限活躍對手方,並顯示對手方法定名稱及信用評級。不含個人身分資料。」

LLM處理程序:

  1. 解析——識別實體、指標、維度、篩選器、排除項
  2. 搜尋——所有目錄層級中的匹配資產
  3. 建議——領域資產、關係、欄位、聚合結構
  4. 評分——根據層級證據對每個組件評定可信度
  5. 先決條件——所需認領、關係及欄位授權的有序清單
  6. 缺口——任何層級均無候選項的實體或欄位,標記以升級至管理員處理

輸出:

  • 供分析師檢閱及調整的查詢草稿
  • 每個組件的可信度分數
  • 有序的先決條件清單
  • 缺口清單

一旦檢視正式建立,業務描述便會成為該檢視聲明的業務目的。

以SQL為先的關係發現(建模工具):

於關係頁面以模態視窗方式存取。其用意在於建立語義模型——先識別結構性連接路徑,然後才將其正式化為受治理的關係。

  1. 分析師針對可存取的表格撰寫自由SQL(行級安全及遮罩仍會套用)
  2. 系統解析SQL的AST——每個JOIN條件都會成為候選關係建議
  3. 候選項清單會與機器建議的候選項(外部索引鍵推斷、語義推斷)一併顯示,作統一檢閱
  4. 分析師將選定候選項提升為正式關係請求
  5. 已批准的關係會加入目錄,並可於查詢中遍歷

建模工具可顯示所有已註冊表格供作結構性探索,即使分析師無法看到相關的底層數據——實際數據存取由數據管家批准所規管,而非結構描述可見性。


3. 使用情況

查詢審計軌跡

任何觸及領域資產的查詢,均會記錄於只可新增的 query_audit_log 中。每項記錄均包含:

  • tenant_iduser_idrole_id——身分背景資料
  • 查詢的SHA-256雜湊值——絕不會儲存查詢的原文文字
  • table_ids——該查詢所觸及的領域資產
  • sourcestatus_codeduration_ms
  • logged_at——時間戳記

該記錄只可新增(資料庫層級已封鎖 DELETE 及 UPDATE),並按 (tenant_id, logged_at)(user_id, logged_at) 建立索引。

數據管家的查詢歷史報告,是根據此記錄整合而成的檢視,可按資產、角色及時間範圍篩選。目錄是一項即時治理工具——數據管家可即時掌握其資產的使用情況,而非事後才得知。

兩種可見性機制:

  • 推送(Push)——就結構性行為發出使用後通知(例如有人使用您的欄位建立了新檢視)
  • 拉取(Pull)——查詢歷史記錄,用以了解執行階段的使用模式