ビジネスコンテキストを付与:Amazon QuickSight のレガシートピックからセマンティックデータセットへ移行
Amazon QuickSight は、ビジネスコンテキストをデータセット自体に埋め込む「Dataset Enrichment」機能を導入し、従来のレガシーな Topics を横断的なセマンティックレイヤーへと昇華させることで、BI と AI アナリティクスにおける単一の真実源を実現した。
キーポイント
データセットへのビジネスコンテキスト埋め込み
Column descriptions, synonyms, calculated fields などのメタデータを別オブジェクト(Topics)からデータセット自体に統合し、一貫性と管理の効率化を図る。
レガシー Topics の再定義と横断的セマンティック層へ
既存の Topics を「単一データセット内のコンテキスト」から、「複数データセット間の関係性、メトリクス、用語を統括する横断的なセマンティックレイヤー」へと役割を昇華させる。
BI と AI の統合基盤の確立
決定論的な BI ワークフローと柔軟な AI 駆動型アナリティクスが、共有されたセマンティック基盤から同時に動作できるアーキテクチャを構築する。
ガバナンスの一元化
権限、系譜、バージョン管理などのガバナンス情報をデータセットに紐付けることで、変更が下流のアセットにも自動的に継承される仕組みを提供する。
影響分析・編集コメントを表示
影響分析
この発表は、エンタープライズ BI ツールにおける「データと意味(セマンティクス)の分離」という長年の課題を解消し、AI モデルがデータを正しく理解・活用するための基盤を強化する重要な転換点です。これにより、組織は複雑なデータ統合プロセスを経ずに、一貫性のあるビジネスコンテキストを AI アナリティクスに直接供給できるようになり、意思決定のスピードと信頼性が向上します。
編集コメント
AWS は、単なるデータ可視化ツールから、AI がデータを理解し推論できる「セマンティックなプラットフォーム」へと QuickSight の進化を加速させています。これは、LLM や生成 AI をビジネス現場に組み込む際の最大の障壁であった「データの文脈欠如」問題を解決する実用的なアプローチと言えます。
Amazon Quick のレガシートピックをデータセットと共に管理されている方ならご存知の通り、課題は明白です。完全に同期させる必要がある 2 つのアセットがそれぞれ独自の権限、系譜、バージョン管理を持ちます。列のシノニムがずれていきます。計算フィールドが分岐します。データセットの名前変更がレガシートピックを静かに壊してしまいます。今では、新しいデータ準備機能におけるデータセット拡張を通じて、Amazon Quick でそのビジネスコンテキストをデータセット自体に直接埋め込むことができます。列の説明、シノニム、計算フィールド、カスタム指示、ビジネスルールはすべてデータと共に存在します。データセット拡張により、ビジネスコンテキストがデータセットに直接組み込まれます。すべての要素(権限、セマンティクス、AI コンテキスト)はデータとともに移動し、その上に構築されるあらゆるものに自動的に継承されます。1 つのアセット、1 つの真実源、1 つのガバナンス場所です。
本稿では、データセット拡張とは何か、レガシートピックとどのように異なるのかを解説し、ビジネスコンテキストをデータセット層へ自信を持って移行するための 3 つの移行シナリオとステップバイステップのガイダンスを提供します。
Topic は現在、マルチデータセットとして機能するセマンティックおよび推論層であり、複数のデータセットを構成し、関係性を定義し、ビジネス指標を作成し、ビジネス用語をマッピングするための構築物です。新たな構築物を導入するのではなく、Topic をこの役割をより完全に果たすために再利用しています。データセット固有のセマンティクスを本来あるべき場所へ下位に移動させ、Topic が常に担うべきクロスデータセット間の関係性、指標、およびビジネス用語を管理する立場へと引き上げます。これは単なる外観上の変更ではありません。決定論的な BI ワークフローと柔軟な AI 駆動型分析の両方を、共有されたセマンティック基盤からサポートする、明確で将来を見据えたアーキテクチャを確立します。また、カタログ統合のためのフレームワークも構築されます。
Topics(レガシー)とは
Amazon Quick Sight のデータセットにビジネスコンテキストを追加するための初期のアプローチとして、Legacy Topics が提供されていました。これは、データセットの上に位置し、リンクはされているが独立して管理される別オブジェクト内に、列のシノニム、計算フィールド、名前付きエンティティ、フィルター、カスタム指示などを格納するものでした。今後は、既存の Topics をレガシーとして分類します。新しいバージョンの Topics は、*マルチデータセット・セマンティックレイヤー***へと昇格されます。これは、ビジネスユーザーや AI ワークフローが、複数の強化されたデータセットにわたる Q&A(質問応答)を一つの会話で実行できる単一のエントリーポイントです。これを可能にする基盤は Dataset Enrichment です:Topics がより高いレベルでこれらを統合するためには、各データセットが独自のセマンティックコンテキスト(意味論的コンテキスト)を持つ必要があります。
主な違い:Topics(レガシー)vs. Dataset Enrichment(新しいデータ準備)
| Legacy Topics | Dataset Enrichment | |
|---|---|---|
| メタデータの保存場所 | データセットにリンクされた、別個のレガシー Topic オブジェクト | データセット自体のメタデータ内 |
| 列のシノニム | レガシー Topic の「Column Synonyms」で定義 | 列の「Additional Notes」で定義 |
| ビジネスルールとフィルター | 構造化された条件を持つ「Named Filters」 | 「Custom Instructions」内のテキストベースのルール |
| 計算フィールド | レガシー Topic レベルの計算(名前付き式) | 計算列(行レベルの変換) |
固有表現
同義語を持つ構造化されたエンティティオブジェクト
カスタムインストラクションのテキストエントリ(データセット OUTPUT タブ)
カスタムインストラクション
レガシートピック上のカスタムインストラクション文字列
カスタムインストラクションのテキストエントリ(データセット OUTPUT タブ)
ガバナンス
権限付与と監査対象となる 2 つのアセット
権限付与と監査対象となる 1 つのアセット
セマンティックタイプ
フィールドのプロパティ
カラムのプロパティ
集約レベル
フィールドのプロパティ
アシスタントがランタイム時に問い合わせに基づいて処理

