計算済みテーブル
概要と主要な概念
計算済みテーブルは、他のテーブルにあるデータの分析に使用されます。その主なコンポーネントはSQLクエリで、追加データのフィルタリング、並べ替え、集計、生成に使用できます。そのクエリの結果は、結果テーブルと呼ばれるバンドルにダンプされます。そこから、データをエクスポートしたり、データでグラフを作成したりできます。計算済みテーブルのその他のオプションでは、クエリを実行する頻度や表示目的で結果の書式を設定する方法を選択できます。
計算済みテーブルインターフェイスは、本来、SQLクエリの作成支援を目的とし、クエリビルダーと呼ばれています。クエリビルダーでは、正確なSQL構文を気にすることなく、概念的な視点からクエリを考えることができます。
また、計算済みテーブルでは、クエリビルダーを使用せずに、カスタムクエリを作成することもできます。SQLクエリの記述の詳細については、「SQLクエリ」ページを参照してください。
計算済みテーブルには、ツールボックスからアクセスできます。
クエリビルダーインターフェイス
クエリビルダーインターフェイスでは、次の5種類の入力を検討してクエリを作成します。
- テーブル
- メトリック
- サブセット
- パーティション
- 並べ替え
以降の各セクションで、各種入力の考え方について説明します。
テーブル
SQLクエリは、1つ以上の入力テーブルに対して処理を行います。クエリビルダーでは、入力として使用するテーブルを指定できます。入力テーブルは1つ以上指定する必要があります。そうしない場合、クエリビルダーでクエリが作成されません。テーブルを複数指定する場合は、追加のテーブルの結合方法も指定する必要があります。
クエリビルダーでは、次の種類のテーブルに関するクエリを作成できます。
- グローバルテーブル
- 統計コレクター
- 計算済みテーブル
- チャートテンプレート
- 実験結果テーブル
クエリビルダーは、指定された入力テーブルを使用して、最終的なクエリのFROMステートメントを作成します。
メトリック
メトリックは、いずれかの入力テーブルから取得するデータを示したものです。メトリックは列のデータに着目します。たとえば、あるメトリックを使用して、特定の列の値の平均を取得できます。また、あるメトリックを使用して、特定の列の値をすべて取得することもできます。メトリックは1つ以上指定する必要があります。そうしない場合、クエリビルダーでクエリが作成されません。
クエリビルダーは、指定されたメトリックを使用して、SELECTステートメントを作成します。[Metric Layout]が[このメトリックに新しい列を追加]に設定されている場合、クエリビルダーはこのクエリに1つの式を追加します。共有の名前/値列を使用するようにレイアウトが設定されている場合、クエリビルダーはこのレイアウトで1メトリックにつき1回実行されるクエリを作成します。[Metric Name]は[Metric Name]という列に、値は[Metric Value]という列に代入されます。サブクエリがすべて連結される場合、名前と値の列はすべてのサブクエリ間で共有されます。
サブセット
サブセットでは、データのフィルタを指定できます。フィルタとは、あるテーブル行を最終結果に含めるかどうかを判定するものです。1つのサブセットに複数のフィルタを指定することができます。すべてのフィルタに一致した行のみが結果テーブルに含まれます。
クエリビルダーは、各サブセットを使用してWHEREステートメントを作成します。複数のサブセットがある場合、サブセットごとにクエリを1回作成し(クエリは同じでWHEREステートメントが異なる)、作成したすべてのクエリをUNION ALLで連結します。サブセットがある場合、クエリビルダーは結果テーブルに[Subset]という列を追加し、値としてサブセット名を表示します。
パーティション
パーティションは各データポイントを分類します。そのため、結果テーブルには、各結果行のカテゴリが表示されます。集計(またはウィンドウ関数)メトリックがある場合、集計はパーティションの各値に対して行われます。
クエリビルダーは、パーティションを使用してGROUP BYステートメントを作成します。メトリックがウィンドウ関数の場合、メトリックのSELECT式のPARTITION BYステートメントでパーティションを使用します。さらにクエリビルダーは、SELECTステートメントに各パーティションの列を追加します。
並べ替え
並べ替えは結果テーブルにのみ適用されます。並べ替えを選択した場合、クエリの結果はサブセット(ある場合)で並べ替えられ、次にパーティション(ある場合)ごとに並べ替えられます。パーティションがない場合、クエリの最終結果は並べ替えられません。
並べ替えが行われる場合、クエリビルダーはORDER BYステートメントを作成します。サブセットとパーティションがある場合、クエリビルダーはネストされたクエリを作成します。
例1 - メトリックによるデータの平均値の算出
この例では、クエリビルダーインターフェイスを使用して、グローバルテーブルの列のデータの平均値を求めるクエリを作成します。グローバルテーブルを再作成し、最後に新しい計算済みテーブルを作成する必要があります。グローバルテーブルの詳細については、「グローバルテーブル」のトピックを参照してください。
グローバルテーブル
この例では、モデルに次のグローバルテーブルがあると仮定します。
テーブルの設定
[テーブル]グループボックスの ボタンをクリックして、[グローバルテーブル]を選択し、[GlobalTable1]を選択します。
この操作は、クエリビルダーに、GlobalTable1からのデータの取得を指示します。
メトリックの設定
- [Metrics]グループボックスの ボタンをクリックし、[列の集計]を選択します。
- [Metric Name]を[AvgCycleTime]に設定します。
- [集計]を[平均]に設定します。
この操作は、クエリビルダーに、メトリックとしてCycleTime列の平均の取得を指示します。
クエリの作成と実行
[計算]タブに移動し、[更新]ボタンをクリックします。
このタブでは、クエリビルダーが作成したクエリだけでなく、クエリの結果も確認できます。このケースでは、単一行と単一列から成る結果テーブルにCycleTime列の平均が表示されます。
例2 - サブセットによるデータのフィルタリングと比較
この例では、クエリビルダーインターフェイスを使用して、グローバルテーブルの列のデータの平均値を求めるクエリを作成します。グローバルテーブルを再作成し、最後に新しい計算済みテーブルを作成する必要があります。グローバルテーブルの詳細については、「グローバルテーブル」のトピックを参照してください。
グローバルテーブル
この例では、モデルに次のグローバルテーブルがあると仮定します。
テーブルの設定
[テーブル]グループボックスの ボタンをクリックして、[グローバルテーブル]を選択し、[GlobalTable1]を選択します。
メトリックの設定
- [Metrics]グループボックスの ボタンをクリックし、[列の集計]を選択します。
- [Metric Name]を[Orders]に設定します。
- [集計]を[カウント]に設定します。
この操作は、クエリビルダーに、OrderNumがnullでない行の数をカウントするように指示します。
サブセットの設定
- [サブセット]タブで ボタンをクリックして新しいサブセットを追加します。
- [サブセット名]を[Total]に設定します。
- 同じく ボタンを使用して、新しいサブセットをもう1つ追加します。
- [サブセット名]を[High Priority]に設定します。
- [サブセット フィルタ]グループボックスで、現在のサブセットにフィルタを追加するために ボタンをクリックします。[列と値を比較]を選択します。
- 最初のドロップダウンを[IsHighPriority]に設定します。
- 2番目のドロップダウンを[=]に設定します。
サブセットを2つ追加すると、クエリビルダーは、グローバルテーブルのすべての行を対象とするクエリと、[IsHighPriority]列が1の行のみを対象とするクエリの計2回のクエリを実行するものと理解します。さらに、両クエリの結果を同じテーブルに表示することも理解します。
クエリの作成と実行
[計算]タブに移動し、[更新]ボタンをクリックします。
このタブでは、クエリビルダーが作成したクエリだけでなく、クエリの結果も確認できます。このケースでは、結果テーブルに2つの行と2つの列があります。最初の行は最初のサブセットに由来し、Orders(注文)の総数が10であることを示します。2番目の行は2番目のサブセットに由来し、high priority(高優先度)の注文のみを対象とします。これらの注文のカウントはわずか4です。
プロパティ
計算済みテーブルには、さまざまなプロパティを含む5つのタブがあります。これらのプロパティについては、次の5つのセクションで説明します。
[Tables/Metrics]タブ
[Tables/Metrics]タブは、クエリビルダーで使用するテーブルとメトリックを指定できるインターフェイスです。
[Tables/Metrics]タブには、次のプロパティがあります。
テーブル
[テーブル]エリアでは、クエリビルダーで使用するテーブルのリストを指定できます。テーブルが複数ある場合、ドロップダウンが表示され、結合ステートメントで使用する列を指定できます。名前のみでアクセスできるテーブルの場合(実験結果テーブルなど)、[テーブル]パネルの最初のフィールドで名前を編集できます。
Metrics
[Metrics]エリアでは、クエリビルダーで使用するメトリックのリストを指定できます。各メトリックの[Metric Name]プロパティだけでなく、[Metric Layout]プロパティも編集できます。他のオプションは、選択したメトリックの種類によって異なります。その大部分は、ドロップダウンリストから1つ以上の列を選択します。
[サブセット]タブ
[サブセット]タブは、クエリビルダーで使用するサブセットを指定できるインターフェイスです。
[サブセット]タブには、次のプロパティがあります。
サブセット リスト
[サブセット リスト]エリアは、[サブセット フィルタ]グループボックスの上にあるエリアです。このエリアでは、作成する各サブセットを指定できます。このエリアの各プロパティについて、次のリストで説明します。
- - 新しいサブセットを追加します。考えられるオプションは2つあります。
- 人のグループとオブジェクトのサブセットを追加 - 人/HCグループおよびオブジェクトのグループ統計とメンバー統計を簡単に比較できる特殊なサブセットを追加します。
- 基本サブセットを追加 - 汎用のサブセットを追加します。
- - 選択したサブセットを複製します。
- - 選択したサブセットをリストの上方向に移動します。
- - 選択したサブセットをリストの下方向に移動します。
- - 選択したサブセットを削除します。
- [サブセット名] - 選択したサブセットの名前が表示されます。名前は編集できます。
サブセット フィルタ
[サブセット フィルタ]エリアでは、選択したサブセットが基本サブセットの場合、そのサブセットのフィルタのリストが表示されます。 ボタンで新しいフィルタを追加できます。フィルタのパネルには、追加したフィルタの種類に基づいて、そのフィルタを設定するためのプロパティが表示されます。
[オプション]と[追加のフィルタ]
選択したサブセットが人/HCグループのサブセットの場合、次のインターフェイスが表示されます。
このインターフェイスでは、テーブルで比較するグループを選択できます。クエリビルダーがチャートテンプレートの一部の場合、これらのグループはテンプレートに関連付けられたチャートに表示されます。次のプロパティがあります。
- グループから - 使用する人/HCリソースグループを指定できます。テーブルのリストにリソースグループテーブル、つまり、StaffGroups、LocationGroups、TransportGroups、EquipmentGroupsのいずれかが含まれている場合、このフィールドは正しい値に設定されます。
- 次のデータを含める - 選択した各グループに含めるデータの種類を選択します。考えられるオプションは3つあります。
- 各グループの全体 - 選択したグループ1つにつき、1つのサブセットを作成します。このサブセットには、グループ全体のオブジェクトに関する行のみが含まれます。
- 各グループの各メンバー - 選択した各グループのメンバー1つにつき、1つのサブセットを作成します。作成されたサブセットには、特定のメンバーに関する行のみが含まれます。
- 各グループと各メンバー - グループ1つにつき1つのサブセットを作成するだけでなく、グループの各メンバーについても1つのサブセットを作成します。
- サブグループ - 最終テーブルに含めるグループをチェックボックスで選択します。
- すべてのサブグループを選択 - このボタンを押すと、全体グループを除くリスト内のすべてのサブグループが選択されます。
- すべてのサブグループをクリア - このボタンを押すと、全体グループを除くリスト内のすべてのサブグループの選択がクリアされます。
- 追加のフィルタ - グループまたはメンバーの行のみを表示するフィルタ以外にフィルタが必要な場合、このセクションで追加できます。これらのフィルタは、ANDステートメントによってグループまたはメンバーのフィルタと結合されます。
[パーティション/並べ替え]タブ
[パーティション/並べ替え]タブは、クエリビルダーで使用するパーティションと、結果を並べ替えるかどうかを指定できるインターフェイスです。
[パーティション/並べ替え]タブには、次のプロパティがあります。
パーティション
[パーティション]エリアでは、結果テーブルをパーティション分割する場合の方法を指定できます。パーティションごとに、[パーティション名]と[並べ替え方向]を指定します。他のプロパティは、追加したパーティションの種類によって異なります。
結果の並べ替え
このボックスをオンにすると、結果テーブルは並べ替えられます。パーティションがない場合、このチェックボックスは使用できません。
[計算]タブ
[計算]タブは、計算済みテーブルの2つの主な入力(SQLクエリとそのクエリの更新タイミングに関する情報)のインターフェイスになっています。
[計算]タブには、次のプロパティがあります。
更新モード
このオプションを変更し、計算済みテーブルが更新される頻度を選択します。それは、クエリを実行して結果をダンプすることを意味します。更新モードには次の3つがあります。
- 手動 - 計算済みテーブルは[更新]ボタンをクリックした場合にのみ更新されます。
- レイジーインターバル - 計算済みテーブルはモデルリセット時に更新され、(指定された更新間隔に従って)その間隔が経過するごとに1回、必要な場合にのみ更新されます。
- インターバル - 計算済みテーブルはモデルリセット時に更新され、その後、指定された更新間隔に従って通常の間隔で更新されます。
- 常に - 常に最新の値が表示されるように、必要なだけ計算済みテーブルが更新されます。
更新間隔
このボックスを使用し、更新間隔モードである[インターバル]と[レイジーインターバル]の更新間隔を設定します。
クエリ
このボックスには、クエリビルダーによって作成されたクエリが表示されます。直接編集を有効にした場合、このボックスで自分のカスタムクエリを編集できます。
直接編集を有効にする
計算済みテーブルからクエリビルダーインターフェイスを削除する場合、このボタンを使用します。そうすると、[クエリ]プロパティでクエリを独自に作成できます。クエリを独自に作成するときには、グローバルテーブル、グローバルリスト、統計コレクター、その他の計算済みテーブル、実験データなど、モデルのあらゆる組み込みテーブルをこのクエリで参照できます。ただし、結果はバンドルにダンプされるため、SELECTステートメントの各列は数値、文字列、またはノードのいずれかの値を生成する必要があります。有効なSQL文の作成方法については、「SQLクエリ」を参照してください。
更新
このボタンを使用すると、更新モードに関係なく、いつでも計算済みテーブルを更新できます。更新モードが[手動]に設定されている場合、更新ボタンはテーブルを更新できる唯一の方法となります。このボタンをクリックすると、クエリが再生成され、テーブルが更新されます。
ポップアウト
このボタンを使用すると、この計算済みテーブルの結果テーブルのドッキング自在ビューが開きます。
結果
このテーブルには、SQLクエリの最新の結果が表示されます。
[表示形式]タブ
「表示形式」タブでは、計算済みテーブルの結果テーブルの各列の表示形式を指定します。
[表示形式]タブには、次のプロパティがあります。
列表示形式
このテーブルを使用し、結果テーブルの各列の形式を指定します。列のリストは、現在の結果テーブルに基づいて自動で生成されます。
オブジェクトフォーマットの深さ
このプロパティはオブジェクトの表示形式を使用する列に影響します。この表示形式では、オブジェクトのフルパスが表示されます。この値を使用して、パスに表示するノードの数を制御できます。値が0の場合、フルパスが使用されます。値が1の場合、ノード名のみが使用されます。2の場合、パスには、親ノードの名前と現在のノードの名前が含まれます。
[一般]タブ
[一般]タブには、次のプロパティがあります。
テーブルを表示...
このボタンを使用すると、結果テーブルのドッキング自在ビューが開きます。
エクスポートテーブル...
テーブルを.CSVファイルにエクスポートするには、このボタンを使用します。
接続されたダッシュボードチャート
統計コレクターと同様に、計算済みテーブルには、このテーブルを参照するすべてのダッシュボードチャートのリストが表示されます。このリストの下にある[プロパティ]ボタンを押すと、選択されているグラフのプロパティ(ある場合)が開きます。