Amazon Quick でマルチデータセットトピックを使用してデータセット間の統一セマンティックレイヤーを構築する
Amazon Quick Sight はマルチデータセットトピック(パブリックプレビュー)を導入し、ユーザーは1つのトピックに最大12個のデータセットを追加して関係を定義できます。AIチャットエージェントはこれらの関係を自動的にトラバースしてクロスデータセットクエリを生成し、統一されたセマンティックレイヤーを実現して分析を簡素化します。
Amazon Quick は、構造化データと非構造化エンタープライズコンテンツを接続するAI駆動の統合インテリジェンスサービスであり、チームが1つの場所から探索、分析、行動できるようにします。Amazon Quick Sight は Amazon Quick 内のビジネスインテリジェンス(BI)機能であり、インタラクティブなダッシュボード、自然言語クエリ、ピクセルパーフェクトなレポート、機械学習(ML)によるインサイト、および埋め込み分析を提供します。Quick のトピックはセマンティックレイヤーとして機能し、ビジネスユーザーは自然言語で質問し、データから直接回答を得ることができます。
これまで、組織はエンリッチされたデータセットを作成し、それらをトピックと1対1で関連付けることでセマンティックレイヤーをモデル化していました。また、Quick Sight の作成者が分析を構築する際、1つのビジュアルは1つのデータセットからのみ取得できました。Quick Sight はデータセットを単一のフラットテーブルとして表します。顧客のデータソースに複数のテーブルが含まれている場合、Quick Sight はソーステーブルを Quick Sight データ準備で1つのテーブルに結合してデータセットを定義するよう要求していました。この単一の非正規化テーブルアプローチは、実行時の結合を回避することでパフォーマンスを向上させるために当初設計されました。これは、Quick Sight の初期段階でほとんどのユースケースを占めていた単純なデータセットでうまく機能しました。現在、このモデルを進化させています。マルチデータセットトピック(パブリックプレビュー)を使用すると、1つのトピックに最大12個のデータセットを追加し、それらの間の関係を定義できるようになりました。Quick チャットエージェントは、質問に答えるときにこれらの関係を自動的にトラバースします。AIエンジンはユーザーの意図を解釈し、どのデータセットに関連する列が含まれているかを特定し、定義された関係に基づいて適切なSQL結合を構築し、統一された回答を返します。データは正規化されたまま、ガバナンスは集中化されたまま、ビジネスユーザーは基礎となるスキーマを理解することなく、より豊かな回答を得ることができます。同じマルチデータセットトピックを、チャットエージェントを使用した分析の構築や質問への回答に使用できます。
マルチデータセットトピックの仕組み
Quick のトピックは、生データとビジネスユーザーの間のセマンティックレイヤーです。トピックは、AI搭載の自然言語クエリ(NLQ)エンジンが自然言語の質問を解釈し、正確な分析クエリに変換するために使用するメタデータ、ビジネスルール、関係、コンテキストをカプセル化します。
マルチデータセットトピックを使用すると、このセマンティックレイヤーは明示的に定義された関係を通じて複数のデータセットにまたがるようになります。アーキテクチャは4つの層で構成されています。
- データソース:正規化されたデータセットがサポートされるソースから Quick Sight に接続されます。プライベートプレビュー中、マルチデータセットトピックは SPICE(Super-fast, Parallel, In-memory Calculation Engine)データセットをサポートしていました。パブリックプレビューでは、Amazon Redshift、Amazon Athena、Amazon S3 Tables、Snowflake、Databricks に対する Direct Query のサポートが拡張されています。現時点では、1つのトピック内で SPICE と Direct Query のデータセットを組み合わせることはできません。
- カタログあり/なしのデータセットエンリッチメント:各データセットは、NLQの精度を向上させるセマンティックメタデータで独立してエンリッチされます。エンリッチメントには、列の説明(各フィールドが何を表すかの説明)、同義語(ビジネスユーザーが使用する可能性のある代替用語)、セマンティックタイプ(市区町村、都道府県、通貨、日付)、計算フィールド、フィールド除外が含まれます。NLQエンジンはこのメタデータを使用して、自然言語の用語を正しい列にマッピングします。現在、Quick でエンリッチされたデータセットを作成するか、AWS Glue および Databricks Unity Catalog のカタログを使用してインポートできます。たとえば、ユーザーが「従業員数」について質問すると、エンジンは定義された同義語を適切な列に一致させます。
- マルチデータセットトピック:トピックは、データセットをまとめる統一コンテナとして機能します。トピックには、データセット(プレビューでは最大12個)、関係(データセットペア間で定義された結合キー)、カスタム命令(AIがドメイン固有の用語を解釈するための永続的な自然言語ルール)、および権限(所有者は変更可能、閲覧者は質問と分析のみ可能)が含まれます。
- 消費:ビジネスユーザーは複数のサーフェスを通じてトピックと対話します。チャットでは、ユーザーは自然言語で質問し、NLQエンジンが質問を解析し、関連する列を特定し、適切な結合を含むSQLを構築して回答を返します。分析シートでは、作成者はトピック内の複数のデータセットからのフィールドを使用してビジュアルを構築できます。クロスデータセット計算では、異なるデータセットにまたがるメジャーとディメンションを組み合わせた計算フィールドを作成できます。
チャットがクロスデータセット質問を処理する方法
ビジネスユーザーが複数のデータセットにまたがる自然言語の質問をすると、NLQエンジンは次の手順を実行します。
- 意図の解析:エンジンは、列名、説明、同義語との一致により、ユーザーの用語にどの列がマッピングされるかを特定します。関連するメジャーとディメンションを含むデータセットを決定します。
- 関係のトラバース:定義された結合キーを使用して、エンジンは特定されたデータセット間の最短結合パスを決定します。リレーショングラフに従って、ファクトテーブルを必要なディメンションテーブルに接続します。
- SQL生成:エンジンは適切なJOIN句、集計、GROUP BYを含むSQLクエリを構築します。
- 結果の表示:答えはビジュアライゼーションまたはテーブルとして返され、生成されたSQLを検査できます。
このプロセスは透過的であり、ユーザーは生成されたSQLを表示して、正しいデータセットと結合が使用されたことを確認できます。エンリッチメントメタデータとカスタム命令が豊富であるほど、エンジンはあいまいな質問をより正確に解釈します。
実例:顧客セグメントと店舗地域別の総売上を表示
「顧客セグメントと店舗地域別の総売上を表示」という質問を考えます。
ステップ1 – 意図の解析:エンジンは「総売上」→ SUM(SALES_FACT.SALE_AMOUNT)、「顧客セグメント」→ CUSTOMER_DIM.SEGMENT(同義語「セグメント」で一致)、「店舗地域」→ STORE_DIM.REGION(同義語「地域」で一致)とマッピングします。
ステップ2 – 関係のトラバース:エンジンはこの質問に答えるには3つのデータセット(SALES_FACT、CUSTOMER_DIM、STORE_DIM)が必要であると特定します。定義された関係:SALES_FACT.CUSTOMER_ID → CUSTOMER_DIM.CUSTOMER_ID;SALES_FACT.STORE_ID → STORE_DIM.STORE_ID を使用して、SALES_FACTをハブとする2ホップの結合パスを構築します。
ステップ3 – SQL生成:エンジンは次の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 の小売分析シナリオ向けにマルチデータセットトピックを構築します。シナリオでは、スタースキーマパターンでモデル化された5つのデータセットを使用します。データセットには、SALES_FACT(トランザクションレベルの販売データ)、RETURN_FACT(製品返品記録)、CUSTOMER_DIM(顧客属性)、PRODUCT_DIM(製品カタログ)、STORE_DIM(店舗ロケーション)が含まれます。
前提条件:Amazon Quick Enterprise Edition が有効な AWS アカウント、Quick Sight での作成者または管理者ロール、SPICE にロードされているかサポートされている Direct Query ソースからアクセス可能なスタースキーマを表すデータセット(ファクトテーブルとディメンションテーブル)、トピックの作成とデータセット管理の権限、基本的なデータモデリング概念(スタースキーマ、ファクト/ディメンションテーブル、結合キー)の知識。
各データセットの作成とエンリッチ
エンリッチメントは、技術的な列名とビジネスユーザーが実際にデータについて話す方法との間のギャップを埋めます。説明、同義語、セマンティックタイプを追加することで、NLQエンジンに組織の語彙を教えることができます。この投資は、ユーザーが尋ねるすべての質問に対して報われます。これは、マルチデータセットトピックを機能的であるだけでなく正確にする基礎です。
各データセットについて、Quick コンソールの左ペインで Quick Sight の下の「データ」を選択し、データセットを選択して「編集」を選択し、「出力」タブを選択して各列に説明、同義語、セマンティックタイプを追加します。内部または未使用のフィールド(代理キー、監査タイムスタンプ、ETLフラグなど)は除外します。「保存して公開」を選択します。サンプルのエンリッチメント表は、STORE_DIM データセットの列の説明、同義語、セマンティックタイプを示しています。
複数のデータセットを含むトピックの作成
データセットをエンリッチしたら、それらを単一のセマンティックレイヤーに結合するトピックを作成します。Quick コンソールの左ペインで Quick Sight の下の「データ」を選択し、「トピック」タブに移動して「トピックを作成」を選択します。トピック名と説明を入力し、「データセットを追加」を選択して関連するすべてのデータセットを選択します。関係を定義するには、データセット間の結合キーを指定するJSONファイルをアップロードします。ドメイン固有の用語を処理するカスタム命令を追加します。権限を設定します。その後、トピックを保存します。
チャットと分析でのトピックの使用
トピックを作成したら、ビジネスユーザーはチャットまたは分析を通じて使用できます。チャットでは、ユーザーは直接質問でき、エンジンは複数のデータセットに基づいて回答を返します。分析では、作成者はトピック内の複数のデータセットからのフィールドを使用してビジュアルを構築できます。クロスデータセット計算により、データセット間のメジャーを作成できます。
要約すると、マルチデータセットトピックは、複数のデータセットを単一のセマンティックレイヤーに統合することで、データセット間の分析を簡素化し、ビジネスユーザーが自然言語でより豊かなインサイトを得られるようにすると同時に、データの正規化とガバナンスの集中化を維持します。