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

利用多數據集主題在 Amazon Quick 中構建跨數據集的統一語義層

Amazon Quick Sight 推出多數據集主題(公開預覽),允許用户在一個主題中添加最多 12 個數據集並定義關係,AI 聊天機器人可自動遍歷關係生成跨數據集查詢,實現統一語義層,簡化分析。

來源AWS Machine Learning Blog作者: Emily Zhu

Amazon Quick 是一項 AI 驅動的統一智能服務,連接結構化數據和 unstructured 企業內容,使團隊能夠在一個地方進行探索、分析和行動。Amazon Quick Sight 是 Amazon Quick 中的商業智能(BI)功能,提供交互式儀表板、自然語言查詢、像素級完美報告、機器學習(ML)驅動的洞察以及嵌入式分析。Quick 中的主題充當語義層,業務用户可以用自然語言提問並直接從數據中獲得答案。

此前,組織通過創建豐富的數據集並將其與主題一對一關聯來建模語義層。此外,當 Quick Sight 作者構建分析時,一個可視化只能來源於一個數據集。Quick Sight 將數據集表示為單一扁平表。如果客户的數據源包含多個表,Quick Sight 要求客户通過將源表連接成 Quick Sight 數據準備中的單個表來定義數據集。這種單一非規範化表的方法最初旨在通過避免運行時連接來提供更好的性能。對於簡單數據集(在 Quick Sight 早期階段佔大多數用例)效果良好。如今,我們正在發展這一模型。藉助多數據集主題(公開預覽),您現在可以在單個主題中添加最多 12 個數據集,並定義它們之間的關係。Quick 聊天機器人會在回答問題時自動遍歷這些關係。AI 引擎解釋用户意圖,識別哪些數據集包含相關列,根據您定義的關係構建適當的 SQL 連接,並返回統一答案。您的數據保持規範化,治理保持集中化,業務用户無需瞭解底層架構即可獲得更豐富的答案。同一多數據集主題可用於構建分析或使用聊天機器人回答問題。

多數據集主題的工作原理

Quick 中的主題是原始數據和業務用户之間的語義層。它封裝了元數據、業務規則、關係和上下文,AI 驅動的自然語言查詢(NLQ)引擎利用這些信息來解釋自然語言問題並將其轉換為精確的分析查詢。

藉助多數據集主題,這個語義層現在通過明確定義的關係跨越多個數據集。架構包括四個層:

  1. 數據源:您的規範化數據集從支持的源連接到 Quick Sight。在私有預覽期間,多數據集主題支持 SPICE(超級快速、並行、內存計算引擎)數據集。公開預覽擴展了對 Amazon Redshift、Amazon Athena、Amazon S3 Tables、Snowflake 和 Databricks 的 Direct Query 支持。目前,您不能在同一主題中混合 SPICE 和 Direct Query 數據集。
  1. 帶有或不帶目錄的數據集豐富:每個數據集獨立地通過語義元數據進行豐富,從而提高 NLQ 準確性。豐富包括列描述(解釋每個字段代表的含義)、同義詞(業務用户可能使用的替代術語)、語義類型(城市、州、貨幣、日期)、計算字段和字段排除。NLQ 引擎使用這些元數據將自然語言術語映射到正確的列。您現在可以在 Quick 中創建豐富的數據集,或使用 AWS Glue 和 Databricks Unity Catalog 的目錄導入。例如,當用户詢問“員工人數”時,引擎將定義的同義詞匹配到相應的列。
  1. 多數據集主題:主題作為統一容器,將數據集結合在一起。它包含數據集(預覽中最多 12 個)、關係(數據集對之間定義的連接鍵)、自定義指令(指導 AI 解釋領域特定術語的持久自然語言規則)以及權限(所有者可修改,查看者只能提問和使用)。
  1. 消費:業務用户通過多個界面與主題互動。聊天界面允許用户用自然語言提問,NLQ 引擎解析問題、識別相關列、構建帶有適當連接的 SQL 並返回答案。分析工作表允許作者使用主題中多個數據集的字段構建可視化。跨數據集計算可以創建結合不同數據集度量和維度的計算字段。

聊天如何處理跨數據集問題

當業務用户提出跨越多個數據集的自然語言問題時,NLQ 引擎將執行以下步驟:

  1. 意圖解析:引擎通過匹配列名、描述和同義詞來識別哪些列映射到用户的術語。它確定哪些數據集包含相關的度量和維度。
  1. 關係遍歷:使用定義的連接鍵,引擎確定識別數據集之間的最短連接路徑。它遵循關係圖將事實表連接到必要的維度表。
  1. SQL 生成:引擎構建帶有適當 JOIN 子句、聚合和 GROUP BY 的 SQL 查詢。
  1. 結果呈現:答案以可視化或表格形式返回,並附有生成的 SQL 供檢查。