移行期間中に変わらないもの
すべてが変わるわけではありません。QuickSight 環境の以下の側面は、移行中も変更されません:
- ルールデータセットには移行は不要です。ルールベースのロジックはこれまで通り機能します。
- SPICE ストレージと直接クエリモード(Direct Query mode)への影響はありません。トピックを使用するかデータセットエンリッチメントを使用するかにかかわらず、データアクセスパターンは同じままです。
- ダッシュボードや分析は再構築されません。これらはエンリッチされたデータセットを利用します。
- ユーザー向け Q&A 対話モデルに変更はありません。ユーザーは引き続き Amazon Quick chat を通じて自然言語で質問を行います。違いは彼らには見えません。
なぜビジネスコンテキストをデータセットに移行するのか
ビジネスメタデータが独立したレガシーなトピックオブジェクトに存在する場合、同期し続ける必要がある 2 つの資産を管理することになります。権限、系譜(ラインジ)、および検索性が境界を超えて分散してしまいます。データセットエンリッチメントはこの課題を解消します:
- 唯一の真実源(Single source of truth)。ビジネスコンテキストはデータと共に移動します。同期から外れる独立した資産は存在しません。
- 自動継承。エンリッチされたデータセット上に構築されたダッシュボード、分析、レガシートピック、または AI 搭載チャット機能は、追加の設定なしにセマンティックコンテキストを自動的に継承します。
- ガバナンスの簡素化。権限管理、監査、バージョン管理を一元化した 1 つの資産で対応できます。
- AI 対応(AI-readiness)。データセットが自然言語クエリに対して自己記述型となります。Amazon Quick のチャット体験では、独立したトピックを必要とせず、データセットメタデータから曖昧なビジネス用語を直接解決できます。
データセットエンリッチメントの一環としてデータセット定義で何が変わったか
新しいデータ準備(data prep)エクスペリエンスにより、データセットに semantic_model_configuration が導入されました。これは 2 つの層から構成されます:
カラムレベルメタデータ(TableMap 内):
| プロパティ | 目的 | 例 |
|---|---|---|
| Description | フィールドが何を表すか | 「各販売取引ごとの一意の ID」 |
| AdditionalNotes | ユーザーが発言する可能性のある類義語や代替名称 | 「注文 ID、売上 ID、領収書番号」 |
データセットレベルメタデータ(SemanticMetadata 内):
プロパティ
目的
例
Description
データセットの全体的な概要
「取引、収益、および利益率をカバーする売上ファクトテーブル」
CustomInstructions
ビジネスロジック、数式、名前付きエンティティ、およびルール
「収益 = 数量 * 単価 * (1 – 適用された割引)」
レガシートピックフィールドからデータセット拡張へのマッピング:
レガシートピックフィールド
データセット SemanticModel ターゲット
ColumnDescription
ColumnProperties.Description.Text
ColumnSynonyms[]
ColumnProperties.AdditionalNotes.Text (カンマ区切り)
CalculatedFields.Expression
DataPrepConfiguration → CreateColumnsStep
NamedEntities.EntityName + EntityDescription + Definition
CustomInstructions.InlineCustomInstruction.InstructionText(「エンティティ名:定義 (フィールド: …) (同義語: …)」として)
Filters
CustomInstructions.InlineCustomInstruction.InstructionText(「ビジネスルール – 名前:出力列名 IN [値]」として)
CustomInstructionsString
CustomInstructions.InlineCustomInstruction.InstructionText
ソリューションの概要
移行は 4 つのステップからなるプロセスです。まず、対象となるデータセットを特定し、ソースとなるレガシートピック(Topic)を見つけます。次に、Python スクリプトを実行して、そのレガシートピックのメタデータを抽出し、QuickSight API を介してデータセットの SemanticModelConfiguration に書き込みます。このスクリプトは、列の説明、類義語、計算フィールド、名前付きエンティティ、フィルター、カスタム指示を一度の実行で処理します。手動での UI 操作は不要です。
事前準備
開始する前に、以下の環境が整っていることを確認してください:
- AWS Command Line Interface (AWS CLI) v2 (バージョン 2.34.50 以降) がインストールされ、有効な認証情報で設定されていること。セッションがアクティブであることを確認するには
aws sts get-caller-identityを実行してください。セットアップ手順については AWS CLI インストールガイドを参照してください。aws --versionでバージョンを確認します。
- ステップ 3 のマッピングスクリプトを実行するには Python 3.6 以降が必要です。
python3 --versionで確認してください。
- Q が有効化された Amazon Quick Enterprise エディション。本移行は、Q アドオンがアクティブな Enterprise アカウントでのみ利用可能な Quick Sight APIs に依存しています。
- 新しいデータ準備エクスペリエンスを使用するターゲットデータセット。このデータセットは DataPrepConfiguration(LogicalTableMap ではない)を使用し、すべての InputColumns に列 ID が設定されている必要があります。詳細については「新しいデータ準備でデータセットを作成する」を参照してください。
- 移行対象とする既存のレガシー Topic(ソース)。カラム、説明、類義語に加え、必要に応じて計算フィールド、エンティティ、フィルターが含まれているもの。
- コールヤー ID に必要な AWS Identity and Access Management (IAM) 権限:quicksight:DescribeDataSet、quicksight:UpdateDataSet、および quicksight:DescribeTopic。完全なポリシー参照については Quick Sight IAM アクションを参照してください。
移行シナリオ
最適なアプローチは現在のセットアップによって異なります。ここでは最も単純なものから最も複雑なものまで、3 つのシナリオを取り上げます。

