データの結合 - Amazon QuickSight

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

データの結合

Amazon の結合インターフェイスを使用して QuickSight 、1 つ以上のデータソースからオブジェクトを結合できます。Amazon を使用してデータを QuickSight 結合することで、異なるソースからデータを複製することなく、異なるデータをマージできます。

結合されたデータセットのタイプ

結合は 2 つの QuickSight 論理テーブル 間で実行され、各論理テーブルにはデータの取得方法に関する情報が含まれます。でデータセットを編集する場合 QuickSight、ページの上半分の結合図には、各論理テーブルが長方形のブロックとして表示されます。

結合データセットには、 QuickSight同一ソースとクロスソースの 2 つの異なるタイプがあります。データセットは、結合がない場合、または次の条件がすべて満たされた場合に、同じソースと見なされます。

  • いずれかの論理テーブルが QuickSight データソースを参照している場合:

    • このデータセット内のすべての論理テーブルは、同じ QuickSight データソースを参照する必要があります。これは、2 つの個別の QuickSight データソースが同じ基盤となるデータベースを参照している場合には適用されません。まったく同じ QuickSight データソースである必要があります。単一データソースの使用の詳細については、「既存のデータソースを使用したデータセットの作成」を参照してください。

  • いずれかの論理テーブルが親 QuickSight データセットであるデータセットを参照している場合:

    • 親データセットは直接クエリを使用する必要があります。

    • 親データセットは同じ QuickSight データソースを参照する必要があります。

上記の条件が満たされない場合、データセットはクロスソース結合と見なされます。

データセットの結合に関する事実

同じソースのデータセット結合とクロスソースのデータセット結合には、次の制限があります。

結合データセットに含めることができるテーブルの最大数はいくつですか。

すべての結合データセットには、最大 32 個のテーブルを含めることができます。

結合データの大きさはどれくらいにできますか。

結合の最大許容サイズは、使用されるクエリモードとクエリエンジンによって決まります。以下のリストは、結合するテーブルのさまざまなサイズ制限に関する情報を示しています。サイズ制限は、すべてのセカンダリテーブルの組み合わせに適用されます。プライマリテーブルには結合サイズ制限はありません。

  • 同一ソーステーブル – テーブルが単一のクエリデータソースから発信された場合、 は結合サイズに制限を QuickSight 課しません。これは、ソースクエリエンジンが設定している結合サイズの制限を上書きしません。

  • クロスソースデータセット – このタイプの結合には、 に保存されていないさまざまなデータソースのテーブルが含まれますSPICE。これらのタイプの結合の場合、 はデータセット内の最大のテーブル QuickSight を自動的に識別します。他のすべてのセカンダリテーブルの合計サイズは 1 GB 未満である必要があります。

  • に保存されているデータセット SPICE – このタイプの結合には、すべて に取り込まれるテーブルが含まれますSPICE。この結合内のすべてのセカンダリテーブルの合計サイズは 20 GB を超えることはできません。

SPICE データセットサイズ計算の詳細については、「」を参照してくださいSPICE データセットのサイズの推定

結合されたデータセットは直接クエリを使用できますか。

同じソースのデータセットは、直接クエリの使用に関して他の制限がない場合、直接クエリをサポートします。例えば、S3 データソースは直接クエリをサポートしていないため、同じソースの S3 データセットは引き続き を使用する必要がありますSPICE。

クロスソースデータセットは を使用する必要がありますSPICE。

結合で計算フィールドを使用できますか。

すべての結合されたデータセットは計算フィールドを使用できますが、計算フィールドはどの on 句でも使用できません。

結合で地理データを使用できますか。

同じソースのデータセットは地理データ型をサポートしますが、地理フィールドはどの on 句でも使用できません。

クロスソースのデータセットは、いかなる形式でも地理データをサポートしていません。

データソース間でテーブルを結合する例については、 AWS ビッグデータブログの「Amazon のデータソース間で QuickSightの結合」の記事を参照してください。

結合の作成

以下の手順に従って、データセットで使用するテーブルを結合します。開始する前に、データのインポートまたはデータへの接続を行います。Internet of Things (IoT) データを除き QuickSight、Amazon でサポートされている任意のデータソース間で結合を作成できます。例えば、Amazon S3 バケットにカンマ区切り値 (.csv) ファイル、テーブル、ビュー、SQLクエリ、またはJSONオブジェクトを追加できます。

