AI News HubLIVE
站內改寫3 分鐘閱讀

Amazon Quick Chat 多數據集主題最佳實踐

本文為數據架構師、BI工程師和分析工程師提供了使用Amazon Quick Sight多數據集主題進行自然語言聊天探索的最佳實踐。重點介紹瞭如何通過語義指導層(包括數據集和主題級別的自定義指令、同義詞和字段描述)使生成式AI引擎能夠自動編寫SQL,從而實現跨數據集的外連接、聯合、子查詢等複雜查詢,無需預先定義關係。文章還對比了定義關係與AI生成SQL兩種模式,給出了八個具體最佳實踐、反模式和示例。

來源AWS Machine Learning Blog作者: Ying Wang

Amazon Quick Sight的多數據集主題功能允許分析團隊將多個數據集引入單個主題,為自然語言驅動的數據探索開闢了新路徑。傳統上,跨表查詢需要數據工程師預先連接表並交付單一數據集。現在,Quick Sight提供了兩種方式:定義顯式關係鍵(在另一篇博文中討論)或為生成式AI引擎配備足夠的語義上下文,使其自行編寫SQL。本文聚焦後一種方式——聊天驅動的AI生成SQL。

當您為主題配置聊天功能時,無需提前定義關係。相反,您編寫一個包含數據集級自定義指令、主題級指令、字段同義詞和字段描述的語義層。AI在查詢時利用該上下文生成上下文感知的SQL。這使得外連接、聯合、子查詢、自連接、跨粒度比較和條件連接邏輯都變得觸手可及,且對關係圖沒有結構限制。

本文面向構建或優化Quick Sight主題以實現自然語言聊天探索的數據架構師、BI工程師和分析工程師。您將瞭解:聊天驅動的SQL生成與定義關係主題的差異;用於構建所有元數據的層次框架“語義指導棧”;八個具體的最佳實踐及其示例和反模式;處理複雜模式(外連接、多對多、遞歸層次、角色扮演維度和跨粒度比較)的技術;選擇定義關係、純語義指導或混合方法的決策框架;以及一個完整的端到端零售分析示例。

聊天與定義關係的區別

在深入最佳實踐之前,理解Quick Sight兩種多數據集模式的基本架構區別很有幫助。當您為主題定義顯式關係時,Quick Sight構建一個邏輯連接圖,並在查詢時執行內連接。該圖必須是有向無環圖(DAG),最多支持12個數據集,產生確定性的結果。這適用於需要精確控制表組合方式的受控報表場景。

當用户通過聊天提問時,Quick Sight的生成式AI讀取定義的關係或主題的語義層(指令、描述和同義詞),並生成SQL來回答問題。AI決定查詢哪些數據集、使用哪些列、合適的連接類型以及如何聚合結果。沒有預連接圖,AI基於意圖而非結構操作。

定義關係是護欄:它們防止嘗試不正確的連接。語義元數據是指導:它引導AI生成正確、上下文合適的SQL。兩者都有價值,正確選擇取決於場景。參見後文的決策框架部分。

定義關係和語義指導並非互斥。混合主題可以為核心事實到維度的連接定義關係,同時依賴自定義指令處理預定義圖之外的探索模式。

語義指導棧

驅動Quick Chat的AI引擎在生成SQL時依賴七層元數據,共同構成語義指導棧。理解每一層是編寫有效元數據的基礎。

  • 第1層:數據集輸出;數據集——數據集級指令:定義每個數據集的粒度、用途、鍵和業務規則。
  • 第2層:主題——主題級指令:定義跨數據集邏輯、消歧規則和默認連接行為。
  • 第3層:數據集輸出;字段——同義詞:將業務詞彙映射到技術字段名。
  • 第4層:數據集輸出;字段——字段描述:解釋列語義、單位、空值性和有效範圍。
  • 第6層:數據集轉換——列排除:移除噪聲,如內部鍵、ETL時間戳和廢棄字段。
  • 第7層:數據集轉換——計算字段和命名過濾器:預構建AI可直接引用的通用業務指標和分段定義。

每一層減少AI對您數據的不確定性。各層填充得越精確,合理解釋SQL的空間就越窄,生成結果越準確。稀疏描述的多數據集主題會產生不可靠結果,原因並非AI能力不足,而是缺乏做出正確選擇所需的信息。

最佳實踐1:編寫數據集級指令作為數據字典

數據集級自定義指令是AI與每個表的首次接觸點,併為涉及該數據集的每個問題設定上下文。要包含:表用途和粒度、主鍵、外鍵提示、業務規則、已知邊界情況和聚合規則。

例如,對於SALES_FACT數據集,好的指令應明確:“SALES_FACT包含每個訂單行項目一行。主鍵:order_line_id。粒度:一個行項目對應一個訂單上的一個產品。關鍵列:order_id鏈接到ORDER_HEADER_DIM.order_id等。收入=數量*單價-折扣金額。始終SUM收入。排除order_status='VOID'的行。表每晚UTC 02:00刷新。”

避免的反模式:過於泛泛的指令、嵌入原始SQL片段、相互矛盾的規則。

最佳實踐2:編寫主題級指令處理跨數據集邏輯

主題級指令告訴AI表之間如何關聯、術語歧義時哪個數據集優先以及如何處理跨數據集計算。包括:概念關係、消歧規則、默認連接行為、多事實解析、跨域業務定義和層次導航。

例如,零售分析主題的指令塊可指定:“SALES_FACT和RETURNS_FACT都通過customer_id鏈接到CUSTOMER_DIM,通過product_id鏈接到PRODUCT_DIM。當用户詢問‘銷售’時,使用SALES_FACT;詢問‘退貨’或‘退款’時,使用RETURNS_FACT;對於‘淨銷售額’,連接兩者。優先使用事實表LEFT JOIN維度表,以避免靜默丟失無匹配維度記錄的事實。”

文章還提供了更多最佳實踐,包括使用同義詞、字段描述、列排除、計算字段、處理複雜模式以及決策框架,並附有完整的零售分析主題端到端示例。