シナリオ 1: レガシートピックを持たないレガシーデータセット
あなたのデータセットは、クラシックな Amazon QuickSight のエクスペリエンスを用いて構築されており、あらゆる種類のセマンティックレイヤーを持っていません。ユーザーはダッシュボード、フィルター、ツールチップにおいて、生のカラム名(TXN_DT, CUST_ID, AMT_USD)を直接見ることになります。Amazon QuickSight チャットで自然言語の質問を入力した際、システムには処理するための文脈が全く存在しません:説明も、類義語も、ビジネスルールもありません。「今四半期の収益はいくらか?」といった質問に対しては、「revenue」という単語をスキーマ内のどのカラムにもマッピングするものが何もないため、結果は返されません。
LogicalTableMap を使用し DataPrepConfiguration を使用していないレガシーデータセットでは、データセットの拡張(Dataset Enrichment)がサポートされていません。現在、インプレースでのアップグレードパスも存在しません。レガシーデータセットに SemanticModelConfiguration を追加することはできず、一方を他方に変換するマイグレーション API もありません。代わりに、生のカラム名を用いて Dataset Q&A 機能で直接クエリを実行することを選択できます。
シナリオ 2: レガシーデータセットを持つレガシートピック
トピックはレガシーデータセットの上に位置し、ユーザーが依存するセマンティックレイヤー、カラムの類義語、計算フィールド、名前付きエンティティ、名前付きフィルター、カスタム指示を提供します。ユーザーはトピックを介してクエリを実行し結果を得ます。しかしその背後では、データセット自体には拡張機能が施されておらず、依然として LogicalTableMap を使用しており、説明や独自のビジネスコンテキストを持たない生のカラム名を露出しています。
シナリオ 1 と同様に、基盤となるレガシーデータセットは SemanticModelConfiguration をサポートしていません。レガシー Topic のメタデータを直接データセットにプッシュする方法はありません。今後の道筋は、新しいデータ準備体験を使用して新しいデータセットを作成し、レガシー Topic のメタデータをデータセットの拡張 (Dataset Enrichment) として移行し、結果を検証してから切り替えることです。あるいは、レガシーデータセットに対してデータセット Q&A 機能を使用することもできます。
シナリオ 3: 新しいデータ準備データセットを伴うレガシー Topic
現在の状態: あなたはすでに新しいデータ準備体験をデータセットで利用しています。このデータセットには DataPrepConfiguration が含まれており、SourceTableMap、TransformStepMap、DestinationTableMap を持っています。しかし、ユーザーが依存しているセマンティックコンテキスト(列の同義語、計算フィールド、名前付きエンティティ、フィルター、カスタム指示)を提供するために、レガシー Topic がまだその上に重ねられています。データセット構造はネイティブに拡張をサポートしていますが、まだ適用されていません。これは、直接かつインプレースでの移行が可能となる唯一のシナリオです。あなたのデータセットはすでに正しい API 言語を話しているため、再作成する必要はありません。
データセットが DataPrepConfiguration を使用しているため、SemanticModelConfiguration を update-data-set API に直接渡すことができます。これにより、以下も可能になります:
- レガシーの Topic からカラムの説明と類義語を、データセットの ColumnProperties.Description および ColumnProperties.AdditionalNotes へ移行してください。レガシーの Topic で ColumnDescription または ColumnSynonyms アレイを持っていたすべてのカラムには、データセットのセマンティック層に相当するエントリが作成されます。
- レガシーの Topic レベルの式から計算フィールドを、DataPrepConfiguration の CreateColumnsStep エントリーへ移行してください。これらはデータセット内でファーストクラスの計算カラムとなり、ダッシュボードで表示可能になり、レガシーの Topic を介さずに自然言語クエリにも利用可能です。
- 名前付きエンティティ、フィルター、カスタム指示を CustomInstructions.InlineCustomInstruction.InstructionText へ移行してください。エンティティ定義、ビジネスルール、数式ドキュメントは、チャットシステムがクエリ実行時に読み取る構造化テキストとして保持されます。
- 移行中はレガシーの Topic をアクティブに保ってください。一時的にはレガシーの Topic とデータセットの拡張機能を併存させることができます。 enriched データセットの Q&A 動作をレガシーの Topic の結果と比較検証し、準備が整った後にのみレガシーの Topic を削除してください。
- レガシーの Topic 移行はスクリプトで実行してください。describe-topic および update-data-set はどちらも API コールであるため、変換プロセスをエンドツーエンドで自動化できます。レガシーの Topic メタデータを抽出し、変換してデータセットに適用し、検証します。手動での UI 操作は不要です。
以下の手順は、Quick Sight レガシーの Topic から抽出したセマンティックメタデータを用いて Amazon Quick Sight データセットを拡張する処理を自動化するものです。ビジネスコンテキスト、カラム説明、類義語、計算フィールド、名前付きエンティティ、フィルター、カスタム指示が、レガシーの Topic から直接データセットの SemanticModelConfiguration へ転送されます。
ステップの概要
スクリプトを実行する前に、4 つの情報が必要です。Quick コンソールの URL からデータセット ID とトピック ID(レガシー)を取得し、AWS アカウント ID と AWS リージョンを確認してください。
| ステップ | アクション | 入力値 |
|---|---|---|
| 1 | 対象データセット ID の取得 | データセット ID |
| 2 | トピック ID の取得 | トピック ID |
| 3 | AWS リージョン | (該当リージョン) |
| 4 | データセット拡張 Python スクリプトの実行 | 両方の ID とリージョン |
必須パラメータ
- ACCOUNT_ID = >
- REGION = <>
- DATASET_ID = >
- TOPIC_ID = <>
ステップ 1: 対象データセット ID の取得
QuickSight コンソールを開きます。左側のナビゲーションパネルでDataを選択し、Datasetsタブに切り替えます。拡張したいデータセットを選択します。データセット ID は、ブラウザの URL の末尾にある UUID です。
例:

