記事テンプレート
ジョインズについて
結合を使用すると、2つ以上のデータソースから、それらに共通する関連するデータ列に基づいて行を結合することができます。結合を使用することで、結合されたデータをより効率的かつ効果的に収集・分析し、より多くのインサイトを作成することができます。
データモデリングツールは左外部結合しかサポートしていません。
左外部結合を理解する
左外部結合の仕組みを理解するために、例を見てみましょう。
下のデータセットの画像を見てください。上の1つ目のデータソースが “左 “のデータソースで、下の2つ目のデータソースが “右 “のデータソースである。
これらのテーブルが、各アンケートのデータを表しているとしよう
。
場所ID | 位置名 |
555 | プロボ |
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 | プロボ | 101 | 2 |
777 | ダブリン | 102 | 4日 |
999 | シアトル | 103 | 5 |
1000 | 東京 | 空 | 空 |
Provo、Dublin、およびSeattleの結果には、RightとLeftの両方のソースからのデータ列が含まれていることに注目してください。
Rightソースに東京のデータがなかったため、東京の行には、新しい顧客ID列と顧客満足度列の下にNULL値があります。
ユニークジョインキーの重要性
結合キーは、左右のソースから結合する必要がある行を識別するのに役立つため、使用する結合キーが一意な識別子のように機能することを確認することをお勧めします。そうでない場合、右のソースに左のソースの結合キーと一致する複数のレコードがある場合、そのうちの1つだけがランダムに取り出されます。
例上で説明した例を見てみよう。同じ左のソースを持っている。しかし、正しいソースにはこのような列がある:
顧客ID | 満足度 (1-5) | 場所ID |
101 | 2 | 555 |
107 | 4日 | 555 |
結果の結合では、555行のうち片方だけが保存され、両方は保存されません。
結合キーが右ソースの各レコードに対して一意ではなく、右ソースと左ソースの両方からすべてのレコードを含める場合は、代わりにユニオンを使用する必要があります。ユニオンは、情報の行を組み合わせるのではなく、それぞれの記録を別々に取り込む。
ジョインの作成
- データ・モデリングを作成する。
- データ・モデルに少なくとも2つのソースを追加する。
Qtip:データソースには、データ結合に使用する共通フィールド(ユニークIDなど)を含め、必要なフィールドをすべて含めるようにしてください。 - 左データ・ソースとして使用するデータ・ソースの次へプラス記号 (+) をクリックします。
- ジョインを選択する。
- 出力に名前をつける。これは、データセットに複数の結合を追加する場合に便利である。
- Inputで、Rightデータソースを選択します。
- 結合条件を作成する。各データセットに共通するフィールドをマッチさせる。
例 ここでは、各データソースのユニークIDフィールドを相互にマッピングしています。Qtip:どのタイプのフィールドも結合条件で使用することができます。両方のデータソースで一致する一意の識別子を使用することを強くお勧めします。Qtip:ジョインキーのリコードは使用できません。
- 結合したソースの下に少なくとも 1 つの別のデータソースがある場合は、既存の結合を使用して別の結合を作成できます。
- 同じデータセットで別々の結合を作成することができる。このスクリーンショットでは、2022年アンケート調査とActionabilityのデータを結合しますが、上位2つのデータソースは結合しません。
- 出力データセットでデータ・モデルの作成を終了します。
補助結合の使用
補助結合を使用すると、同じ結合条件で複数のソースを結合できます。したがって、同じデータソースを使用して複数の重複した結合を作成する場合に便利です。
先に、左外部結合が2つのソース(右ソースと左ソース)でどのように機能するかについて説明しました。補助ジョインでは、同じ右ソースに複数の左ソースを設定することができます。
補助ジョインの例
例えば、店舗名とIDがリンクされた店舗所在地データベースがあるとしよう。店舗に対するフィードバックを収集するアンケート調査を2年間実施していますね。以下の例では、2020年と2021年の顧客満足度と顧客IDを見つけ、それらを場所名にリンクさせます。
店舗所在地(左資料)
場所ID | 位置名 |
555 | プロボ |
777 | ダブリン |
999 | シアトル |
1000 | 東京 |
カスタマー・フィードバック2020(ライトソース)
顧客ID | 満足度 (1-5) | 場所ID |
101 | 2 | 555 |
102 | 4日 | 777 |
103 | 5 | 999 |
104 | 5 | 222 |
カスタマー・フィードバック2021(補助的権利源)
顧客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 | プロボ | 101 | 2 | 該当なし | 該当なし |
2020年と2021年のデータが、同じ出力データセットの中で別々の 列になっていることに注目してほしい。
2020年は東京のデータがなかったが、2021年はあったため、2020年の欄は東京のデータが空欄(N/A)となっている。同様に、2021年にはプロボのデータはなかった。
いずれかの年のロケーションIDが「222」であるレコードは、店舗ロケーションファイルにそのIDに対応するロケーションがないため、最終データソースから除外された。データがどのように除外されるかについては、左外部結合を理解するを参照のこと。
補助ジョインの作成
- 参加をクリックする。
- 参加設定に進む。
- プラス記号(+)をクリックします。
- 正しい入力を選択する。
例左のソースに接続する2つ目のソースです。上記の例では、2021年の顧客フィードバック調査になります。 - 左カラムの結合条件をセットする。
- 右列の結合条件をセットする。
必要に応じて手順を繰り返し、補助ジョインを追加する。
補助ジョイン vs.その後の参加
補助ジョインに加えて、完了したジョインの次へプラス記号(+)をクリックし、ジョインを選択することもできます。この方法を “後続結合 “と呼ぶことにする。
一般的に、補助結合は同じデータソースを使用して複数の重複結合を作成する場合に便利です。最初の結合に含まれなかった2つの追加データソースとの結合を作成する場合は、後続の結合が最適です。
Qtip:後続結合は、2つ目の結合キーを別のソースから引き出す必要がある複数の結合を行う場合にも便利です。たとえば、ストア ID のアンケートがあるとします。
- 店舗IDを使用して、このデータをより多くの位置情報を持つ別のデータソースに結合する。
- ロケーションデータソースには、”ストアマネージャー “というフィールドもある。
- 3つ目のソースでは、”Store Manager “フィールドに基づいて結合している会社の階層情報があります。
この方法を使えば、アンケート調査データ、ロケーションデータ、企業階層をすべて1つのデータセットにまとめることができる。
しかし、補助結合と後続結合が同じ出力を持つタイミングもある。
例上記の例を発展させると、左側にStore LocationsのLocation ID 、右側に2021のLocation IDで後続の結合を作成しても同じ結果になります。
しかし、最初の結合を作成すると、Location IDフィールドは1つになりません。この例では、Location IDのStore Locationsと2020 Customer Feedbackの両方のカラムを持つことになります。2020 Customer FeedbackのLocation IDを使用してデータを結合しようとすると、結果は補助結合を使用した場合とは異なります。
結果テーブルはこんな感じだ。2020年には東京のデータがないため、既存の2021年の東京のデータは最終結果から除外される。
場所ID | 位置名 | 2020年 顧客ID | 2020年 満足度 | 2021 顧客ID | 2021 満足度 |
777 | ダブリン | 102 | 4日 | 343 | 5 |
1000 | 東京 | 該当なし | 該当なし | 該当なし | 該当なし |
999 | シアトル | 103 | 5 | 979 | 3 |
555 | プロボ | 101 | 2 | 該当なし | 該当なし |