1 つ以上のファイルを追加するには
  1. 使用するデータセットを開きます。

  2. (オプション) 開始する前に、データのサンプルに基づいて自動生成されたプレビューを無効にするかどうかを決定します。この機能をオフにするには、右上の [Auto-preview] を選択します。これは、デフォルトで有効になっています。

  3. クエリモードをまだ選択していない場合は、[Query mode]を選択します。

    データセットを SPICEに保存するかSPICE直接クエリを選択してライブデータを毎回プルするかを選択します。データセットに手動でアップロードされたファイルが 1 つ以上含まれている場合、データセットは SPICE に自動的に保存されます。

    を選択するとSPICE、データは に取り込まれます QuickSight。データセットを使用するビジュアルは、データベースではなく SPICE でクエリを実行します。

    [Direct query] (直接クエリ) を選択する場合、データは SPICE に取り込まれません。データセットを使用するビジュアルは、SPICE ではなく、データベースでクエリを実行します。

    [Query mode] を選択した場合は、ビジュアルのロード時のパフォーマンスを向上するために、必要に応じて結合に一意のキーを設定してください。

  4. データ準備ページで、[Add data (データの追加)] を選択します。

  5. 開いた [Add data] ページで、次のいずれかのオプションを選択し、次の手順を実行します。

    • データセットからデータを追加する。

      1. [Dataset] を選択する。

      2. リストからデータセットを選択する。

      3. [選択] を選びます。

    • データソースからデータを追加する。

      1. [Data source] を選択する。

      2. リストからデータソースを選択する。

      3. [選択] を選びます。

      4. リストからテーブルを選択する。

      5. [選択] を選びます。

    • 複数回、テーブルを追加して自己結合を作成する。名前の後にカウンターが表示されます。例えば、[Product (製品)]、[Product (2) (製品 (2))]、[Product (3) (製品 (3))] と表示されます。特定のフィールドがどのテーブルインスタンスからのものかを確認できるように、[Fields (フィールド)] セクションや [Filters (フィルター)] セクションのフィールド名には同じカウンターが含まれるようにします。

    • [Upload a file] を選択して新しいファイルを追加し、統合するファイルを選択する。

  6. (オプション) カスタムを使用してSQLクエリエディタを開き、SQLデータソースのクエリを記述します。

  7. (オプション) データを追加したら、メニューアイコンを選択して各テーブルを操作します。テーブルをドラッグアンドドロップして再配置します。

    この結合を設定する必要があることを示す、赤いドットの付いたアイコンが表示されます。まだ設定されていない結合には、2 つの赤いドットが表示されます。結合を作成するには、最初の結合設定アイコンを選択します。

  8. (オプション) 既存の結合を変更するには、2 つのテーブル間の結合アイコンを選択して、[Join configuration (結合の設定)] をもう一度開きます。

    [Join configuration (結合の設定)] ペインが開きます。結合インターフェイスで、テーブルを結合するために使用する結合タイプとフィールドを指定します。

  9. 画面の下部に、別のテーブルのフィールドと同等のテーブルのフィールドを設定するオプションが表示されます。

    1. [Join clauses (結合句)] セクションで、各テーブルの結合列を選択します。

      (オプション)選択したテーブルが複数の列で結合する場合は、[Add a new join clause (新しい結合句の追加)] を選択します。これにより、結合句に別の行が追加され、結合する次の列セットを指定できます。2 つのデータオブジェクトのすべての結合列を指定するまで、このプロセスを繰り返します。

  10. [Join configuration (結合の設定)] で、適用する結合の種類を選択します。結合フィールドが一方または両方のテーブルの一意のキーである場合は、一意のキー設定を有効にします。一意のキーは直接クエリにのみ適用され、SPICE データには適用されません。

    結合の詳細については、結合の種類 を参照してください。

  11. [Apply (適用)] を選択して選択内容を確定します。

    変更を加えずに終了するには、[Cancel (キャンセル)] を選択します。

  12. WorkSpace の結合アイコンが変更され、新しい関係が表示されます。

  13. (オプション) [Fields (フィールド)] セクションでは、各フィールドのメニューを使用して、次の 1 つ以上の操作を実行できます。

    • 地理空間フィールドに階層を追加する

    • フィールドを含めるまたは除外する

    • フィールドの名前および説明を編集する

    • データ型の変更

    • 計算を追加する (計算フィールド)。

    • アクセスを自分のみに制限する (自身のみがアクセスできます)。これは、すでに使用しているデータセットにフィールドを追加する場合に便利です。

  14. (オプション) [Filters (フィルター)] セクションで、フィルターを追加または編集できます。詳細については、Amazon でのデータのフィルタリング QuickSightを参照してください。

