

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# トピック内のデータセット間の関係の定義
<a name="topics-relationships"></a>


|  | 
| --- |
|  適用対象: Enterprise Edition  | 


|  | 
| --- |
|    対象者:  Amazon Quick 管理者と作成者  | 

関係は、質問またはビジュアルが複数のテーブルにまたがる場合にデータセットを結合する方法を Quick Sight に指示します。JSON 設定ファイルを使用してデータセットペア間の結合キーを指定することで、関係を定義します。

関係グラフは有向非巡回グラフ (DAG) である必要があります。循環関係はサポートされていません。共有ディメンションテーブルに結合された 1 つ以上の中央ファクトテーブルを持つスタースキーマでデータセットをモデリングすることをお勧めします。

**データセット間の関係を定義するには**

1. 設定するトピックを開きます。

1. **関係**タブに移動します。  
![PRODUCT_DIM、CUSTOMER_DIM、DATE_DIM、SALES_FACT、RETURN_FACT、STORE_DIM の 6 つのデータセットを含む Relationships タブを示すトピックエディタ。](http://docs.aws.amazon.com/ja_jp/quick/latest/userguide/images/topic-relationships-tab.png)

1. **ファイルをアップロード**または**手動で作成**を選択します。  
![アップロードファイルと手動作成ボタンを示す関係タブ。サポートされているファイルタイプは YAML と JSON です。](http://docs.aws.amazon.com/ja_jp/quick/latest/userguide/images/topic-relationships-upload.png)

1. 関係を定義する JSON ファイルをアップロードします (次の例を参照）。アップロード後、関係グラフが左に視覚的に表示され、結合キーの詳細が右に表示されます。結合を選択して、関係マッピングを検証します。  
![SALES_FACT と RETURN_FACT を PRODUCT_DIM、CUSTOMER_DIM、DATE_DIM、STORE_DIM に接続された中央ファクトテーブルとして示し、結合キーを右側のパネルに表示する関係グラフ。](http://docs.aws.amazon.com/ja_jp/quick/latest/userguide/images/topic-relationships-graph.png)

1. 関係を編集するには、**編集**を選択し、ドロップダウンセレクタを使用して結合列を更新し、**保存**を選択します。  
![各データセットペアの編集可能な結合列ドロップダウンを示すリレーションシップ編集モード。右上にキャンセルボタンと保存ボタンがあります。](http://docs.aws.amazon.com/ja_jp/quick/latest/userguide/images/topic-relationships-edit.png)

## リレーションシップ JSON 形式
<a name="topics-relationships-json"></a>

次の例は、中央 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`配列に複数の列名を含めることでサポートされます。

## 関係のベストプラクティス
<a name="topics-relationships-best-practices"></a>
+ **スタースキーマから始めます。**ディメンションテーブルで囲まれた中央ファクトテーブルは、結合の複雑さを最小限に抑え、クエリのパフォーマンスを最大化します。
+ **クリーン結合キーを使用します。**可能な場合は整数サロゲートキーを使用します。両側で一致するデータ型を確認します。結合キー列から null 値を削除します (NULL は内部結合では一致しません）。
+ **参照整合性を検証します。**ファクトテーブルのすべての外部キーは、ディメンションテーブルに存在する必要があります。
+ **円形結合は避けてください。**関係グラフは非循環である必要があります。モデルがサイクルを作成する場合は、1 つのレッグを削除して冗長パスを非正規化することでサイクルを分割します。
+ **可能であれば、スノーフレークチェーンに事前に参加します。**ディメンションにサブディメンションがある場合 (例: Customer → Geography → Region)、結合ホップを減らすためにそれらを 1 つのディメンションデータセットにフラット化することを検討してください。

## 現在の制限事項
<a name="topics-relationships-limitations"></a>

定義された関係には、次の制限が適用されます。
+ 関係では、分析シートに*内部結合*セマンティクスを使用します。両方のデータセットで一致するキーを持つ行のみが結果に表示されます。
+ 関係グラフは非循環 (円形結合なし) である必要があります。
+ 自己関係 (それ自体に関連するデータセット) はサポートされていません。
+ トピック内のすべてのデータセットは、同じクエリモード (SPICE または Direct Query) を使用する必要があります。
+ トピックは 12 データセットを超えることはできません。

**注記**  
Amazon Quick Chat でトピックを使用する場合、LLM 搭載のチャットエージェントは内部結合に制限されません。カスタム手順に基づいて、左結合、外部結合、ユニオン、サブクエリを含む SQL を生成できます。これらの結合タイプの制限は、分析シートの消費パスにのみ適用されます。