在 Microsoft Fabric 中將關聯資料轉換成圖形模型,能幫助你直接查詢連線,而不必重複撰寫連接。 本文提供一個實用的轉換工作流程,將關聯表映射到節點類型和邊型,並在擴展前驗證模型。
如果你還在猶豫圖形是否適合你的工作量,先複習比較 圖形資料庫與關聯式資料庫。
請將這篇文章作為你的轉換清單。 關於詳細建模規則,請參見 「設計圖結構」。
先決條件
- 一個允許創建項目的Fabric工作區。
- 包含來源關聯表的 lakehouse。
- 您所在 地區可用的圖表。
- 熟悉圖形模型編輯器。 如果你是圖形新手,建議從 《Tutorial: Introduction to Graph》開始。
轉換工作流程
轉換關聯資料時請使用以下序列:
- 查看你的來源資料表,辨識資料中的實體(顧客、產品、訂單)、每一列如何唯一識別,以及資料表之間如何連結。
- 決定哪些實體成為你的圖中的節點類型,以及哪一欄能唯一識別每個節點。
- 決定哪些表格連結會變成邊緣類型,以及它們的方向(例如
Customer購買Order)。 - 根據您的資料表結構套用正確的映射模式:一對多、多對多、嵌入式值,或相關表格的鏈結。
- 請在圖模型編輯器中建立模型,並確認節點類型與邊型是否如預期般出現。
步驟 1:剖析來源關聯表
請確認你來源表中的以下項目:
- 代表不同事物的主要實體,例如顧客、產品或訂單。
- 關鍵欄位能唯一識別每個實體列,例如
CustomerID、OrderID或ProductSKU。 - 外鍵欄位用於定義資料表之間的關係,例如
CustomerID資料表中的Orders參考Customers資料表。 - 欄位可能是嵌入實體,例如
Country或Department。
關於實體、鍵、屬性及映射約束的詳細決策標準,請參見 設計圖結構。
步驟 2:將實體映射到節點類型
將每個實體映射到節點類型。
| 關係元素 | 圖形映射 | 範例 |
|---|---|---|
| 實體表 | 節點類型 |
Customers 表格 ->Customer 節點類型 |
| 主要金鑰 | 節點金鑰(ID) | CustomerID_K |
| 描述欄 | 節點內容 |
FirstName、LastName、EmailAddress |
使用具有穩定且唯一值的金鑰欄位。 如果某一欄不唯一,就設定複合鍵。
設計指引請參見 「設計圖形結構」。
步驟 3:將關係映射到邊類型
將每條關係路徑映射到有向邊類型。
| 關係元素 | 圖形映射 | 範例 |
|---|---|---|
| 外鍵關聯性 | 邊型 | purchases |
| 參考表 | 邊緣來源表 | adventureworks_orders |
| 父/子連結欄位 | 起源與目標映射 |
CustomerID_FK ->CustomerID_K |
選擇邊緣標籤作為在查詢中能清晰閱讀的動詞片語,例如 purchases、 contains、 belongsTo和 。
關於邊緣映射的需求,請參見選擇邊型。 關於使用者介面的步驟,請參考 教學:在圖表中新增邊型。
步驟 4:套用常見的關係圖模式
在轉換時使用這些模式,然後依照連結的指南詳細實作。 完整模式描述請參見 常見的表格到圖模式。
- 一對多:子資料表會參照父鍵(例如,Orders 參照 Customers)。 請參見 教學:在圖表中新增邊型。
- 多對多:連接表連結兩個實體(例如,連結產品與訂單的 SalesOrderDetail 表格)。 請參見 教學:在圖表中新增邊型。
-
嵌入實體:欄位值應成為可遍歷的節點類型(例如,升格
Country為節點Country類型)。 請參考 教學:從一個來源資料表新增多種節點與邊型。 - 階層結構:父子鏈跨越多個層級(例如員工報告結構)。 請參見 教學:在圖表中新增邊型。
步驟 5:建立並驗證圖形模型
完成映射後,請在編輯器中建立並驗證圖形模型:
新增節點類型並從金鑰欄位設定 ID。
新增邊緣類型以及原點與目標欄位的地圖。
選擇 儲存 以驗證模型與載入資料。
確認 Canvas 中出現預期的節點類型與邊型標籤。
執行驗證查詢以確認關係與基數。 例如:
MATCH (c:Customer)-[:purchases]->(o:`Order`) LET customerId = c.CustomerID_K RETURN customerId, COUNT(o) AS orderCount GROUP BY customerId ORDER BY orderCount DESC更新標籤以符合你的結構模式。 確認每種邊型都能回傳結果,且計數看起來正確。
如果缺少預期邊,請在來源資料表中確認連接欄位的值和資料型態。
常見轉換問題的故障排除方法
- 未建立任何邊:請確認來源和目標映射欄位中的值與節點鍵值及資料類型相符。
- 重複節點:確認節點金鑰欄位是否唯一,或切換到複合金鑰。
- 過度建模的圖形:除非你需要以實體形式遍歷描述欄位,否則將描述欄位保留為屬性。
- 模型不足的圖:需要進行基於關係的分析時,可以將共用欄位提取至節點類型。