ステップ 2: ソースレガシートピック ID の取得
QuickSight コンソールを開きます。左側のナビゲーションパネルでDataを選択し、Topicsタブに切り替えます。移行元のソースレガシートピックを選択します。トピック ID は、ブラウザの URL の末尾にある文字列です。
例:

ステップ 3: データセットに情報を追加するための Python コード
原文を表示
If you’ve been managing Amazon Quick legacy Topics alongside your datasets, you know the challenge: two assets that must stay perfectly synchronized, each with its own permissions, lineage, and versioning. Column synonyms drift. Calculated fields diverge. A rename in the dataset breaks the Legacy Topic silently. You can now use Amazon Quick to embed that business context directly into the dataset itself through Dataset Enrichment in the new data prep experience. Column descriptions, synonyms, calculated fields, custom instructions, and business rules all live alongside the data. Dataset Enrichment bakes business context directly into the dataset. Everything (permissions, semantics, AI context) travels with the data and is automatically inherited by anything built on top of it. One asset, one source of truth, one place to govern.
In this post, we walk through what Dataset Enrichment is, how it differs from legacy Topics, and provide three migration scenarios with step-by-step guidance so you can move your business context into the dataset layer with confidence.
Topic is now the multi-dataset semantic and reasoning layer, the construct where multiple datasets are composed, relationships are defined, business metrics are authored, and business terminology is mapped. Rather than introducing a net-new construct, we are re-purposing Topic to fulfill this role more completely. Moving dataset-intrinsic semantics down to where they belong, and elevating Topic to own the cross-dataset relationships, metrics, and business terminology that it was always meant to carry. This isn’t a cosmetic change. It establishes a clean, forward-looking architecture that supports both deterministic BI workflows and flexible AI-driven analytics from a shared semantic foundation. It also sets up the framework for catalog integration.
What is Topics (legacy)
Legacy Topics provided the initial approach to adding business context to datasets in Amazon Quick Sight. It stored column synonyms, calculated fields, named entities, filters, and custom instructions in a separate object that sat on top of the dataset, linked but independently managed. Going forward, we classify existing Topics as legacy. The new version of Topics is being elevated to a *multi-dataset semantic layer*. A single-entry point for cross-dataset Q&A that lets business users and AI workflows query across multiple enriched datasets in one conversation. Dataset Enrichment is the foundation that makes this possible: each dataset must carry its own semantic context before Topics can unify them at a higher level.
Key differences: Topics (legacy) vs. Dataset Enrichment (new data prep)
Legacy Topics
Dataset Enrichment
Where metadata lives
Separate legacy Topic object, linked to a dataset
Inside the dataset metadata itself
Column synonyms
Defined in Column Synonyms on the legacy Topic
Defined in Additional Notes on the column
Business rules & filters
Named Filters with structured conditions
Text-based rules in Custom Instructions
Calculated fields
Legacy Topic-level calculations (named expressions)
Calculated column (row-level transformation)
Named entities
Structured entity objects with synonyms
Text entries in Custom Instructions (dataset OUTPUT tab)
Custom instructions
Custom Instructions String on legacy Topic
Text entries in Custom Instructions (dataset OUTPUT tab)
Governance
Two assets to permission and audit
One asset to permission and audit
Semantic types
Properties of field
Properties of column
Aggregation levels
Properties of field
Handles by the agent at runtime based on the ask

