Business Intelligence チュートリアル : キューブ要素の概要
独自の Business Intelligence キューブを作成する前に、サンプル・キューブを検証し、使用方法を確認することは有益です。
Patients キューブへのアクセス
-
前述のように、管理ポータルにアクセスし、サンプルをインストールしたネームスペースに移動します。
-
[ホーム]→[Analytics]→[アナライザ] に移動します。
-
Patients をクリックします。
-
[OK] をクリックします。
アナライザ・ページには、以下のように 3 つの主要領域があります。
-
左側の [モデル・コンテンツ] 領域には、選択したキューブのコンテンツがリスト表示されます。フォルダを展開して、項目をピボット・ビルダ領域にドラッグ・アンド・ドロップすることができます。
-
右上のピボット・ビルダ領域には、ピボット・テーブルの作成に使用するオプションがあります。この領域は、[行]、[列]、[メジャー]、および [フィルタ] のボックスで構成されます。
-
右下のピボット・プレビュー領域には、ダッシュボードでの表示とほぼ同様にピボット・テーブルが表示されます。
[モデル・コンテンツ] 領域の案内
[モデル・コンテンツ] 領域には、現在表示しているキューブの内容がリストされます。このチュートリアルで、ドロップダウン・リストから [ディメンジョン] を選択します。このオプションでは、指定されたキューブのメジャーとディメンジョンが表示されます。
上部のセクションには名前付きセットが表示されますが、このチュートリアルではこれらは使用されません。領域の下部は以下のセクションで構成されます。
メジャー
[メジャー] セクションには、キューブ内のすべてのメジャーが表示されます。以下はその例です。
2 種類のメジャーが存在する場合があり、それらは別々のアイコンで示されます。
標準メジャー | |
計算メジャー (他のメジャーに換算して定義します) |
ディメンジョン
[ディメンジョン] セクションには、ディメンジョンとそこに含まれているレベル、メンバ、およびプロパティがリストされます (また、メジャー以外の計算メンバおよびセットも含まれますが、このページではこれらの項目については説明しません)。
ディメンジョン名の横にある三角形をクリックして、これを展開します。ディメンジョンには、1 つ以上のレベルがあります。また、All メンバとして知られている特殊なメンバが含まれる場合もあります。以下の例では、AgeD ディメンジョンに、All Patients という名前の All メンバがあります。また、Age Group、Age Bucket、Age というレベルもあります。
レベルを展開すると、そのレベルのメンバが表示されます。以下はその例です。
レベルにプロパティも含まれている場合、それらのプロパティはリストの先頭に異なるアイコンと共に青い文字で表示されます。例えば、City レベルに Population プロパティと Principal Export プロパティが含まれているとします。
単純なピボット・テーブルの作成
ここでは、一般的な方法でレベルとメジャーを使用する単純なピボット・テーブルを作成します。このセクションの目標は、レベルとメジャーの機能を確認し、メンバがどのようなものであるかを理解することです。
実際に表示される数は、ここでの表示と異なる場合もあります。
-
[モデル・コンテンツ] ペインで、[DiagD] ディメンジョンを展開します。
-
[Diagnoses] を [行] にドラッグ・アンド・ドロップします。
または、[Diagnoses] をダブルクリックします。
以下のように表示されます。
-
[Patient Count] を [メジャー] にドラッグ・アンド・ドロップします。
または、[Patient Count] をダブルクリックします。
-
[Avg Age] を [メジャー] にドラッグ・アンド・ドロップします。
または、[Avg Age] をダブルクリックします。
以下のように表示されます。
-
[保存] をクリックします。
ピボット・テーブルの名前を指定できるダイアログ・ボックスが表示されます。
-
[フォルダ] に、Test と入力します。
-
[ピボット名] に Patients by Diagnosis (Patients Cube) と入力します。
-
[OK] をクリックします。
この操作によって、表示コンテキストと、データそのものではなく、データを取得する基礎となるクエリが保存されます。
表示内容を正しく理解することは重要です。以下の点に注意してください。
-
ベース・テーブルは Patients で、これはすべてのメジャーが患者に関するデータを集計していることを意味します。
-
このピボット・テーブルのヘッダ行以外の行はそれぞれ、Diagnoses ディメンジョンの 1 メンバのデータを表示します。
いずれの場合も、個々のメンバは、ファクト・テーブル内のレコード・セットに対応します。(ほとんどの場合、ファクト・テーブルの各レコードが、ベース・テーブルの 1 つのレコードに対応します。)
したがって、このピボット・テーブルの各行には、特定の診断を受けた一連の患者のデータが表示されます。
これ以外のレイアウトも可能ですが (後述のとおり)、いずれの場合もピボット・テーブルのデータ・セルはすべてファクト・テーブルのレコード・セットに関連付けられます。
-
一般的なピボット・テーブルでは、各データ・セルにメジャーの集約値が表示されます。これはそのデータ・セルで使用されるすべてのレコードを集約したものです。
-
特定のデータ・セルの内容を理解するには、そのセルに対応するラベルの情報を参照します。例えば、asthma 行の Patient Count 列にあるセルについて考えてみます。このセルには、喘息を持つ患者の総数が表示されます。
同様に、この行の Avg Age 列について考えてみます。このセルには、喘息を持つ患者の平均年齢が表示されます。
-
集約の実行方法は、メジャーによって異なる場合があります。Patient Count の場合は、数値が合計されます。Avg Age の場合は、数値の平均値が計算されます。その他の集約も可能です。
メジャーおよびレベル
ここでは、メジャーおよびレベルについてもう少し詳しく見ていきます。
-
[新規] をクリックします。
-
[Patient Count] および [Avg Age] を [メジャー] 領域にドラッグ・アンド・ドロップします。
これにより、以下のように表示されます。
この単純なピボット・テーブルでは、ベース・クラスのすべてのレコードにわたる、これらの各メジャーの集約値が表示されます。10000 人の患者が存在し、その平均年齢は 35.93 歳です (この例の場合)。
-
これらの値を、ソース・テーブルから直接取得された値と比較します。そのためには、以下の操作を実行します。
-
別のブラウザ・タブまたはウィンドウで、前述のように、管理ポータルにアクセスし、サンプルをインストールしたネームスペースに移動します。
-
[ホーム]→[システムエクスプローラ]→[SQL] に移動します。
-
[クエリ実行] タブをクリックします。
-
以下のクエリを実行します。
select count(*) as "count",avg(age) as avgage from bi_study.patient
同じ数値が表示されます。以下はその例です。
Tip:このブラウザ・タブまたはウィンドウは、後で使用できるように開いたままにしておきます。
-
-
アナライザで、前出のピボット・テーブルを以下のように変更します。
-
左側の [GenD] を展開します。
-
[Gender] を [行] 領域にドラッグ・アンド・ドロップします。これにより、表示は以下のようになります。
-
-
これらの値を、ソース・テーブルから取得された集約値と比較します。そのためには、以下の操作を実行します。
-
前述のように、管理ポータルにアクセスし、サンプルをインストールしたネームスペースに移動します。
-
[ホーム]→[システムエクスプローラ]→[SQL] に移動します。
-
[クエリ実行] タブをクリックします。
-
[履歴を表示] をクリックします。
-
以前実行したクエリをクリックします。
-
クエリの最後に以下を追加して、クエリを再実行します。
group by gender
ピボット・テーブルの表示と同じ数値が表示されます。以下はその例です。
-
-
最後の例では、アナライザで以下の変更を行います。
-
[行] ペインの [X] ボタンをクリックします。これによって、行の定義がクリアされます。
-
[ProfD] および [Profession] を展開します。
-
[Electrician] を [行] にドラッグ・アンド・ドロップします。
表示は以下のようになります。
-
-
これらの値を、ソース・テーブルの値と比較します。そのためには、以下の操作を実行します。
-
前述のように、管理ポータルにアクセスし、サンプルをインストールしたネームスペースに移動します。
-
[ホーム]→[システムエクスプローラ]→[SQL] に移動します。
-
[クエリ実行] タブをクリックします。
-
以下のクエリを実行します。
select count(*) as "count",avg(age) as avgage from bi_study.patient join bi_study.patientdetails on bi_study.patient.patientid = bi_study.patientdetails.patientid where bi_study.patientdetails.profession->profession='Electrician'
同じ数値が表示されます。以下はその例です。
-
ディメンジョンおよびレベル
多くのシナリオで、ディメンジョンとレベルは互換的に使用できます。ここでは、これらを比較して異なる点を確認します。
-
アナライザで、[新規] をクリックします。
-
[GenD] 定義を [行] 領域にドラッグ・アンド・ドロップします。以下のような表示になります。
表示されるメジャーは Count です。これは患者の数です。
-
[新規] をクリックします。
-
[GenD] ディメンジョンを展開します。[Gender] レベルを [行] 領域にドラッグ・アンド・ドロップします。以下のような表示になります。
この場合、同じ結果が表示されます。
Patients サンプルでは、ディメンジョンの名前は省略形で、末尾に D の文字が付きます。レベルの名前は、そのレベルを含むディメンジョンの名前と同じになることはありません。この名前付け規約は必須ではなく、レベルとそのレベルを含むディメンジョンに同じ名前を使用することもできます。
-
[新規] をクリックします。
-
[AgeD] ディメンジョンを展開します。左領域に以下のように表示されます。
このディメンジョンの定義は、以下の 2 つの点で GenD ディメンジョンと異なっています。
-
AgeD では All Patients と呼ばれる特別なメンバ、つまり All メンバが定義されています。All メンバは、ベース・クラスの全レコードを参照します。
-
AgeD では、Age Group、Age Bucket、および Age という複数のレベルが定義されています。
-
-
[AgeD] ディメンジョンを [行] 領域にドラッグ・アンド・ドロップします。以下のような表示になります。
行 (または列) として使用するディメンジョンをドラッグ・アンド・ドロップする際、そのディメンジョンに定義されている最初のレベルのすべてのメンバが表示されます。この場合、最初のレベルは Age Group です。
All メンバ
All メンバは、ベース・クラスの全レコードを参照します。どのディメンジョンも All メンバを持つことができますが、Patients キューブで All メンバがあるディメンジョンは 1 つのみです。
ここでは、All メンバを使用する方法を示します。
-
[新規] をクリックします。
-
[AgeD] ディメンジョンを展開します。
-
[Age Group] を [行] にドラッグ・アンド・ドロップします。
-
メジャー [Patient Count]、[Avg Age] および [Avg Test Score] を [メジャー] 領域にドラッグ・アンド・ドロップします。以下のように表示されます。
-
ピボット・オプション・ボタン をクリックします。
-
[行オプション] 領域で [集計] チェック・ボックスにチェックを付け、ドロップダウン・リストで [合計] が選択されたままにして [OK] をクリックします。
これで、以下のように Total 行が表示されます。
Total 値は、Patient Count には適していますが、他のメジャーには適しません。Avg Age および Avg Test Score には、合計ではなく平均値の表示が適しています。
-
ピボット・オプション・ボタン を再度クリックします。
-
[行オプション] 領域で [集計] チェック・ボックスのチェックを外して [OK] をクリックします。
-
[Age Group] の下で、[All Patients] を [行] にドラッグ・アンド・ドロップします。これで、All Patients は Age Group レベルのメンバの後に表示されます。
All Patients 行は、Total 行より有益な集計行です。Patient Count、Avg Age および Avg Test Score のメジャーが、それぞれすべての患者にわたって集約され、表示されています。
Note:Avg Age および Avg Test Score には、ピボット・テーブルに表示される値の平均値を示すほうがよい場合もあります。例えば、Avg Age の場合、この集計行ではすべての患者の年齢を加算して 10000 で除算します。ここに示した 3 つのメンバの Avg Age の値を加算して、その値を 3 で除算することが望まれる場合もあります。All メンバはこれには役立ちません。代わりに、計算メンバ (このチュートリアルで後述) を作成します。
-
[行] ペインの [X] ボタンをクリックします。これによって、行の定義がクリアされます。
-
[DiagD] ディメンジョンを展開します。
-
[Diagnoses] を [行] ペインにドラッグ・アンド・ドロップします。
-
[AgeD] の [All Patients] メンバを [行] の [Diagnoses] の下にドラッグ・アンド・ドロップします。これにより、表示は以下のようになります。
上の図からもわかるように、総称的な名前の All Patient メンバは、Age 以外の、このメンバが偶然に定義されているディメンジョンと共に使用することができます。
階層
ディメンジョンには 1 つ以上の階層が格納され、各階層には複数のレベルを格納できます。[モデル・コンテンツ] 領域には、階層によって指定された順序に従ってレベルがリストされますが、(スペースを節約するため) このキューブの階層名は表示されません。
ユーザは階層を使用して、下位レベルにドリルダウンできます。ここでは、この機能について説明します。
-
[新規] をクリックします。
-
[モデル・コンテンツ] ペインで、[BirthD] ディメンジョンを展開します。[Decade] を [行] にドラッグ・アンド・ドロップします。
または、[Decade] をダブルクリックします。
以下のように表示されます。
表示されるメジャーは Count です。これは患者の数です。
-
[1950s] 行 (または比較的患者数が多いその他の行) をダブルクリックします。<< 記号の右側の任意の場所をクリックします。
これで、その年代に生まれた患者が年別 (階層内の最下位の直上レベル) にグループ化されて以下のように表示されます。
このダブルクリック操作は、アナライザ内だけではなく、ダッシュボードに表示されたピボット・テーブル内で使用できます。
-
行を再度ダブルクリックします。その年に生まれた患者が、以下のように年および四半期別にグループ化されて表示されます。
-
行を再度ダブルクリックします。その年および四半期に生まれた患者が、以下のように年および月別にグループ化されて表示されます。
-
行を再度ダブルクリックします。その年および月に生まれた患者が、以下のように実際の日付別にグループ化されて表示されます。
-
<< 記号を繰り返しクリックすると、ピボット・テーブルの元の状態に戻ります。
プロパティ
レベルにはプロパティを含めることができ、このプロパティはピボット・テーブルに表示できます。
-
[新規] をクリックします。
-
[モデル・コンテンツ] ペインで、[HomeD] ディメンジョンを展開します。
-
[City] レベルを展開し、次に [City] を [行] にドラッグ・アンド・ドロップします。
以下のように表示されます。
表示されるメジャーは Count です。これは患者の数です。
-
[Population] を [列] にドラッグ・アンド・ドロップします。
-
[Principal Export] を [列] にドラッグ・アンド・ドロップします。
以下のように表示されます。
-
[行] ペインの [X] ボタンをクリックします。
-
[ZIP] を [行] にドラッグ・アンド・ドロップします。
以下のように表示されます。
これらのプロパティにこのレベルの値はありません。
ピボット・テーブルでは、プロパティとメジャーはいくつかの点で異なります。
-
プロパティでは文字列値を使用できます。
-
プロパティには、それが定義されたレベルの値のみが存在します。
キューブの定義方法によって、プロパティは、属するレベルの並べ替えおよびメンバ名に影響を与える場合もあります。これに関する例は、このチュートリアルの後続部分で紹介します。
リスト
ここでは、選択したセル (複数の場合もあり) の最下位レベルのデータから選択されたレコードが表示されるリストについて説明します。この機能を確認するため、最初にごく少数のレコードのみを使用するピボット・テーブルを作成します。そのリストを表示すると、開始ポイントのセルの集約値と容易に比較できます。
-
[新規] をクリックします。
-
[Patient Count] および [Avg Test Score] を [メジャー] にドラッグ・アンド・ドロップします。
-
[モデル・コンテンツ] ペインで、[AgeD] ディメンジョンを展開します。
-
[Age] レベルを展開します。
-
メンバ [0] を [列] にドラッグ・アンド・ドロップします。このメンバは、1 歳未満のすべての患者を参照します。
左側にあるアイコンでなくメンバ名をクリックする必要があります。
以下のように表示されます。
-
メンバ [1] を、[列] のメンバ [0] の下にドラッグ・アンド・ドロップします。
以下のように表示されます。
-
[BirthTD] ディメンジョンを展開します。
-
[Birth Time] レベルを [行] にドラッグ・アンド・ドロップします。
以下のように表示されます。
-
セルをクリックします。例えば、[0] の下の [12am] 行の [Patient Count] セルをクリックします。
-
リストを表示ボタン をクリックします。
システムによって選択コンテキストが考慮されます。この例では、1 歳未満で深夜 0 時から午前 1 時の間に生まれた患者です。そのソース・データに対する SQL クエリが実行されます。このクエリには、以下のように、これらの患者に対して選択されたフィールドが含まれています。
-
表示された行をカウントします。このカウントは、開始ポイントの行の Patient Count 値と等しくなります。
-
テーブル表示ボタン をクリックして、ピボット・テーブルの表示を元の状態に戻します。
既定では、Patients キューブは Patient details と呼ばれるリストを使用します。このリストには、ご覧のように PatientID、Age、Gender などのフィールドが含まれています。他のリストも表示できます。
-
ピボット・オプション・ボタン をクリックして、ピボット・テーブルのオプションを表示します。
ダイアログ・ボックスが表示されます。
-
[詳細リスト] ドロップダウン・リストで [Doctor details] をクリックしてから、[OK] をクリックします。
Doctor details リストには、選択した患者の一次診療医に関する情報が表示されます。
-
以前クリックしたセルと同じセルをクリックして、リストを表示ボタン をクリックします。
これで以下のように表示されます。
フィルタおよびメンバ
通常のピボット・テーブルでは、このページで前述したように、メンバを行、列、またはその両方として使用します。メンバのもう 1 つの一般的な使用法は、データのフィルタ処理を可能にすることです。
-
アナライザで、[新規] をクリックします。
-
[ColorD] および [Favorite Color] を展開します。
-
[Favorite Color] を [行] にドラッグ・アンド・ドロップします。
以下のように表示されます。
このピボット・テーブルには、Favorite Color のメンバが行として表示されます。表示されるメジャーは Count です。これは患者の数です。
-
[Red] を [フィルタ] にドラッグ・アンド・ドロップします。
これでアナライザには Favorite Color レベルのメンバが 1 つだけ表示されます。以下のように表示されます。
患者の合計数をメモしておきます。
-
[行] ボックスの [X] ボタンをクリックします。
-
[AgeD] を展開します。
-
[Age Group] を [行] にドラッグ・アンド・ドロップします。
アナライザの表示は以下のようになります。
-
ピボット・オプション・ボタン をクリックします。
-
[行オプション] 領域で [集計] チェック・ボックスにチェックを付け、ドロップダウン・リストで [合計] が選択されたままにして [OK] をクリックします。
アナライザの表示は以下のようになります。
Total 行に、この列の数値の合計が表示されます。この合計数は、前述の数値と同じであることがわかります。
ピボット・テーブルが何を行 (または列) に使用するかに関係なく、任意のメンバをそのピボット・テーブルのフィルタとして使用できます。いずれの場合も、指定のメンバに関連付けられているレコードのみが取得されます。
複数のメンバをフィルタとして使用できます。また、フィルタを組み合わせることもできます。詳細は、"アナライザの使用法" を参照してください。
フィルタおよび検索可能メジャー
InterSystems IRIS Business Intelligence では、検索可能なメジャーを定義できます。このメジャーを使用すると、ソース・レコード自体のレベルで値を評価するフィルタを適用できます。
-
[新規] をクリックします。
すべての患者の数が表示されます。
-
[フィルタ] ボックスで詳細オプションのボタン をクリックします。
-
[条件を追加] をクリックします。これで、以下のように表示されます。
-
[Age Group] をクリックします。これによって、式のこの部分を編集できます。
このダイアログ・ボックスは以下のようになります。
-
左側のドロップダウン・リストをクリックしてから、下にスクロールして、[Measures.Encounter Count] をクリックします。その後すぐに、式が以下のように更新されます。以下はその例です。
-
[=] 演算子をクリックします。これによって、式のこの部分を編集できます。
このダイアログ・ボックスは以下のようになります。
-
[>=] 演算子をクリックします。その後すぐに、式が以下のように更新されます。以下はその例です。
-
[0] をクリックします。これによって、式のこの部分を編集できます。
このダイアログ・ボックスは以下のようになります。
-
フィールドに 10 を入力して、[適用] をクリックします。
-
[OK] をクリックします。
これで、10 回以上受診したすべての患者の合計数が表示されます。
ここで、ピボット・テーブルにレベルを追加した場合の影響を見てみましょう。
-
[モデル・コンテンツ] ペインで、[AgeD] ディメンジョンを展開します。
-
[Age Group] を [行] にドラッグ・アンド・ドロップします。
以下のように表示されます。
-
ピボット・オプション・ボタン をクリックします。
-
[行オプション] 領域で [集計] チェック・ボックスにチェックを付け、ドロップダウン・リストで [合計] が選択されたままにして [OK] をクリックします。
-
[OK] をクリックします。
アナライザの表示は以下のようになります。
Total 行に、この列の数値の合計が表示されます。この合計数は、前述の数値と同じであることがわかります。