結合 (CX)
結合について
結合を使用すると、共有するデータの関連列に基づいて、2 つ以上のデータソースの行を結合することができます。結合を使用することで、結合されたデータをより効率的かつ効果的に収集および分析し、より多くのインサイトを作成することができます。
データモデラでは、左外部結合のみがサポートされます。
左外部結合について
左外部結合の仕組みを理解するために、例を見てみましょう。
以下のデータセットのイメージを参照してください。上部の最初のデータソースは “左” データソース、下部の 2 番目のデータソースは “右” データソースです。
これらのテーブルは、各アンケートで検索できるデータを表しているとします:
店舗の場所(左のソース)
場所ID | 位置名 |
555 | Provo |
777 | ダブリン |
999 | シアトル |
1000 | 東京 |
カスタマーフィードバック(適切なソース)
顧客 ID | 満足度(1~5) | 場所ID |
101 | 2 | 555 |
102 | 4日 | 777 |
103 | 5 | 999 |
104 | 5 | 222 |
ロケーション ID に基づいてデータの結合を選択します。この項目は “結合キー” と呼ばれます。
これは、2 番目のデータセットに固有のデータです。これは削除されます。
顧客 ID | 満足度(1~5) | 場所ID |
104 | 5 | 222 |
これは最終出力か、または結果に含まれる全データです。
場所ID | 位置名 | 顧客 ID | 満足度(1~5) |
555 | Provo | 101 | 2 |
777 | ダブリン | 102 | 4日 |
999 | シアトル | 103 | 5 |
1000 | 東京 | Null | Null |
Provo、Dublin、および Seattle の結果には、Right ソースと Left ソースの両方からのデータの列が含まれています。これは、これらの行で共通のロケーション ID が共有されるためです。
右ソースに Tokyo のデータがないため、新しい Customer ID 列と Satisfaction 列の下の Tokyo 行には null 値があります。
一意結合キーの重要性
結合キーは、左右のソースから結合する必要がある行の識別に役立つため、使用する結合キーが一意の ID のように機能することを確認することをお奨めします。それ以外の場合、右側のソースに、左側のソースの結合キーと一致する複数のレコードがある場合、そのうちの 1 つのレコードのみがランダムに取得されます。
例: 上記の例を見てみましょう。左筋は同じですただし、適切なソースには、以下の行があります。
顧客 ID | 満足度(1~5) | 場所ID |
101 | 2 | 555 |
107 | 4日 | 555 |
結果の結合では、555 行のうち 1 行のみが保存され、両方は保存されません。
結合キーが右側のソースの各レコードに対して一意ではなく、右ソースと左ソースの両方のすべてのレコードを含める場合は、代わりに和集合 (ユニオン) を使用する必要があります。ユニオンは、情報の行を結合するのではなく、各レコードを個別に取得します。
結合の作成
- データモデルを作成します。
- 少なくとも 2 つのソースをデータモデルに追加します。
ヒント:データを結合するために使用する共通フィールド(一意のIDなど)など、必要なフィールドをすべてデータソースに含めるようにしてください。 - 左側のデータソースとして使用するデータソースの横にあるプラス記号 ( + ) をクリックします。
- 結合を選択します。
- 出力に名前を付けます。これは、データセットに複数の結合を追加する場合に役立ちます。
- 入力で、右データソースを選択します。
- 結合条件を作成します。各データセットに共通するフィールドを一致させてください。
例:ここでは、各データソースの一意の ID フィールドを相互にマッピングします。ヒント:任意のタイプのフィールドを結合条件で使用できます。両方のデータソースで一致する一意の ID を使用することを強くお奨めします。
- 結合したソースの下に少なくとも 1 つの別のデータソースがある場合は、既存の結合を使用して別の結合を作成することができます。
- 同じデータセットに別々の結合を作成できます。このスクリーンショットでは、2022 年の調査とアクション可能性のデータを結合しますが、上位 2 つのデータソースは結合しません。
- 出力データセットを使用してデータモデルの作成を終了します。
補助結合の使用
補助結合を使用すると、同じ結合条件で複数のソースを結合することができます。したがって、これらは、同じデータソースを使用して重複している複数の結合を作成する場合に役立ちます。
以前は、左外部結合が 2 つのソース (右ソースと左ソース) でどのように機能するかについて説明しました。補助結合を使用すると、結合内の同じ右ソースに複数の左ソースを設定できます。
補助結合の例
たとえば、名前が ID にリンクされた店舗所在地のデータベースがあるとします。2 年間のサーベイで、店舗に関するフィードバックを収集します。以下の例では、2020 年と 2021 年の満足度評価と顧客 ID を確認し、それらをロケーション名にリンクします。
店舗所在地 (左ソース)
場所ID | 位置名 |
555 | Provo |
777 | ダブリン |
999 | シアトル |
1000 | 東京 |
Customer Feedback 2020 (Right Source)
顧客 ID | 満足度(1~5) | 場所ID |
101 | 2 | 555 |
102 | 4日 | 777 |
103 | 5 | 999 |
104 | 5 | 222 |
Customer Feedback 2021 (Auxiliary Right Source)
顧客 ID | 満足度(1~5) | 場所ID |
656 | 5 | 1000 |
838 | 4日 | 222 |
979 | 3日 | 999 |
343 | 5 | 777 |
ロケーション ID に基づいてデータを結合します。
これは最終出力か、または結果に含まれる全データです。
場所ID | 位置名 | 2020 顧客 ID | 2020 年の満足度 | 2021 年の顧客 ID | 2021 年の満足度 |
777 | ダブリン | 102 | 4日 | 343 | 5 |
1000 | 東京 | 該当なし | 該当なし | 656 | 5 |
999 | シアトル | 103 | 5 | 979 | 3日 |
555 | Provo | 101 | 2 | 該当なし | 該当なし |
2020 年と 2021 年のデータが、同じ出力データセットで別々の列になったことに留意します。
2020 年には東京のデータがありませんでしたが、2021 年にはあったため、東京の 2020 列は空白です (N/A)。同様に、2021 年には Provo データはありませんでした。
いずれかの年のロケーション ID “222” のレコードは、最終データソースから除外されました。これは、ストアロケーションファイルにその ID に対応するロケーションがないためです。データの除外方法については、左外部結合の理解を参照してください。
補助結合の作成
- 結合をクリックします。
- 結合設定に移動します。
- プラス記号 (+) をクリックします。
- 右の入力を選択します。
例: これは、左側のソースに結合する 2 番目のソースです。上記の例では、これは 2021 年の顧客フィードバック調査になります。 - 左列の結合条件を設定します。
- 右の列の結合条件を設定します。
必要に応じてステップを繰り返し、補助結合を追加します。
補助結合と補助結合後続の結合
補助結合のほかに、完了した結合の横にあるプラス記号( + )をクリックし、[結合]を選択できます。このメソッドを “後続結合” と呼びます。
通常、補助結合は、同じデータソースを使用して複数の重複結合を作成する場合に役立ちます。後続の結合は、最初の結合に含まれていなかった 2 つの追加データソースを使用して結合を作成する場合に最適です。
ヒント:後続の結合は、別のソースから2つ目の結合キーを取得する必要がある複数の結合を作成する場合にも役立ちます。たとえば、店舗 ID のサーベイがあるとします。
- 店舗 ID を使用して、より多くのロケーションデータがある別のソースにこのデータを結合します。
- ロケーションデータソースには、”店舗責任者” という項目もあります。
- 3 番目のソースには、”店舗責任者” フィールドに基づいて結合する会社階層情報があります。
この方法を使用すると、サーベイデータ、ロケーションデータ、および会社階層を 1 つのデータセットにすべて組み合わせることができます。
ただし、補助結合と後続の結合が同じ出力になる場合があります。
例: 上記の例を展開すると、左側で店舗ロケーションからロケーション ID、右側で 2021 のロケーション ID を使用して後続の結合を作成した場合に同じ結果が得られます。
ただし、最初の結合を作成しても、ロケーション ID 項目が 1 つだけになるわけではありません。この例では、ロケーション ID の Store Locations バージョンと 2020 Customer Feedback バージョンの両方に列が表示されます。2020 年の顧客フィードバックのロケーション ID を使用してデータを結合しようとすると、結果は補助結合を使用した場合とは異なります。
結果の表は次のようになります。2020 年には東京のデータがないため、既存の 2021 年の東京データは最終結果から除外されます。
場所ID | 位置名 | 2020 顧客 ID | 2020 年の満足度 | 2021 年の顧客 ID | 2021 年の満足度 |
777 | ダブリン | 102 | 4日 | 343 | 5 |
1000 | 東京 | 該当なし | 該当なし | 該当なし | 該当なし |
999 | シアトル | 103 | 5 | 979 | 3日 |
555 | Provo | 101 | 2 | 該当なし | 該当なし |