見出し画像

Tableau Prepの作業を変えるTips集 9 ー結合の種類、結合結果の確認ー

Tableau Prepユーザー会のNakajima2です。
Japan Preppin Data FamメンバーのPrep Tips集をご紹介します。
今回は第9回目、結合処理に関する2つのTipsです。

Prep Tips (17) : 結合の種類

<初心者〜中級者> 

前回の「ExcelからPrepへ」での活用事例でも取り上げましたが、結合処理はデータの前加工で有益な処理手法の一つになります。利用するケースも多く、データの内容に合わせた考慮が必要とされます。
結合の種類とデータの組み合わせ方法を理解することが重要です。

結合の方法

複数のテーブルを [フロー] ペインに追加し、関連付けるテーブルを選択してもう一方のテーブルにドラッグし、[結合] オプションを表示させます。

テーブルをドラッグで重ねて設定

結合に利用するキー項目が自動で表示されない、もしくは手動で設定したい際は、アイコンをクリックしてメニューから [結合] を選択し、次にもう一方の入力を手動で結合に追加し、結合句(キー項目)を追加します。

結合句(キー項目)の選択

キー項目は、2つ以上の設定も可能です。「適応した結合句」の右側に出ている まるで囲まれた + の部分をクリックすると、複数個の結合句を設定出来ます。
以下の結合タイプの説明では、結合句を1種類とした例で説明します。

結合タイプ

結合は、共通のフィールド上の関連データを組み合わせる方法です。結合後のデータは、通常 横方向に拡張されたテーブルとなります。
結合の操作は、フローの任意の場所で行うことができます。フローの早い段階で使用すると、データ セットの理解と、注意が必要なエリアを明らかにするのに役立ちます。

2つのテーブルからの結合では、次の7種結合があります。
2つの元のデータを、[商品コード]を接合句として接合した事例を交えて説明します。Prepの画面で、インプットペインの左側 設定欄を見比べながらご覧ください。
なお、結合タイプの設定は、設定欄の「結合タイプ」に表示されているベン図(円が二つ重なった部分)をクリックして灰色の網掛けをすることで設定が出来ます。

「商品マスタ」テーブル
「販売データ」テーブル

(1)Inner;内部結合
各行には、両方のテーブルで一致する値が含まれます。

Inner(内部結合)のフロー
赤字のデータが、結合で含まれていないもの(右ずで除外済みでカウントされている)
Inner処理後のデータ

(2)Left:左結合
各行には、左のテーブルのすべての値と、右のテーブルでそれに一致する値が含まれます。左のテーブルの値に対応する一致が、右のテーブルにない場合、結合結果に NULL 値が表示されます。

Left(左結合)のフロー
Innerと比べ、[商品コード] 005のデータが追加されている
Left処理後のデータ

(3)Right:右結合
各行には、右のテーブルのすべての値と、左のテーブルでそれに一致する値が含まれます。右のテーブルの値に対応する一致が、左のテーブルにない場合、結合結果に NULL 値が表示されます。

Right(右結合)のフロー
Innerと比べ、[商品コード] 006のデータが追加されている
Right処理後のデータ

(4)Left (only):左外部結合
各行には、右のテーブルの値と一致しない、左のテーブルの値のみが含まれます。右のテーブルのフィールド値は、結合結果に NULL 値として表示されます

Left(only)(左外部結合)のフロー
左側テーブル(「商品マスタ」)にのみあるデータだけ参照される
Left(only) 処理後のデータ

(5)Right (only):右外部結合
各行には、左のテーブルの値と一致しない、右のテーブルの値のみが含まれます。左のテーブルのフィールド値は、結合結果に NULL 値として表示されます。

Right(only)(右外部結合)のフロー
右側テーブル(「販売データ」)にのみあるデータだけ参照される
Right(only) 処理後のデータ

(6)Outer:非内部結合
各行には、右および左のテーブルで一致しないすべての値が含まれます。

Outer(非内部結合)のフロー
Inner(内部結合)部分のデータは参照されない
Outer 処理後のデータ

(7)Full Outer:完全外部結合
各行には、両方のテーブルのすべての値が含まれます。いずれかのテーブルの 1 つの値と一致する値が他のテーブルない場合、結合結果に NULL 値が表示されます。

Full Outer(完全外部結合)のフロー
全てのデータが参照される
Full Outer 処理後のデータ

SQL的には、、

SQL的な考え方では、3つのテーブルで結合するケースも含めて考える様です。ご参考までに有識者の方がまとめられた資料を引用します。

3つのテーブルも含んだ結合の種類

まとめ

Prepの接続処理で利用出来る結合7種についてまとめてみました。Tableau Desktopで利用出来る物理レイヤーの結合キャンパスを使う処理と同じになりますね。
初心者の方は、まずはInner(内部結合)が使える様になると、前回の「ExcelからPrepへ」での活用事例のような利用機会が多くなると思います。

実際の実務においては、利用するデータソースの欠損値への配慮などから、Inner(内部結合)ではなくLeft(左結合)を意図して利用することが多い様です。
この点、初級者の方々はみなさんの周りにいる中級者以上の方々に対処方法を聞くなどKonwHowを確認してみてください。本Tips集でも改めて取り上げる機会が持てればと思っています。