What stays the same during migration
Not everything changes. These aspects of your Quick Sight environment remain unchanged during migration:
- Rules datasets don’t require migration. Rule-based logic continues to work as before.
- SPICE storage and Direct Query mode are unaffected. Your data access patterns remain the same regardless of whether you use Topics or Dataset Enrichment.
- Dashboards and analyses aren’t rebuilt. They use the enriched dataset.
- The user-facing Q&A interaction model doesn’t change. Users still ask questions in natural language through Amazon Quick chat. The difference is invisible to them.
Why move business context into the dataset?
When business metadata lives in a separate legacy Topic object, you manage two assets that must stay synchronized. Permissions, lineage, and discoverability all split across boundaries. Dataset Enrichment collapses this:
- Single source of truth. Business context travels with the data. There’s no separate asset to drift out of sync.
- Automatic inheritance. Any dashboard, analysis, legacy Topic, or AI-powered chat feature built on the enriched dataset inherits the semantic context without additional configuration.
- Simpler governance. One asset to manage permissions, audit, and version control.
- AI-readiness. The dataset becomes self-describing for natural language querying. Amazon Quick’s chat experience can resolve ambiguous business language directly from dataset metadata without requiring a separate Topic.
What’s changed in the dataset definition as part of Dataset Enrichment
The new data prep experience introduces semantic_model_configuration on datasets. It has two layers:
Column-level metadata (inside TableMap):
Property
Purpose
Example
Description
What the field represents
“Unique ID for each sales transaction”
AdditionalNotes
Synonyms and alternative names users might say
“order id, sale id, receipt number”
Dataset-level metadata (inside SemanticMetadata):
Property
Purpose
Example
Description
Overall summary of what the dataset contains
“Sales fact table covering transactions, revenue, and margins”
CustomInstructions
Business logic, formulas, named entities, and rules
“Revenue = quantity * unit_price * (1 – discount_applied)”
Mapping from Legacy Topic fields to Dataset Enrichment:
Legacy Topic field
Dataset SemanticModel target
ColumnDescription
ColumnProperties.Description.Text
ColumnSynonyms[]
ColumnProperties.AdditionalNotes.Text (comma-joined)
CalculatedFields.Expression
DataPrepConfiguration → CreateColumnsStep
NamedEntities.EntityName + EntityDescription + Definition
CustomInstructions.InlineCustomInstruction.InstructionText (as “Entity Name: definition (fields: …) (synonyms: …)”)
Filters
CustomInstructions.InlineCustomInstruction.InstructionText (as “Business Rule – Name: Output Column Name IN [values]”)
CustomInstructionsString
CustomInstructions.InlineCustomInstruction.InstructionText
Solution overview
The migration is a four-step process. You identify your target dataset, locate the source legacy Topic, and run a Python script that extracts the legacy Topic’s metadata and writes it into the dataset’s SemanticModelConfiguration through the Quick Sight API. The script handles column descriptions, synonyms, calculated fields, named entities, filters, and custom instructions in a single pass. No manual UI work required.
Prerequisites
Before you begin, verify that you have the following in place:
- AWS Command Line Interface (AWS CLI) v2 (version 2.34.50 or later) installed and configured with valid credentials. Run aws sts get-caller-identity to confirm your session is active. See the AWS CLI installation guide for setup instructions. Verify with aws --version.
- Python 3.6 or later is required to run the mapping script in Step 3. Verify with python3 --version.
- Amazon Quick Enterprise edition with Q enabled. The migration relies on Quick Sight APIs that are only available in Enterprise accounts with the Q add-on active.
- A target dataset using the new data prep experience. The dataset must use DataPrepConfiguration (not LogicalTableMap) and have column IDs on all InputColumns. See Creating a dataset in new data prep for more details.
- An existing legacy Topic (source) with columns, descriptions, synonyms, and optionally calculated fields, entities, and filters that you want to migrate.
- AWS Identity and Access Management (IAM) permissions for the caller identity: quicksight:DescribeDataSet, quicksight:UpdateDataSet, and quicksight:DescribeTopic. See Quick Sight IAM actions for the full policy reference.
Migration scenarios
The right approach depends on your current setup. We cover three scenarios, from simplest to most involved.

