クロスデータベース結合|Tableau

TableauTableau
この記事は約5分で読めます。

2つのデータベースを結合する

2つのEXCELファイルのデータの結合やCSVファイルとエクセルファイルなどのフォーマットが違うデータをデータソースフィールドで加工し、結合するテクニックです。少しの手順でデータベースを結合できる非常に便利な機能です。

クロスデータベース結合

クロスデータベース結合とは、様々なデータベース内に格納されている各種のデータをつなぎ合わせて分析したいときに用いる機能です。異なるデータソース内のデータを結合し、保存とパブリッシュが可能な統合データソースを作成します。

このコンテンツでは2つのエクセルファイルのデータから単一データテーブルを作成する方法をまとめました。

例えば、以下のように商品マスタと販売データが別々のデータとして記録されている場合、2つのデータをTableau上で簡単に結合し単一のテーブルにする方法です。

商品マスタ(SAMPLE)
販売データ(SAMPLE)

結合とクロスデータベース結合の違い
結合は、例えば、一つのEXCELファイル内で複数のシートに記録されているデータを結合すること。一方、クロスデータベース結合は、2つ以上の異なるデータソースから結合することをさし、Tableauでは結合方式の違いとして区別しています。

完成イメージ
<手順>


1.データソース左上部の”追加”をクリックし、2番目以降のデータに接続する。

2.結合のベースとなるデータ(エクセルやCSVならシート)を選択し、取り込むシートを選択する。

3.最初のデータが読み込まれたら、テーブル名をダブルクリック

テーブル名をダブルクリックする理由
Tableauでは、データを物理的に結合(単一のデータにマージ)する「結合/クロスデータベース結合」と論理的にデータを関連付けるリレーションシップが存在します。データに接続した状態から単一のデータとして物理的に結合させるフィールドを表示させるための作業となります。

4.結合したいデータを読み込んで、結合タイプを選択し、結合する結合句(列名)を決定すると2つのデータを単一のデータテーブルに結合することができます。
(結合タイプの種類は後ほどご紹介します。)

結合(Join)の種類

データを結合(join)する際に、結合方法によってデータの持ち方が変わります。それぞれのデータ結合の特徴を理解することが重要です。Tableauでは4種類のデータベース結合が可能ですので、その方法を一覧表で整理しました。

結合(join)の種類
内部結合データソースフィールド(一般的にはテーブルのカラム)の値が一致するものだけを結合メリット:結合する側のメジャーレコード数がそのまま分析の対象として取り扱える。
左外部結合左結合を使用して表を組み合わせると、結果は左の表のすべての値および右の表からの一致する値を含む表になります。
左の表の値に対応する一致が、右の表にない場合、データ グリッドに NULL 値が表示されます。
トランザクションデータにマスタデータを結合する場合などに利用する
右外部結合右結合を使用して表を組み合わせると、結果は右の表のすべての値および左の表からの一致する値を含む表になります。
右の表の値に対応する一致が、左の表にない場合、データ グリッドに NULL 値が表示されます。
同上
完全外部結合完全外部結合を使用して表を組み合わせると、結果は両方の表のすべての値を含む表になります。
いずれかの表の値が、他の表と一致しない場合、データ グリッドに NULL 値が表示されます。
利用する機会はあまりない。

データソースからの結合計算

クロスデータベース結合を行うときに、結合元のデータでは「姓名」の情報をひとつのカラム(列)に、結合させるデータでは「姓」「名」を分けてデータを保持しているような場合でも、Tableauの計算フィールドを用いることで、元データを修正せずに結合句の設定が可能です。

参考例:データテーブルの2つのカラムを結合して新たな結合句を作る

以下のようなデータベースがあった場合、共通する結合句となりうるのは、姓名となります。ですが、このままでは結合できないため、データベースBの「姓」「名」のカラムをくっつけることで、データを結合することが可能になります。

姓名ID
山田太郎XXXXX
鈴木花子△△△△
データベースA
購入履歴
山田太郎○月○日
鈴木花子☓月☓日
データベースB

計算式:データベースB側に文字列フィールドの計算式を入力する

[姓]+[名]
参考例:一部の文字列を抽出して結合する。

結合する列に存在する特定の文字列だけを選択し、結合することができます。

例えば、データベースA及びBのオーダーID列に左から3文字が一致するデータが存在するがすべての文字列が一致しないデータがあるとします。そして、結合句としてオーダーID列を用いてJOINさせる場合に結合計算を用いて文字列を部分一致させることでJOINすることが可能です。

例えば、次のような2つのデータが存在し、「商品X」という文字列で2つのデータを結合する場合、結合計算を行うことで解決できます。

オーダーID出荷日製造工場
商品X-lot12345●月●日AA工場
商品X-lot67890✗月✗日BB工場
データベースA
商品商品コード保存方法
商品XX1000要冷蔵
商品YY2000室温
データベースB

計算式:データベースA側にLEFT関数を用いて計算式作成する。

(LEFT([オーダーID]),3))

Tableauは簡単な操作で、分析するデータの整備からビジュアライゼーションまでを一気通貫に行える素晴らしいツールです。