Prep Tips (18) : 結合結果の確認

<初心者> 

Prepの結合処理において、前述した「Prepの画面で、インプットペインの左側 設定欄を見比べて」との作業をすることで、それぞれの処理の違いを確認することが出来ました。
この「設定」で、処理の違いを確認することだけでなく、データの修正作業も直接行うことが出来ます。とても便利なので、覚えておいて頂きたいTipsです。

設定欄の利用(インプットペインの左側)

説明に用いるフロー(Inner結合)

上記のInner結合のフローを例に、設定欄に表示されている内容を確認しましょう。

設定欄でいろいろ分かる、設定出来る

(1)使用した結合句
 使用した結合句を設定、確認出来ます。複数の結合句(キー項目)も設定可能です。

(2)結合タイプ
 結合に利用したタイプの設定、表示が出来ます。設定はクリックで直感的に変更出来ます。

(3)結合結果のサマリー
 利用した結合タイプに合わせ、2つのテーブルのデータで参照、除外されたデータ数がグラフで表示されます。
 結合結果として表示されている数(上記例では、緑色の棒グラフ)で、結合後のデータ量からの結合の妥当性などが推定出来ます。

(4)結合結果の確認
 結合のサマリーで示された参照、除外されたデータ内容の詳細が、ここで確認出来ます。除外されたデータは赤字で表示され直感的に理解出来る仕組みになっています。
 ここで表示される結果は、選択した結合のタイプが適切かどうかの確認にも使えます。赤字のデータが意図した結果に合っているかを確認し、結合タイプを変更するなどの示唆を与えてくれます。

「結合結果のサマリー」 でデータの詳細を確認

今回のデータソースで、Inner結合では「結合のサマリー」欄に次のグラフ表示で結果が示されます。

Inner結合での、「結合のサマリー」と結合結果の表示例(デフォルトの表示状態)

「結合のサマリー」の表示で、数字が表示された棒グラフ状の部分をクリックすると、結合結果の表示欄にクリックした箇所の具体的なデータが表示され、内容を確認することが出来ます。
「表品マスタ」の「含める」にある青枠の棒をクリックした際の結合結果 表示例です。データの絞り込みで確認が出来ます。

「表品マスタ」の「含める」にある青枠の棒をクリックした際の結合結果 表示例

この状態で、更に「販売データ」の「含める」にあるオレンジ枠の棒をクリックすると、両者の表示が出来ます。色分けされ2つのテーブルからの元データ出所が分かりやすい表示がされます。

「販売データ」の「含める」にあるオレンジ枠の棒を追加でクリックした表示例

「除外済み」の棒をクリックしても、同様な表示が可能です。

「除外済み」データの結合結果 表示例

結合タイプを選択して作業をした際の結合結果 データ詳細が確認出来るのはとても便利です。
意図した作業が行えているかを確認出来ると共に、PrepはUIベースでデータの確認と操作の修正、前戻りが行いやすい仕組みになっています。
この点を理解していれば、出力結果を見た後に「あ、、ここ間違えていた」などの後戻りが防げ、フローを作成しながらの作業修正を実施することでの作業効率化を図ることが出来ます。

不一致のデータ修正

 結合処理で除外されたデータ数が多い場合は、結合結果の確認欄で追えきれな句なります。ここで便利なのが、欄の上部に表示されている「結合句 不一致の値のみを表示」。これをチェックすると赤字で表示されている除外されたデータのみを表示することが出来ます。

「結合句 不一致の値のみを表示」をチェックした例

これで、除外されたデータのみの表示となり除外された理由を理解する手助けをしてもらえます。
上記の例では、「結合句 不一致の値のみを表示」でのチェックをする前の内容と比較して、「販売データ」に「商品マスタ」に記載がない「006」のデータが入っていたことが推測出来ます。

便利なのはここから。不一致の値は、直接データを書き換えることが出来ます。
例えば、「販売データ」の「006」は、作業者のタイプミスで実際は、「003」が正しいとします。
表示されている「販売データ」の「006」データを画面上でダブルクリックして、「003」に直接書き換えが可能です。

「販売データ」の「006」データを画面上でダブルクリック
「003」に書き換えリターンキーで確定
データが処理され、「商品コード」の表示がなくなりました

この作業を、「結合結果のサマリー」部分で作業前後の内容を比較すると、修正作業でここから直接データの変更が出来ていることが分かります。Prepの画面表示を手戻りすることなく、データ修正が出来るのはとても便利です。

「商品コード」のデータ「003」修正前
「商品コード」のデータ「003」修正後:参照データ数が増えています

まとめ

結合結果の確認。
知らなかったけど、いろいろな情報が表示されており、その表示から直接 詳細データの確認や修正が行える便利な仕組みが用意されています。
作業効率の向上や、データ処理時の動作理解など役立つ点がいっぱいです。是非、有効に活用頂ければと思います。


この記事が気に入ったらサポートをしてみませんか?