Scenario 1: Legacy datasets with no legacy Topics
Your dataset was built using the classic Quick Sight experience and has no semantic layer of any kind. Users see raw column names (TXN_DT, CUST_ID, AMT_USD) in dashboards, filters, and tooltips. When someone types a natural language question in Amazon Quick chat, the system has zero context to work with: no descriptions, no synonyms, no business rules. A question like “what’s our revenue this quarter?” returns nothing because nothing maps the word “revenue” to any column in the schema.
Legacy datasets ( using LogicalTableMap rather than DataPrepConfiguration) don’t support Dataset Enrichment. There’s no in-place upgrade path currently. You can’t add SemanticModelConfiguration to a legacy dataset, and there’s no migration API that converts one to the other. You can choose to query the dataset directly with raw column names using Dataset Q&A feature.
Scenario 2: Legacy Topics with legacy datasets
A Topic sits on top of a legacy dataset, providing the semantic layer your users depend on, column synonyms, calculated fields, named entities, named filters, and custom instructions. Users query through the Topic and get results. But underneath, the dataset itself has no enrichment. It still uses LogicalTableMap and exposes raw column names with no descriptions or business context of its own.
Like Scenario 1, the underlying legacy dataset doesn’t support SemanticModelConfiguration. There’s no way to push your legacy Topic metadata into the dataset directly. The path forward is creating a new dataset using the new data prep experience, migrating your legacy Topic’s metadata into it as Dataset Enrichment, validating the results, and cutting over. Alternatively you can use the Dataset Q&A feature with the legacy dataset.
Scenario 3: Legacy Topics with new data prep datasets
Current state: You already use the new data prep experience for your dataset. It has DataPrepConfiguration with SourceTableMap, TransformStepMap, and DestinationTableMap. But a legacy Topic is still layered on top providing the semantic context your users rely on: column synonyms, calculated fields, named entities, filters, and custom instructions. The dataset structure supports enrichment natively. It hasn’t been applied yet. This is the only scenario where a direct, in-place migration is possible. Your dataset already speaks the right API language, so you don’t need to recreate it.
Because the dataset uses DataPrepConfiguration, you can pass SemanticModelConfiguration directly to the update-data-set API. This means you can also:
- Migrate column descriptions and synonyms from your legacy Topic into ColumnProperties.Description and ColumnProperties.AdditionalNotes on the dataset. Every column that had a ColumnDescription or ColumnSynonyms array in the legacy Topic gets an equivalent entry in the dataset’s semantic layer.
- Migrate calculated fields from legacy Topic-level expressions into CreateColumnsStep entries in DataPrepConfiguration. These become first-class computed columns in the dataset, visible in dashboards and available for natural language queries without a legacy Topic.
- Migrate named entities, filters, and custom instructions into CustomInstructions.InlineCustomInstruction.InstructionText. Entity definitions, business rules, and formula documentation are preserved as structured text that the chat system reads at query time.
- Keep the legacy Topic active during migration. Both the legacy Topic and the dataset enrichment can coexist temporarily. You validate the enriched dataset’s Q&A behavior against the legacy Topic’s and only remove the legacy Topic after you’re ready.
- Run the legacy Topic migration with a script. Because both describe-topic and update-data-set are API calls, the transformation can be automated end-to-end. Extract legacy Topic metadata, transform it, apply it to the dataset, and verify. No manual UI work required.
The following step automates the enrichment of an Amazon Quick Sight dataset with semantic metadata extracted from a Quick Sight legacy Topic. It transfers business context, column descriptions, synonyms, calculated fields, named entities, filters, and custom instructions from a legacy Topic directly into the dataset’s SemanticModelConfiguration.
Step overview
You need four pieces of information before running the script. Get the dataset ID and Topic ID (Legacy) from the Quick console URLs (shown in Steps 1 and 2), and confirm your AWS account ID and AWS Region.
Step
Action
Input
1
Get target dataset ID
Dataset ID
2
Get Topic ID
Topic ID
3
AWS Region
4
Run Enrich Dataset python script
Both IDs and Region
Required parameters
- ACCOUNT_ID = >
- REGION = <>
- DATASET_ID = >
- TOPIC_ID = <>
Step 1: Get target dataset ID
Open the Quick Sight console. In the left navigation panel, select Data, then switch to the Datasets tab. Select the dataset that you want to enrich. The dataset ID is the UUID at the end of your browser’s URL.
Example:

Step 2: Get the source legacy Topic ID
Open the Quick Sight console. In the left navigation panel, select Data, then switch to the Topics tab. Select the source legacy Topic that you want to migrate from. The Topic ID is the string at the end of your browser’s URL.
Example:

Step 3: Python code to enrich a dataset with information from
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み