此過程透明,用户可以查看生成的 SQL 以驗證使用了正確的數據集和連接。豐富元數據和自定義指令越詳細,引擎解釋模糊問題的準確性就越高。

工作示例:按客户細分和門店區域顯示總銷售額

考慮問題:“按客户細分和門店區域顯示總銷售額。”

步驟 1 – 意圖解析:引擎映射“總銷售額” → SUM(SALES_FACT.SALE_AMOUNT),“客户細分” → CUSTOMER_DIM.SEGMENT(通過同義詞“細分”匹配),“門店區域” → STORE_DIM.REGION(通過同義詞“區域”匹配)。

步驟 2 – 關係遍歷:引擎識別回答此問題需要三個數據集:SALES_FACT、CUSTOMER_DIM 和 STORE_DIM。使用定義的關係:SALES_FACT.CUSTOMER_ID → CUSTOMER_DIM.CUSTOMER_ID;SALES_FACT.STORE_ID → STORE_DIM.STORE_ID。它構建了一條通過 SALES_FACT 作為中心的兩跳連接路徑。

步驟 3 – SQL 生成:引擎產生:SELECT c.SEGMENT AS customer_segment, s.REGION AS store_region, SUM(f.SALE_AMOUNT) AS total_sales FROM SALES_FACT f JOIN CUSTOMER_DIM c ON f.CUSTOMER_ID = c.CUSTOMER_ID JOIN STORE_DIM s ON f.STORE_ID = s.STORE_ID GROUP BY c.SEGMENT, s.REGION ORDER BY total_sales DESC。

步驟 4 – 結果呈現:答案以可視化或表格形式呈現,用户可以使用解釋功能檢查生成的 SQL。

功能可用性

多數據集主題正在逐步推出。下表總結了 Quick Sight BI 可視化構建的功能可用性。對於在 Quick 聊天機器人中使用主題,沒有此類限制。

解決方案概述

在本演練中,我們為 AnyCompany 的零售分析場景構建一個多數據集主題。該場景使用五個數據集,建模為星型模式。數據集包括:SALES_FACT(交易級銷售數據)、RETURN_FACT(產品退貨記錄)、CUSTOMER_DIM(客户屬性)、PRODUCT_DIM(產品目錄)、STORE_DIM(門店位置)。

前提條件:擁有啓用 Amazon Quick Enterprise Edition 的 AWS 賬户,具有作者或管理員角色,代表星型模式的數據集(事實表和維度表)加載到 SPICE 或可通過受支持的 Direct Query 源訪問,具有創建主題和管理數據集的權限,熟悉基本數據建模概念。

創建並豐富每個數據集

豐富化彌合了技術列名與業務用户實際談論數據之間的差距。通過添加描述、同義詞和語義類型,您教會 NLQ 引擎您組織的詞彙。這項投資會在用户提出的每個問題上得到回報。它是使多數據集主題準確而不僅僅是功能性的基礎。

對於每個數據集:從 Quick 控制台左側窗格中,在 Quick Sight 下選擇“數據”,選擇一個數據集並選擇“編輯”,選擇“輸出”選項卡,為每個列添加描述、同義詞和語義類型。排除內部或未使用的字段,如代理鍵、審計時間戳和 ETL 標誌。選擇“保存併發布”。示例豐富化表格展示了 STORE_DIM 數據集的列描述、同義詞和語義類型。

創建包含多個數據集的主題

豐富數據集後,創建一個主題將它們組合成單個語義層。從 Quick 控制台左側窗格中,在 Quick Sight 下選擇“數據”,導航到“主題”選項卡並選擇“創建主題”。輸入主題名稱和描述,選擇“添加數據集”,選擇所有相關數據集。定義關係:上傳 JSON 文件指定數據集之間的連接鍵。添加自定義指令處理領域特定術語。設置權限。然後保存主題。

使用主題進行聊天和分析

創建主題後,業務用户可以通過聊天或分析使用它。在聊天中,用户可以直接提問,引擎會返回基於多個數據集的答案。在分析中,作者可以構建使用主題中多個數據集字段的可視化。跨數據集計算允許創建跨數據集的度量。

總之,多數據集主題通過將多個數據集統一在一個語義層下,簡化了跨數據集的分析,使業務用户能夠以自然語言獲得更豐富的洞察,同時保持數據的規範化和治理的集中化。