テーブルの結合
報告システムでは、データを2つ以上のテーブルから組み合わせて分析と報告のために必要な情報を取得する必要がある場合がよくあります。データを2つ以上のテーブルから取り込むには、「テーブルの結合」という操作からテーブルを組み合わせる必要があります。結合とは、共通列を使ったテーブル間の関係性を設定することです。
ManageEngine Analytics Plusでは、テーブルを結合し、以下の2つの方法のいずれかを使ってレポートを作成できます
-
自動結合
-
クエリテーブル
テーブルの自動結合
複数テーブル間に及ぶデータを使ってレポートを作成する場合に、ManageEngine Analytics Plusには、Auto-Join自動結合という特別機能があります。この機能では、テーブルがルックアップ列で接続されていれば、レポートの作成時にテーブルを自動的に結合します。この機能が作動するには、2つのテーブルが関連していることをルックアップ列を使って指定する必要があります。2つのテーブルの間のルックアップ関係性を定義するには、テーブルに共通する列が少なくとも1つあることが必須条件です。1つの例を使ってみてみましょう。
この例では、ルックアップ列の定義方法およびルックアップ関係性をもとにレポートの作成時に自動結合でテーブルを組み合わせる方法を示します
「売上データベース保存」モデル:
売上データベース保存モデルでは、売上と販売担当者テーブルに販売担当者Idという共通列があります。売上テーブルでは、すべての売上が販売を行った販売担当者Idと関連づけられています。販売担当者テーブルで、各販売担当者は販売担当者Id列で指定された固有IDで識別されます。同様に、売上と製品詳細テーブルにはProduct_IDという共通列があります。売上テーブルで、各売上はProduct_ID列で識別された製品と関連づけられています。製品テーブルでは、各製品は Product_ID列で指定された固有IDで識別されます
これらの関連列により、売上と販売担当者テーブルの間のルックアップ関係性を販売担当者Id列から定義dけいます。同様に、売上と製品詳細テーブルの間で、共通のProduct_IDをもとにルックアップ関係性を確立できます。ルックアップ列関係性が定義されると、ManageEngine Analytics Plusは、これらのテーブルに基づいてレポート作成を開始したとき自動結合を使って、これらのテーブルからデータを自動結合します。
ルックアップの定義
ルックアップは、既存のテーブルから、またはインポート内兄定義できます。ルックアップをレポートエディタから定義することもできます。以下のセクションでは、テーブル間のルックアップの定義方法について説明します。
テーブルから
このせクションでは、ルックアップ関係性のテーブルからの定義方法について説明します。
上記の売上データベース保存がManageEngine Analytics Plusで対応するテーブルによりすでに作成済みであることとします。売上と販売担当者テーブルの間のルックアップの定義を販売担当者IDの共通列から開始してみましょう。
-
ワークスペースのエクスプローラータブから、売上テーブルを開き、ツールバーの[デザインを編集]ボタンをクリックします。
-
表示されるダイアログボックスで、Data Type販売担当者IDのデータタイプ列にあるセルをクリックし、ドロップダウンリストからルックアップ列をデータタイプとして選択します。
-
販売担当者IDとルックアップ列にある交点のセルをクリックします。.ドロップダウンリストに下のように、すべてのテーブルとその列のリストがワークスペースに表示されます。販売担当者テーブルの販売担当者IDを選択します。
下の手順にしたがって、ルックアップ列を作成することもできます:
- 売上テーブルが開きます。
- 販売担当者ID列を選択します。
- 列ヘッダーを右クリックし、[ルックアップ列に変更]を選択します。
- 開いた [ルックアップ列に変更]ダイアログで、販売担当者ID列を選択して検索します。
これで、売上と販売担当者テーブルの間の関係性がルックアップ列販売担当者IDから設定されます。ここで、売上テーブルが、親となる販売担当者テーブルから列を検索しているため、売上テーブルを子テーブルとして販売担当者テーブルに呼び出します。
同様に、製品ID列を使って、売上と製品詳細テーブルの間のルックアップ関係性を定義できます。ここでは、ルックアップ列は、売上テーブル(子テーブルが、親となる製品詳細テーブルで定義されます。
インポートウィザードから
Analytics Plusは、同様の列を自動識別し、データのインポート中にるっぷアップに提案を行います。以下のセクションでは、これがどのように機能するかを説明します。
- インポートウィザードでインポートするデータを選択したら、下のように、 次の画面にポップアップが表示されます(手順2/2:テーブルを作成)。
- Analytics Plusはインポート中の新しいデータを既存のテーブルと一致照合して、名前とデータタイプが同じ列を識別し、結合を提案します。 下部[テーブルを結合:ルックアップ列が自動識別されました]リンクをクリック(手順2/ 2:テーブルを作成)して、ルックアップを作成できます。
- Analytics Plusがルックアップの列を自動識別できない場合、[テーブルを結合]リンクをクリックして、ルックアップを各自で作成することができます。
- [テーブルを結合]ダイアログが開き、既存のテーブルで検索可能な一致列のリストが表示されます。
- デフォルトでは、既存のテーブルの列は親として定義され、新しいテーブルの列は子として定義されます。関係性は、テーブルに接続されている円をクリックして、交換することができます。ルックアップの提案は、提案の横にある[削除]ボタンをクリックして、削除することもできます。
- ルックアップに定義する列と関係を選択したら、[保存して閉じる]をクリックします。ルックアップがテーブル間に作成されます。Analytics Plusでのリレーショナルデータモデリングの作動のしくみについての詳細は、ここをクリックしてください。
レポートエディタから
Analytics Plusでは、データを別のテーブルから入れる必要がある場合、レポートエディタからテーブルを結合することができます。レポートを販売担当者別の売上について作成するとします。.売上テーブルデータには販売担当者IDがあることになります。販売担当者名を販売担当者テーブルから追加します。以下のセクションでは、これがどのように機能するかを説明します。
- 左ペインから[テーブルを含める]リンクをクリックします。別のテーブルから結合する[テーブルを含める]ダイアログが開きます。
- データの結合元のテーブル(販売担当者)を選択します。この後、デフォルトでは、Analytics Plusがルックアップの動揺の列を自動識別して、選択します。これらの列は、必要に応じて、変更することができます。
- デフォルトでは、既存のテーブルの列は親として定義され、新しいテーブルの列は子として定義されます。この関係性は交換でき、ルックアップ提案を削除することもできます。インポートウィザードから自動結合セクションを参照してください。[+ルックアップを追加]リンクをクリックして、複数のルくアップを削除することもできます。
- ルックアップに定義する列と関係を選択したら、 [OK]をクリックします。ルックアップがテーブル間に作成されます。テーブル間で作成され、レポートの両方のテーブルから列を追加することができるようになります。Analytics Plusでのリレーショナルデータモデリングの作動のしくみについての詳細は、ここをクリックしてください。
自動結合を使ったレポートの作成
テーブルがルックアップ列を使って互いに関連されたら、ルックアップ関係性のあるテーブルを選択して、レポートを作成できます。ManageEngine Analytics Plusは、これらのテーブルからのデータを自動結合し、テーブル全体から列をドラッグ・アンド・ドロップしたときレポートを生成します。
各販売担当者別売上チャートを自動結合機能を使った作成方法は以下のとおりです:
-
売上テーブルを開き、ツールバーの[新しいチャートビュー]オプションを選択します。
-
これで、自動結合機能により、他のテーブルとのルックアップ関係性が検出され、レポートデザイナーの列リストパネルにある製品と売上テーブルんぼすべての列が一覧表示されます。.
-
販売担当者名列を売上テーブルからX軸シェルフに、また売上列を売上テーブルからY軸シェルフにドラッグ・アンド・ドロップします。
-
[ここをクリックしてグラフを生成]リンクをクリックし、販売担当者別の売上レポートを作成します。
- 自動結合機能では、売上と販売担当者テーブルの両方からのデータを、ルックアップ列製品IDを使って結合し、レポートを生成します。
また、関連するテーブルからの列を使って、レポートをフィルタリングすることもできます。上記の例製品名列を製品詳細テーブルからの引継義を使って、チャートデータをフィルタリングし、下記のとおり、選択した製品の販売担当者別の売上を表示することができます。
結合タイプをカスタマイズ:
デフォルトでは、Analytics Plusは、左結合タイプを使ってテーブルを結合します。可能な結合タイプは次のとおりです:
左結合 - レポートは、子テーブル(左)のすべての行と、親テーブル(右)の一致する行のみで計算されます。一致処理は、子と親テーブルの間で定義したルックアップ列に基づいて行われます。これがデフォルトの結合タイプです。この場合、売上テーブルは子、販売担当者テーブルは親になります。
右結合 - レポートは、親テーブル(右)のすべての行と、子テーブル(左)の一致する行のみで計算されます。一致処理は、親と子テーブルの間で定義したルックアップ列に基づいて行われます。ここでは、子が販売担当者となり、親は売上テーブルになります。
結合タイプの変更を選択することができます。これを行うには、
- チャートデザイナーの[使用したビューパス]アイコンをクリックし、リストビューで選択します。
- 開いた[このレポートで使用したパス]ダイアログで、結合のタイプを選択して、[適用]をクリックします。
自動結合で使用したルックアップ列とパスのカスタマイズ
複数のテーブルを、お使いのワークスペースの各種ルックアップ列を使ってリンクできます。レポート作成時、Analytics Plusは、それらの間で作成された適切なルックアップ列(ルックアップパス)を使い、自動結合機能でレポートを生成します。
ただし、これがお使いの個別ニーズには適さない場合があります。この問題に対処するため、Analytics Plusでは、[ルックアップパスを構成]オプションを使って、レポート作成に使うテーブルの間のルックアップパスを選択できます。
売上モデルの例をみてみましょう。ここでは、売上と顧客テーブルを2つのルックアップ列を使って、すなわち、製品ID と顧客IDを使って直接結合します。 売上テーブルには、販売担当者テーブルへのルックアップもありますが、ここでは販売担当者IDを使います。販売担当者と顧客テーブルは顧客IDを使って結合します。これで、売上と顧客テーブルの間の間接的な接続が販売担当者テーブルでから作成されます。
結合のためのルックアップ列のカスタマイズ
上記のモデルで、顧客全体の売上レポートの作成の例をみてみましょう。デフォルトでは、顧客全体の売上をレポートに記載する場合、Analytics Plusは正しくない顧客テーブルへの製品 IDルックアップを使うことができます。
この場合、使用するルックアップ列を選択して、っこれを変更することができます。下図は、結合するルックアップ列の変更方法を示します。
これで、下に示した顧客全体の売上レポートが生成されます。
結合する複数のルックアップ列の選択
パスの各テーブルペアの間で複数のルックアップ列を選択することもできます。これで、複数の条件を満たすデータについてのレポートw作成することができます。これは、顧客IDと売上IDの両方をルックアップ列として選択することで可能になります。下図は、結合する両方のルックアップ列の選択方法を示します。
結合のためのルックアップパスのカスタマイズ
Analytics Pusでは、テーブルを結合するルックアップパスを変更することもできます。
販売担当者別にカテゴライズした顧客全体の売上についてのレポートが必要であるとしましょう。売上と顧客は直接結合テーブルのため、Analytics Plusは、顧客別にカテゴライズした顧客全体の売上としてレポートを生成します。ここでは、レポート生成中は、間の販売担当者テーブルを無視します。
これを変更することで、売上と顧客テーブルを販売担当者テーブルから結合して、要件を達成することができます。 下図は、テーブルを結合するルックアップパスの変更方法を示します。
これで、売上テーブルは、顧客テーブルと販売担当者テーブルを通じてリンクされ、販売担当者別にカテゴライズされた顧客ベースの売上についてのデータが取り込まれます。
注記:2つのテーブルを接続するのにシングルパスを構成することのみ可能です。 レポート中の同じテーブルから2つの列に異なるパスを構成することはできません。 ただし、異なるテーブルの列に異なるパスを構成することはできます。
クエリテーブルと結合
自動結合機能を使って生成されたレポートが個別ニーズに合わない場合は必ず、クエリテーブルを作成して、テーブルを結合させ、そのテーブルを使って、そこにレポートを作成することができます。クエリテーブルは、SQL 結合クエリ選択を使って作成し、共通列を使って個別テーブルを結合して、必要なデータを両方のテーブルから取り込むことができます。
必要なテーブルを結合するクエリテーグルを作成したら、ManageEngine Analytics Plusで分析および可視化するレポートのタイプを作成できます。クエリテーブルについての詳細は、ここをクリックしてください。