結合の種類

Amazon では、次の結合タイプ QuickSight がサポートされています。

  • 内部結合

  • 左と右の外部結合

  • 完全外部結合

これらの結合タイプでのデータの処理について詳しく見ていきます。このサンプルデータでは、widgetsafety rating という名前の次のテーブルを使用しています。

SELECT * FROM safety-rating rating_id safety_rating 1 A+ 2 A 3 A- 4 B+ 5 B SELECT * FROM WIDGET widget_id widget safety_rating_id 1 WidgetA 3 2 WidgetB 1 3 WidgetC 1 4 WidgetD 2 5 WidgetE 6 WidgetF 5 7 WidgetG

内部結合

2 つのテーブル間で一致するデータのみを表示するには、内部結合 ( ) を使用します。例えば、[safety-rating] テーブルと [widget] テーブルで内部結合を実行したとします。

次の結果セットでは、安全評価のないウィジェットは削除され、関連付けられたウィジェットがない安全評価も削除されています。含まれるのは、完全に一致する行のみです。

SELECT * FROM safety-rating INNER JOIN widget ON safety_rating.rating_id = widget.safety_rating_id rating_id safety_rating widget_id widget safety_rating_id 3 A- 1 WidgetA 3 1 A+ 2 WidgetB 1 1 A+ 3 WidgetC 1 2 A 4 WidgetD 2 5 B 6 WidgetF 5

左と右の外部結合

これらは左または右の外部結合とも呼ばれます。1 つのテーブルのすべてのデータと、別のテーブルの一致する行のみを表示するには、左 ( ) または右 ( ) の外部結合を使用します。

グラフィカルインターフェイスで、右または左にあるテーブルを確認できます。SQL ステートメントでは、最初のテーブルが左側にあると見なされます。そのため、右外部結合ではなく左外部結合を選択することは、テーブルのクエリツールでの配置方法のみに依存します。

例えば、safety-rating (左のテーブル) と widgets (右のテーブル) に対して左外部結合 ( ) を実行したとします。この場合、すべての safety-rating 行が返され、一致する widget 行だけが返されます。一致するデータがない箇所は結果セットで空白になります。

SELECT * FROM safety-rating LEFT OUTER JOIN widget ON safety_rating.rating_id = widget.safety_rating_id rating_id safety_rating widget_id widget safety_rating_id 1 A+ 2 WidgetB 1 1 A+ 3 WidgetC 1 2 A 4 WidgetD 2 3 A- 1 WidgetA 3 4 B+ 5 B 6 WidgetF 5

代わりに右外部結合 ( ) を使用する場合は、safety-rating が左側、widgets が右側になるように同じ順序でテーブルを呼び出します。この場合、一致する safety-rating 行だけが返され、すべての widget 行が返されます。一致するデータがない箇所は結果セットで空白になります。

SELECT * FROM safety-rating RIGHT OUTER JOIN widget ON safety_rating.rating_id = widget.safety_rating_id rating_id safety_rating widget_id widget safety_rating_id 3 A- 1 WidgetA 3 1 A+ 2 WidgetB 1 1 A+ 3 WidgetC 1 2 A 4 WidgetD 2 5 WidgetE 5 B 6 WidgetF 5 7 WidgetG

完全外部結合

これらは単に外部結合と呼ばれることもありますが、この用語は左外部結合、右外部結合、完全外部結合のいずれかを意味する場合もあります。意味を定義するため、完全な名前の完全外部結合を使用します。

一致するデータに加えて、一致しない両方のテーブルのデータを表示するには、完全外部結合 ( ) を使用します。この結合タイプには、両方のテーブルのすべての行が含まれます。例えば、safety-rating テーブルと widget テーブルに対して完全外部結合を実行した場合、すべての行が返されます。行は一致する場所で整列されて、余分なデータはすべて別個の行に含まれます。一致するデータがない箇所は結果セットで空白になります。

SELECT * FROM safety-rating FULL OUTER JOIN widget ON safety_rating.rating_id = widget.safety_rating_id rating_id safety_rating widget_id widget safety_rating_id 1 A+ 2 WidgetB 1 1 A+ 3 WidgetC 1 2 A 4 WidgetD 2 3 A- 1 WidgetA 3 4 B+ 5 B 6 WidgetF 5 5 WidgetE 7 WidgetG