本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
定義主題中資料集之間的關係
| 適用於:企業版 |
| 目標對象:Amazon Quick 管理員和作者 |
當問題或視覺效果跨越多個資料表時,關係會告知 Quick Sight 如何聯結資料集。您可以使用 JSON 組態檔案,在資料集對之間指定聯結索引鍵來定義關係。
關係圖必須是導向非循環圖 (DAG) — 不支援循環關係。我們建議您在星狀結構描述中建立資料集的模型,並將一或多個中央事實資料表加入共用維度資料表。
定義資料集之間的關係
-
開啟您要設定的主題。
-
導覽至關係索引標籤。
-
選擇上傳檔案或手動建立。
-
上傳定義您關係的 JSON 檔案 (請參閱下列範例)。上傳後,關係圖表會在左側以視覺化方式顯示,而聯結金鑰詳細資訊會顯示在右側。選取聯結以驗證關係映射。
-
若要編輯關係,請選擇編輯,使用下拉式選單更新聯結欄,然後選擇儲存。
關係 JSON 格式
下列範例顯示將中央 SALES_FACT 資料表加入維度資料表的星狀結構描述組態:
{ "datasetPairs": [ { "datasetLeft": { "datasetName": "SALES_FACT", "joinColumnNames": ["CUSTOMER_ID"] }, "datasetRight": { "datasetName": "CUSTOMER_DIM", "joinColumnNames": ["CUSTOMER_ID"] } }, { "datasetLeft": { "datasetName": "SALES_FACT", "joinColumnNames": ["PRODUCT_ID"] }, "datasetRight": { "datasetName": "PRODUCT_DIM", "joinColumnNames": ["PRODUCT_ID"] } }, { "datasetLeft": { "datasetName": "SALES_FACT", "joinColumnNames": ["STORE_ID"] }, "datasetRight": { "datasetName": "STORE_DIM", "joinColumnNames": ["STORE_ID"] } } ] }
中的每個項目都會datasetPairs指定一組資料集,以及用來加入資料集的資料欄。在joinColumnNames陣列中包含多個資料欄名稱,可支援複合金鑰。
關係的最佳實務
-
從星星結構描述開始。維度資料表周圍的中央事實資料表可將聯結複雜性降至最低,並將查詢效能最大化。
-
使用 Clean 聯結金鑰。盡可能使用整數代理金鑰。確認兩端相符的資料類型。從聯結索引鍵資料欄移除 null 值 (在內部聯結中,null 永遠不會相符)。
-
驗證參考完整性。事實資料表中的每個外部索引鍵都應存在於維度資料表中。
-
避免循環聯結。關係圖表必須是非循環的。如果您的模型建立循環,請移除一條腳並取消冗餘路徑的標準化,將其中斷。
-
可行時預先加入 snowflake 鏈結。如果維度具有子維度 (例如,客戶 → 地理 → 區域),請考慮將其扁平化為單一維度資料集,以減少聯結跳轉。
目前的限制
下列限制適用於已定義的關係:
-
關係使用分析工作表的內部聯結語意。結果中只會顯示兩個資料集中具有相符索引鍵的資料列。
-
關係圖表必須是非循環 (無循環聯結)。
-
不支援自我關係 (與本身相關的資料集)。
-
主題中的所有資料集必須使用相同的查詢模式 (SPICE 或直接查詢)。
-
主題不能超過 12 個資料集。
注意
在 Amazon Quick Chat 中使用主題時,採用 LLM 技術的聊天代理程式不限於內部聯結。它可以根據您的自訂指示產生具有左聯結、外部聯結、聯集和子查詢的 SQL。這些聯結類型限制僅適用於分析表取用路徑。