Color は前述の説明と同じです。%date% は、現在のプロセスの既定の日付形式に従って、日付をフォーマットします。
<dimension>
<dimension> 要素は、ディメンジョンを定義します。ディメンジョンには 1 つ以上の階層が含まれ、各階層には 1 つ以上のレベルが含まれます。キューブは任意の数のディメンジョンを持つことができます。
<dimension> 要素には以下のコンテンツがあります。
属性または要素 |
目的 |
name、displayName、description、disabled |
"キューブの共通属性" を参照してください。 |
sourceProperty |
アーキテクトで [プロパティ] または [式] を指定する際とほとんど同じ方法で、これらの属性のいずれかを指定します。"ディメンジョンまたはレベルのソース値の定義" を参照してください。メモ :
-
sourceProperty には、[プロパティ] に入力するのと同じ値を一重引用符で囲んで使用します。
例 : sourceProperty='Age'
-
sourceExpression には、[式] に入力するのと同じ値を一重引用符で囲んで使用します。
例 : sourceExpression='%source.property_"ABC"'
値自体に二重引用符が含まれない場合は、代わりに二重引用符で値を囲むこともできます。例 : sourceExpression="%source.property" |
sourceExpression |
type |
以下のいずれかを指定します。
-
"data" (既定) — 通常のディメンジョンを作成します。
-
"time" — 時刻ディメンジョンを作成します。"時間レベルの定義" を参照してください。
-
"age" — 年齢ディメンジョンを作成します。"年齢レベルの定義" を参照してください。
-
"computed" — 計算ディメンジョンを作成します。"InterSystems Business Intelligence の上級モデリング" の "計算ディメンジョンの定義" を参照してください。
-
"iKnow" — NLP により処理されるテキストを使用するディメンジョンを作成します。"InterSystems Business Intelligence の上級モデリング" の "キューブでの Text Analytics の使用法" を参照してください。
|
calendar |
(オプション) これは type が "time" である場合にのみ指定します。calendar 属性では、時間レベルのメンバにレコードを割り当てる際に使用する暦を指定します。グレゴリオ暦を使用する場合は、"gregorian" (既定値) を指定します。ヒジュラ暦を使用する場合は、"hijriTabular" または "hijriObserved" を指定します。 |
iKnowMeasure および iKnowType |
(オプション) "InterSystems Business Intelligence の上級モデリング" の "キューブでの Text Analytics の使用法" を参照してください。 |
hasAll |
(オプション) このディメンジョンに All レベルがあるかどうかを示します。既定は "true" です。 |
allCaption |
(オプション) このディメンジョンの All レベルまたは All メンバに使用される名前。既定の名前は、All dimension です。dimension はディメンジョン名です。 |
allDisplayName |
(オプション) All メンバに使用されるローカライズ名を指定します。この属性を指定しない場合、代わりに allCaption 属性で指定された値が表示されます。 |
hidden |
(オプション) hidden="true" の場合、ディメンジョンは定義され、クエリで使用することができますが、アナライザはディメンジョンを使用可能なものとして表示しません。既定は "false" です。 |
showHierarchies |
(オプション) アナライザにこのディメンジョン内の階層名が表示されるかどうかを制御します。以下のいずれかを指定します。
この属性はクエリ自体には影響しません。 |
sharesFrom |
(オプション) "InterSystems Business Intelligence の上級モデリング" の "形式的に共有されるディメンジョンの定義" を参照してください。このオプションを日付ディメンジョンには指定しないでください。日付ディメンジョンは自動的に共有されます。 |
dimensionClass |
(オプション) "InterSystems Business Intelligence の上級モデリング" の "計算ディメンジョンの定義" を参照してください。 |
<hierarchy> |
このディメンジョン内の階層を指定します。1 つ以上の <hierarchy> 要素を組み込む必要があります。また、複数の <hierarchy> 要素を組み込むことができます。 |
<hierarchy>
<hierarchy> 要素は、指定されたディメンジョン内の階層を指定します。この要素には以下のコンテンツがあります。
属性または要素 |
目的 |
name、displayName、description、disabled |
"キューブの共通属性" を参照してください。 |
hidden |
(オプション) hidden="true" の場合、階層は定義され、クエリで使用することができますが、アナライザは階層およびそのレベルを使用可能なものとして表示しません。既定は "false" です。 |
<level> |
この階層内のレベルを指定します。1 つ以上の <level> 要素を組み込む必要があります。また、複数の <level> 要素を組み込むことができます。 |
<level>
<level> 要素は、指定された階層内のレベルを指定します。これには、以下のコンテンツがあります。
属性 |
目的 |
name、displayName、description、disabled |
"キューブの共通属性" を参照してください。 |
sourceProperty、sourceExpression |
これらの属性のどちらかを指定します。構文は、アーキテクトで [プロパティ] または [式] に使用する構文とほとんど同じです。"ディメンジョンまたはレベルのソース値の定義" を参照してください。メモ :
-
sourceProperty には、[プロパティ] に入力するのと同じ値を一重引用符で囲んで使用します。
例 : sourceProperty='Age'
-
sourceExpression には、[式] に入力するのと同じ値を一重引用符で囲んで使用します。
例 : sourceExpression='%source.property_"ABC"'
値自体に二重引用符が含まれない場合は、代わりに二重引用符で値を囲むこともできます。例 : sourceExpression="%source.property"
時刻ディメンジョンまたは年齢ディメンジョン内のレベルの要件については、"時間レベルの定義" および "年齢レベルの定義" を参照してください。
NLP ディメンジョンのレベルの場合、ソース値の指定に使用するメカニズムが異なるため、sourceProperty と sourceExpression は無視されます。"InterSystems Business Intelligence の上級モデリング" の "キューブでの Text Analytics の使用法" を参照してください。 |
timeFunction |
時刻ディメンジョンまたは年齢ディメンジョン内のレベルでのみ使用されます。"時間レベルの定義" および "年齢レベルの定義" を参照してください。 |
timeOffset |
(オプション) 時刻ディメンジョンのレベルでのみ使用されます。"日付オフセットの指定" を参照してください。 |
timeFormat |
(オプション) 時刻ディメンジョンのレベルでのみ使用されます。"レベルの定義の詳細" の "時刻形式の指定" を参照してください。 |
list |
(オプション) この属性が "true" の場合、ソース値はリストであることが期待され、リスト内の各項目がこのレベルのメンバになります。
既定は "false" です。
既定の場合、リストは $LIST 形式であることが期待されます。文字区切りリストで構成される文字列を使用するには、listDelimiter を指定します。リスト・ベース・レベルは、親レベルおよび子レベルを持つことはできません。 |
listDelimiter |
(オプション) レベルのソース・データとして使用されるリストの項目の区切りに使用される区切り文字を指定します。これは、リストが文字区切りリストである場合に使用します。 |
nullReplacement |
(オプション) このレベルのソース・データが NULL の場合に、メンバ名として使用する文字列を指定します。例えば、nullReplacement="No City" と指定します。 |
rangeExpression |
(オプション) 数値データの場合は、ビンに数値を割り当てる方法を指定します (各ビンはこのレベルのメンバです)。その他のデータの場合は、この属性によって置換値が指定されます。この属性は、このレベルのメンバの既定の順序も制御します。サブセクション "基本的な範囲式の定義" と "複数範囲式の圧縮の定義" を参照してください。 |
useDisplayValue |
(オプション) DISPLAYLIST および VALUELIST パラメータの値があるプロパティの場合、この属性によってインデックスに組み込む値が指定されます。 この属性が "false" (既定) の場合は、VALUELIST で指定された値が使用されます。この属性が "true" の場合は、DISPLAYLIST で指定された値が使用されます。
linkClass および linkProperty を指定した場合、このオプションは無視されます。 |
sort |
(オプション) このレベルのメンバの既定の並べ替え方法を指定します。時刻ディメンジョンのレベルの場合、"asc" または "desc" を指定します。
データ・ディメンジョンのレベルの場合、"asc"、"asc numeric"、"desc"、または "desc numeric" を指定します。 |
linkClass、linkProperty |
(オプション) "他のテーブルへのリンク" を参照してください。 |
factName |
(オプション) 生成されたファクト・テーブルにおける、このレベルに対応する列の名前。この属性が NULL の場合はシステムによって名前が生成されます。このオプションは、時間レベルまたは NLP レベルには適用されません。
<measure> の factName の説明を参照してください。 |
factNumber |
このレベルに割り当てられている内部 ID。キューブの namedFactNums が "true" の場合は必須です。 |
dependsOn |
(オプション) このレベルが依存関係を持つレベル (またはリレーションシップ) を指定します。レベル (またはリレーションシップ) の完全な MDX 識別子を指定します。または、MDX レベル (またはリレーションシップ) 識別子のコンマ区切りリストを指定します。"異なる階層に含まれるレベル間での依存関係の定義" を参照してください。この属性は、DependsOn コンパイラ・キーワードとはまったく関係ありません。 |
useAsFilter |
(オプション) ダッシュボードのフィルタ・コントロールとしてレベルを使用できるかどうかを指定します。この属性が "true" (既定) の場合、ユーザは、フィルタ・コントロールを追加するときにこのレベルを選択できます。この属性が "false" の場合、このレベルはオプションとしてリストされません。このオプションの目的は、ダッシュボード・エディタに表示される選択肢の数を減らすことのみです。アナライザやエンジンには影響しません。 |
factSelectivity |
(オプション、システムでは不使用) 生成されたレベル・テーブル内のプロパティの生成 SELECTIVITY をオーバーライドするための値。Business Intelligence のクエリでは、このパラメータは使用しません。このオプションは、レベル・テーブルに対して直接 SQL を使用するときに、生成された SELECTIVITY をオーバーライドする必要がある場合に使用します。
1 以下の正の値を指定します。詳細は、%SYSTEM.SQLOpens in a new tab の SetFieldSelectivity() を参照してください。 |
hidden |
(オプション) hidden="true" の場合、レベルは定義され、クエリで使用することができますが、アナライザはレベルを使用可能なものとして表示しません。既定は "false" です。 |
<member> |
(オプション) 任意の数の <member> 要素を含むことができます。このそれぞれがレベルのメンバを定義します。 |
<property> |
(オプション) 任意の数の <property> 要素を含むことができます。このそれぞれがレベルのプロパティを定義します。 |
以下はその例です。
<level name="ZIP" sourceProperty="HomeCity.PostalCode" />
別の例として、以下のレベル定義は、そのレベルのプロパティも定義します。
<level name="City" sourceProperty="HomeCity.Name">
<property name="Population" sourceProperty="HomeCity.Population" />
他のテーブルへのリンク
<level>、<measure>、または <property> 要素内では、linkClass 属性と linkProperty 属性により、ドット構文ではアクセスできない別のクラスのプロパティを使用できます。このリンク機能を使用するには、レコードの ID を使用して別のクラスのレコードを検索できる必要があります。
この機能は、以下のように実行されます。
-
他のクラスの必要なレコードの ID を指定する値として、sourceProperty または sourceExpression を指定します。
-
他のクラスの完全なパッケージおよびクラス名として linkClass を指定します。
-
定義しているレベルの基とする他のクラスのプロパティとして linkProperty を指定します。
例えば、Hole Foods のサンプルに、以下を追加することができます。
<level name="Product" sourceProperty ="Product" linkClass="HoleFoods.Product" linkProperty="Name" />
外部クラス linkClass とプロパティ linkProperty が定義されていると、システムによって外部クラスに対してクエリが実行され、指定された sourceProperty または sourceExpression に等しい ID のレコードについて、そのクラスから指定プロパティの値がフェッチされます。
日付オフセットの指定
場合によっては、開始日が 1 月 1 日ではない企業の財務カレンダーに時間レベルを一致させることが必要になります。例えば、会計年度は多くの企業で 10 月 1 日に開始します。以下のピボット・テーブルで考えてみましょう。
この場合、メンバ FY 2005 は、2004 年 10 月 1 日から 2005 年 9 月 30 日までの (端点を含む) 売上レコードで構成されています。
このようなレベルを作成するには、レベル (時間タイプのディメンジョン内にある必要があります) の timeOffset 属性と timeFormat 属性を指定します。ここでは、timeOffset 属性について説明します。timeFormat については次のセクションで説明します。
timeOffset 属性は、このレベルで使用されるソース値に加えられる時間量を指定します。この時間量は、負でも正でもかまいません。これは、キューブの構築時に使用されます。
timeOffset では、以下の形式の文字列を指定することによって、時間量を指定します。
#y#m#d
# は数です。#y は年単位の時間量、#m は月単位の時間量、#d は日単位の時間量を表します。要素を省略した場合、その位置にはゼロが使用されます。例えば、文字列 3m15d は、3 か月と 15 日を表します。
timeOffset で最も使用頻度の高い値は -3m です。これは会計年度が前年 10 月 1 日から開始される場合に使用されます。timeOffset="-3m" の場合、このレベルで使用される各時間値から 3 か月が差し引かれます。例えば、このレベルの日付 2010 年 1 月 1 日は、2009 年 10 月 1 日に変換されます。
同一ディメンジョン内であっても、他のレベルに影響はありません。このため、実際の日付を表示する、より詳細なレベルも定義できます。この例については、"日付オフセットがあるカレンダーの処理" を参照してください。
timeFunction 属性は同じであるが、timeOffset 属性が異なる 2 つのレベルがある場合、アーキテクトはこれらを同じファクトの 2 つの異なる値として認識します。これらは、ファクト・テーブルの 2 つの異なる列に自動的にマップされ、それぞれ別個の factNumber が割り当てられます。
基本的な範囲式の定義
rangeExpression の基本的な構文は以下のとおりです。
value_or_range:new_value;value_or_range:new_value; ... ;
ここで、new_value は単一の値で、システムはこれを文字列として処理し、レベル・メンバの名前として使用します。また、value_or_range は、以下のいずれかになります。
-
5 や Louisiana などの単一の値
-
(value1,value2) 形式の範囲
-
[value1,value2] 形式の範囲
-
(value1,value2] 形式の範囲
-
[value1,value2) 形式の範囲
これらの式で、value1 と value2 は、数値または NULL (式では省略される) です。左丸括弧と右丸括弧は、指定された端点がその範囲に含まれないことを示します。左角括弧と右角括弧は、指定された端点がその範囲に含まれることを示します。例えば、(45,49] は、45 より大きく 49 以下のすべての値を表します。
複数範囲式の圧縮の定義
場合によっては、指定されたレベルの複数の範囲を定義する必要があります。これは単調なプロセスになる可能性があります。また、結果の範囲式は、スタジオで表示したときに読みづらくなります。このような場合には、以下に示す rangeExpression の値の代替構文を使用できます。
rangeExpression="[start:increment:end]:replacement;"
または、両方の角括弧の代わりに適切な括弧を使用できます (下記の詳細を参照)。
この構文は一連の範囲を生成します。
この start は最初の範囲の開始値 (数値)、end は最後の範囲の終了値 (数値)、increment は範囲を定義する数値です。最初の範囲は start と start + increment の間などになります。
また、replacement は、置換値として使用される式です。replacement では、以下の要素を使用できます。
角括弧や括弧は、生成された start および end の範囲内で start 値と end 値がどのように処理されるかに影響を与えます。
-
角括弧は値を範囲に含めます。
-
括弧は値を範囲から除外します。
中間範囲の境界では、境界値は下位の範囲ではなく、常に上位の範囲に割り当てられます。つまり中間範囲では、開く括弧は常に [、閉じる括弧は常に ) になります。
以下の範囲式を考えてみます。
rangeExpression="[0:30:90]:%1 to $$$eval(%2-1);"
これは、以下に示す長い式と同じメンバを生成します。
rangeExpression="[0,30):0 to 29;[30,60):30 to 59;[60,90]:60 to 90;"
値 end - start が increment の整数倍でない場合、最後の範囲は end を超えます。例えば、以下の範囲式を考えてみます。
rangeExpression="[0:30:100]:%1 to $$$eval(%2-1);"
これは、以下に示す長い式と同じメンバを生成します。
rangeExpression="[0,30):0 to 29;[30,60):30 to 59;[60,90):60 to 90;[90,119]:90 to 119;"
<member>
<member> 要素は、主に上級者向けです。"InterSystems Business Intelligence の上級モデリング" の "レベルのメンバの手動指定" を参照してください。
<member> 要素には以下のコンテンツがあります。
属性 |
目的 |
name、displayName、description、disabled |
"キューブの共通属性" を参照してください。 |
spec |
レベルが、type="computed" が指定されているディメンジョンに含まれる場合は、このメンバが使用するファクト・テーブル行 (またはソース・テーブル行) の ID を返す SQL クエリを指定します。
それ以外の場合は、必要に応じて、メンバ・キーとして使用する値を指定します。これを省略すると、name がメンバ・キーになります。 |
<property>
レベルは、ゼロ個以上のカスタム・レベル・プロパティを含むことができます。これらのプロパティは、値がソース・データから導出され、レベルの特定のメンバに関連付けられます。例えば、市区町村のレベルには、人口や郵便番号などのプロパティを組み込むことができます。各市区町村に、これらの各プロパティの値が 1 つ存在します。
<property> 要素には以下のコンテンツがあります。
属性 |
目的 |
name、displayName、description、disabled |
"キューブの共通属性" を参照してください。 |
sourceProperty |
アーキテクトで [プロパティ] または [式] を指定する際とほとんど同じ方法で、これらの属性のいずれかを指定します。"ディメンジョンまたはレベルのソース値の定義" と "ソース式の詳細" を参照してください。 メモ :
-
sourceProperty には、[プロパティ] に入力するのと同じ値を一重引用符で囲んで使用します。
例 : sourceProperty='MyProp'
-
sourceExpression には、[式] に入力するのと同じ値を一重引用符で囲んで使用します。
例 : sourceExpression='%source.MyProp_"ABC"'
値自体に二重引用符が含まれない場合は、代わりに二重引用符で値を囲むこともできます。例 : sourceExpression="%source.MyProp" |
sourceExpression |
sort |
(オプション) このプロパティが属するレベルのメンバを並べ替える際にこのプロパティをどのように使用するかを指定します。レベルは複数のプロパティを基準にして並べ替えることができます。その場合、<property> 要素を定義した順序で並べ替えが適用されます。最初のプロパティが一次の並べ替えを制御し、2 番目のプロパティが二次の並べ替えを制御するというように続きます。
"asc"、"asc numeric"、"desc"、または "desc numeric" を指定します。
既定では、プロパティはメンバの並べ替え順序に影響しません。 |
isName |
(オプション) "true" の場合、指定されたレベルのメンバについて、システムがこのプロパティの値を使用してメンバの名前を指定することが、この属性によって指定されます。
"true" または "false" (既定) を指定します。 |
isDescription |
(オプション) "true" の場合、指定されたメンバについて、システムがこのプロパティの値をメンバのツールのヒントに使用することが、この属性によって指定されます。"true" または "false" (既定) を指定します。 |
isReference |
(オプション) "true" の場合、システムがこのプロパティの値を格納するのではなく、プロパティを元のソース・テーブルを参照する SQL 計算フィールドとして定義することが、この属性によって指定されます。isReference="true" と指定した場合は、メンバ・キーが、レベル (およびそのプロパティ) の基礎となっているレコードの ID になるように、レベルを定義する必要があります。 |
useDisplayValue |
(オプション) DISPLAYLIST および VALUELIST パラメータの値があるクラス・プロパティの場合、この属性によってプロパティに使用する値が指定されます。この属性が "true" (既定) の場合は、DISPLAYLIST で指定された値が使用されます。この属性が "false" の場合は、VALUELIST で指定された値が使用されます。 |
linkClass、linkProperty |
(オプション) "他のテーブルへのリンク" を参照してください。 |
factName |
(オプション) (生成されたディメンジョン・テーブルで) プロパティに対応する列に使用される名前。この属性が NULL の場合はシステムによって名前が生成されます。生成されたディメンジョン・テーブルに対して SQL クエリを直接発行する予定がない限り、この属性は重要ではありません。
この属性の名前が存在しても、プロパティはファクト・テーブルにはありません。プロパティは、それらが属するレベルに対応するテーブルにあります。
<measure> の factName の説明を参照してください。 |
formatString |
(オプション) 値の表示方法を制御します。"formatString の詳細" を参照してください。形式文字列では、特殊文字 0 も使用できます。これは先頭のゼロのプレースホルダとして使用します。例えば、00000 は、先頭のゼロが埋め込まれた 5 桁の数値を示します。 |
hidden |
(オプション) hidden="true" の場合、このプロパティは定義され、クエリで使用することができますが、アナライザで使用可能なプロパティとしてリストには表示されません。 |
以下はその例です。
<property name="Population" sourceProperty="City.Population"/>
<listing>
キューブは、ゼロ個以上の名前付きリストを含むことができます。これらは、アナライザで使用できます。
キューブの既定のリストは、<cube> 要素の defaultListing 属性 (指定されている場合) か、<cube> に含まれる最初の <listing> 要素で指定されたリストです。
<listing> 要素には以下のコンテンツがあります。
属性 |
目的 |
name、displayName、description、disabled |
"キューブの共通属性" を参照してください。 |
fieldList |
表示するフィールドのコンマ区切りのリスト。オプションの詳細は、"単純なリストの定義" を参照してください。データ・コネクタ・リストのオプションの詳細は、"データ・コネクタ・リストの定義" を参照してください。 |
formatList |
リスト用の CSSOpens in a new tab 形式指示のリスト (キャレット区切り)。リストの各部分は、リスト内の対応する列に適用されます。このリストは、列にある要素と同数の要素を持っている必要があり、各リストの要素は、以下の形式のいずれかを持っている必要があります。
-
{CSS formatting instruction}、例 : {text-align:center;} — 対応する列の形式を設定します。
{text-align:left;} または {text-align:center;} を使用できます。その他の指示は無視されます。
-
display:none; — 対応する列を非表示にします。
-
Null — 対応する列を既定のスタイルで表示します。
|
orderBy |
単純なリストにのみ適用されます。この属性は、リストの並べ替えの基準となるフィールドのコンマ区切りのリストです。全体的な並べ替えは、リストの最初のフィールドによって制御され、二次的な並べ替えは 2 番目のフィールドによって制御される、というように続きます。
フィールド名の後に ASC または DESC キーワードを組み込んで、それぞれ昇順または降順で並べ替えることができます。その他の詳細は、"単純なリストの定義" を参照してください。
ソースがデータ・コネクタである場合、この属性は無視されます。 |
sourceClass |
データ・コネクタが存在する場合に、このリストの基になるデータ・コネクタを指定します。この属性を指定する場合は、%DeepSee.DataConnectorOpens in a new tab を拡張するクラスの名前を指定します。"InterSystems Business Intelligence の実装" を参照してください。 |
sql |
このリストに対するカスタム SQL クエリ (存在する場合) を指定します。"SQL カスタム・リストの定義" を参照してください。 |
listingType |
(オプション) リストの形式を指定します。既定は、"table" です。この代わりに "map" を指定すると、マップタイプ・リストが表示されます。マップタイプ・リストではポイントが緯度と経度で示されるマップが表示されます。この場合は、リスト・クエリにフィールド Latitude および Longitude を含める必要があります (大文字と小文字は区別されます)。"マップ・リスト (地理リスト) の定義" を参照してください。 |
selectMode |
(オプション) このリストの SQL クエリに使用される %SelectModeOpens in a new tab を指定します。この属性によって、特定タイプのデータの表示方法が決まります。既定値は、"display" です。他の指定可能な値は、"logical" および "odbc" です。"リストの追加" を参照してください。 |
resource |
(オプション) このリストへのアクセスの制御に使用されるリソースの名前。"InterSystems Business Intelligence の実装" を参照してください。 |
リストには、ソースに応じて、以下の 3 種類があります。
いずれの場合も、システムでは SQL クエリが作成され、使用されます。
以下のテーブルは、各種のリストに指定される <listing> の属性を示しています。
リストの種類 |
fieldList |
orderBy |
sourceClass |
sql |
基本 |
必須 |
オプション |
指定しません。この属性は優先されます。 |
指定しません。この属性は優先されます。 |
データ・コネクタ |
オプション |
無視 |
必須 |
無視 |
カスタム |
無視 |
無視 |
指定しません。この属性は優先されます。 |
必須 |
<listingField>
キューブでは、エンド・ユーザがアナライザでカスタム・リストを作成することを可能にするリスト・フィールドをゼロ個以上定義できます ("アナライザの使用法" の "カスタム・リストの作成" を参照してください)。
Note:
システムでは、もう 1 つの種類のカスタム・リスト (キューブの必ずしもソース・テーブルを使用するとは限らないリスト) がサポートされています。"リストの定義" の "カスタム・リストの定義" を参照してください。
<listingField> 要素には以下のコンテンツがあります。
属性 |
目的 |
name、displayName、description、disabled |
"キューブの共通属性" を参照してください。 |
fieldExpression |
ソース・テーブルのフィールドまたは (矢印構文などを使用して) 関連テーブルのフィールドを参照する SQL 式。displayName を指定する場合、SQL 式内でエイリアスを指定しないでください。これに反して、SQL 式内でエイリアスを指定した場合、displayName は無視され、フィールド名をローカライズできません。詳細は、"リスト・フィールドの作成" を参照してください。 |
resource |
(オプション) このリスト・フィールドへのアクセスの制御に使用されるリソースの名前。"InterSystems Business Intelligence の実装" を参照してください。 |
以下はその例です。
<listingField name="PatientID" displayName="PatientID" fieldExpression="PatientID" />
<listingField name="Age" displayName="Age" fieldExpression="Age" />
<listingField name="Gender" displayName="Gender" fieldExpression="Gender" />
<listingField name="Test Score" displayName="Test Score" fieldExpression="TestScore" />
<listingField name="City" displayName="City" fieldExpression="HomeCity->Name" />
<listingField name="Doctor" displayName="Doctor" fieldExpression="PrimaryCarePhysician->LastName" />
<calculatedMember>
キューブには、ゼロ個以上の計算メンバを含むことができます。計算メンバは、他のメンバに関連して定義されるメンバです。以下の 2 種類の計算メンバを追加できます。
-
他のメジャーに基づく新しいメジャーを定義できます。例えば、以下のような数式でメジャーを定義できます。
Measure 3 = (Measure 1 + Measure 2) / Measure 2)
これは正確な構文ではありません。
-
他のメジャー以外のメンバに基づく新しいメンバを定義できます。例えば、Favorite Color ディメンジョンの red、yellow、および blue のメンバを結合する Primary Colors メンバを作成できます。
この新しい Primary Colors メンバは、red、yellow、および blue のメンバに対応するファクト・テーブルのすべてのレコードを参照します。
MDX では、メジャーはメンバと見なされます。これが、両方の種類の計算要素が計算メンバであると見なされる理由です。
Note:
現在、この要素を使用してメジャーを定義する際に MDX シェルの cube コマンドではこのメジャーがリストされません。ただし、MDX シェルまたはクエリ API のセットは使用できます。
<calculatedMember> 要素には以下のコンテンツがあります。
属性 |
目的 |
name、displayName、description、disabled |
"キューブの共通属性" を参照してください。name 属性について、システムでは名前が既に使用されているかどうかのチェックが行われません。同じディメンジョンの別メンバが既に使用している名前を使用すると、そのメンバがオーバーライドされます。 |
dimension |
このメンバが属するディメンジョン。 |
valueExpression |
他のメンバへの参照に関連してこのメンバの値を定義する MDX 式。単純で一般的なシナリオについては、"アナライザの使用法" の "計算要素の定義" を参照してください。詳細と例は、"InterSystems MDX リファレンス" を参照してください。 |
formatString |
(オプション) 値の表示方法を制御します。"形式文字列の指定" を参照してください。 |
units |
(オプション) メジャー値が表示される単位を示します。現在、この属性は、一般情報としてのみ提供されています。 |
listingFilter |
(オプション、dimension が "measures" である場合のみ) ユーザがピボット・テーブルでこの計算メジャーを表示し詳細リストを要求する際に使用される追加フィルタを指定します。"計算メジャーのリストの追加フィルタの指定" を参照してください。 |
以下はその例です。
<calculatedMember name="Avg Age" dimension="MEASURES" valueExpression="[MEASURES].[Age]/[MEASURES].[%COUNT]"/>
この計算メンバを使用するコンテキストでは、まず、そのコンテキストの Age および Patient Count メジャーが評価され、次に除算が実行されます。
Note:
上記以外に、計算メンバは以下の 2 つの方法でも定義できます。
-
MDX クエリでの WITH 節の使用。
-
CREATE MEMBER 文の中。
これは MDX シェル内でのみ有効です。
"InterSystems MDX リファレンス" を参照してください。
<namedSet>
キューブは、ゼロ個以上の名前付きセットを含むことができます。名前付きセットは、メンバ、またはメンバのセットのエイリアスです。名前付きセットは、クエリの行や列で使用でき、クエリの実行時にシステムによってメンバまたはセットに置換されます。
Note:
名前付きセットを定義する際、MDX シェルの cube コマンドではこのセットがリストされません。ただし、MDX シェルまたはクエリ API のセットは使用できます。
<namedSet> 要素には以下のコンテンツがあります。
属性 |
目的 |
name、displayName、description、disabled |
"キューブの共通属性" を参照してください。name 属性について、システムでは名前が既に使用されているかどうかのチェックが行われません。別の名前付きセットが既に使用している名前を使用すると、その名前付きセットがオーバーライドされます。 |
setExpression |
メンバまたはメンバのセットを返す MDX 式。詳細と例は、"InterSystems MDX リファレンス" を参照してください。 |
以下はその例です。
<namedSet name="SampleSet" setExpression="[homed].[h1].[city].MEMBERS" />
<relationship>
あるキューブから別のキューブへの単方向リレーションシップを定義するには、最初のキューブで <relationship> 要素を定義します。
双方向リレーションシップを定義するには、各キューブに 1 つずつ、計 2 つの補完的な <relationship> 要素を定義します。
<relationship> 要素には以下の属性があります。
属性 |
目的 |
name |
リレーションシップの名前。他のキューブのレベルを使用するには、MDX クエリでこの論理名を使用します。通常、これは他のキューブの名前です。 |
displayName、description、disabled |
"キューブの共通属性" を参照してください。 |
relatedCube |
他方のキューブの論理名。 |
inverse |
他方のキューブの <relationship> 要素内の name 属性の値。 |
cardinality |
リレーションシップのカーディナリティ。 |
sourceProperty |
"InterSystems Business Intelligence の上級モデリング" の "キューブ間のリレーションシップの定義" で "単方向リレーションシップの定義" および "双方向リレーションシップの定義" を参照してください。 |
sourceExpression |
|
nullReplacement |
(オプション) このリレーションシップのソース・データが NULL の場合に、メンバ名として使用する文字列を指定します。例えば、nullReplacement="No City" と指定します。この属性は、sourceProperty または sourceExpression を指定する <relationship> 内で指定します。 |
factName |
(オプション) (ファクト・テーブルで) リレーションシップに対応する列に使用される名前。この属性が NULL の場合はシステムによって名前が生成されます。
<measure> の factName の説明を参照してください。 |
factNumber |
このリレーションシップに割り当てられている内部 ID。キューブの namedFactNums が "true" の場合は必須です。 |
linkClass、linkProperty |
使用しません。これらは無視されます。 |
dependsOn |
(オプション) このリレーションシップが依存関係を持つリレーションシップを指定します。リレーションシップの論理名を指定します。"異なる階層に含まれるレベル間での依存関係の定義" を参照してください。(または、リレーションシップがレベルに依存する場合は、そのレベルの MDX 識別子を指定します)。
この属性は、DependsOn コンパイラ・キーワードとはまったく関係ありません。 |
Important:
キューブ・クラスをコンパイルする際は、独立キューブを最初にコンパイルします。これはリレーションシップのソース・プロパティまたはソース式を定義しないキューブです。コンパイル順序を制御するには、依存キューブのクラス定義で DependsOn キーワードを指定します。
同様に、独立キューブを最初に構築する必要があります。DependsOn キーワードはキューブの構築順に影響しません。
以下のテーブルは、各シナリオで指定するキーワードをまとめたものです。
属性 |
単方向リレーションシップ |
双方向リレーションシップ |
inverse |
これを省略します。 |
双方のキューブでこれを指定します。 |
cardinality |
"one" を使用します。 |
-
依存キューブでは "one" を使用します。
-
独立キューブでは "many" を使用します。
|
sourceProperty または sourceExpression |
通常どおり指定します。 |
依存キューブのみに適用できます。 |
factName |
通常どおり指定します。 |
依存キューブのみに適用できます。他方のキューブでは無視されます。 |
例は、"InterSystems Business Intelligence の上級モデリング" の "キューブ間のリレーションシップの定義" を参照してください。
<expression>
<expression> 要素は、ソース・テーブルの各行に対する値を持つオプションの式を定義します。キューブは任意の数の式を持つことができます。
<expression> 要素には以下のコンテンツがあります。
<index>
<index> 要素は、ファクト・テーブルに追加するオプションのカスタム・インデックスを指定します。システムはこのインデックスを使用しません (必要なインデックスは自動的に追加されるため)。
カスタム・インデックスは、SQL を介してファクト・テーブルにアクセスする計画がある場合に追加できます。<index> 要素には以下のコンテンツがあります。
属性 |
目的 |
name、displayName、description、disabled |
"キューブの共通属性" を参照してください。 |
type |
インデックスのタイプを指定します。"bitmap"、"bitslice"、"index"、または "key" を使用します。 |
properties |
インデックスの基とするファクト・テーブルのフィールドを指定します。ファクト・テーブル・クラスのプロパティのコンマ区切りリストを指定します。 |
以下はその例です。
<index name="IndexName" type="bitmap" properties="MxAge,DxGender"/>
Tip:
ほとんどのレベルおよびメジャーで、factName 属性を指定して、生成されたファクト・テーブル・クラスのプロパティ名を制御できることを覚えておいてください。