Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

キューブ・クラスのリファレンス情報

アーキテクトは、キューブ・クラスの作成と変更を行います。キューブ・クラスはスタジオで直接、作成および編集することもできます。この付録では、これらのクラスのリファレンス情報を提供します。以下のトピックについて説明します。

このドキュメント内で前述の “リコンパイルおよび再構築のタイミング” と、"DeepSee 上級モデリング・ガイド" の “キューブおよびサブジェクト領域の高度な機能の使用” も参照してください。

キューブ・クラスの要件

キューブを定義するには、以下の要件に合致したクラスを作成します。

  • %DeepSee.CubeDefinitionOpens in a new tab を拡張する必要があります。

  • Cube という名前の XData ブロックを格納している必要があります。

  • この XData ブロックに対して、以下のように XMLNamespace が指定されている必要があります。

    XMLNamespace = "http://www.intersystems.com/deepsee"
    
  • XData ブロック内のルート要素が <cube> であり、この要素がこの付録の他の部分に記載された要件に従っている必要があります。

  • クラスで DependsOn コンパイラ・キーワードを指定することによって、キューブのソース・クラスがコンパイルされて使用できるようになった後にのみ、このクラスがコンパイルされるようにすると便利です。ただし、必ずしもそうする必要はありません。

  • クラスでは DOMAIN パラメータを定義できます。これによってローカライズされた文字列が属するドメインが指定されます。以下はその例です。

    Parameter DOMAIN = "PATIENTSAMPLE";

    詳細は、"DeepSee 実装ガイド" の “ローカライズの実行” を参照してください。

以下はその例です。

Class DeepSee.Model.PatientsCube Extends %DeepSee.CubeDefinition [DependsOn=DeepSee.Study.Patient]
{

XData Cube [ XMLNamespace = "http://www.intersystems.com/deepsee" ]
{
<cube 
name="Patients"  
 owner="_SYSTEM"
 caption="Patients"
 sourceClass="DeepSee.Study.Patient"
 other_cube_options...
>

<measure measure_definition/>
...

<dimension dimension_definition/>
...

</cube>
}


スタジオでは、入力に応じたサポートが提供されます。以下はその例です。

generated description: studio assistance

キューブの共通属性

キューブ内の要素の大部分には以下の属性があります。わかりやすくするため、ここにこれらをリストします。

属性 目的
name このキューブに対する MDX クエリで使用される要素の論理名。このドキュメント内で前述の “モデル要素の名前” を参照してください。
displayName (オプション) ユーザ・インタフェースで使用されるこの要素のローカライズ名。この属性を指定しない場合、代わりに name 属性で指定された値が表示されます。詳細は、"DeepSee 実装ガイド" の “ローカライズの実行” を参照してください。
description (オプション) この要素の説明。
disabled (オプション) コンパイラがこの要素を使用するかどうかを制御します。この属性が "true" の場合、コンパイラは要素を無視します。これは要素をコメントアウトすることと同等です。既定では、この属性は "false" です。
additionalDescription (オプション) この要素に関する追加の注意事項。アーキテクトとスタジオでのみ表示されます。

<cube>

<cube> 要素は、XData ブロックのルート要素です。この要素には以下のコンテンツがあります。

属性または要素 目的
namedisplayNamedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。
sourceClass このキューブによって使用されるベース・クラスの完全なパッケージおよびクラス名。このドキュメント内で前述の “キューブに使用可能なソース・クラス” を参照してください。
owner (オプション) キューブの所有者の名前。
resource (オプション) DeepSee アーキテクトを介してアクセスする際に、このキューブへのアクセスの制御に使用されるリソースの名前。"DeepSee 実装ガイド" を参照してください。
caption (オプション) このキューブでの作業時にアナライザおよびその他のユーティリティに表示するキャプション。
countMeasureCaption (オプション) 既定のメジャーに使用するキャプション。レコード数をカウントします。既定のキャプションは Count です。内部的には、このメジャーの名前は %Count です。
countMeasureName (オプション) 既定のメジャーに使用する名前。レコード数をカウントします。このメジャーの既定の名前は %Count です。
defaultListing (オプション) このキューブの既定として使用する <listing> の論理名を指定します。この付録で後述する “<listing>” を参照してください。
nullReplacement (オプション) レベルのソース・データが NULL の場合にメンバ名として使用する文字列を指定します。例えば、nullReplacement="None" と指定します。

指定の <level>nullReplacement 属性が指定されている場合は、この属性によってこのオプションがオーバーライドされます。

bucketSize (オプション) このキューブに使用されるキャッシュ・バケットのサイズを指定します。連続する 64,000 行が 1 つのグループであり、バケットはグループの整数倍です。既定のバケット・サイズは 8 です。つまり、既定では、最初の 512,000 行のバケット番号は 1、次の 512,000 行はバケット番号 2、というようになります。

状況に応じて、多数のファクトがあり、キューブ内の古い値の更新が多くないと予測される場合は、この値を増やすことができます。この値を変更する場合は、必ずそのキューブに対してキャッシュされたすべての結果を削除してください。そのためには、キューブ定義クラスの %KillCache() メソッドを呼び出します。

actionClass (オプション) このキューブに基づくピボット・テーブルで使用可能なアクションを定義する、関連 KPI クラスを指定します。%DeepSee.KPIOpens in a new tab のサブクラスの完全なパッケージとクラス名を指定します。
maxFacts (オプション) ファクト・テーブルの最大行数を指定します。これによって、キューブの構築時に使用されるベース・テーブルの行数が決まります。この属性は、ベース・テーブル全体の処理が不要な場合にデバッグを支援するために使用されます。既定では、ベース・テーブルのすべての行が処理されます。
bitmapChunkInMemory (オプション) DeepSee によるインデックスの構築方法として、プロセス・プライベート・グローバル (低速、ただし <STORE> エラーが発生しない) を使用するのか、またはすべてメモリ内 (高速) とするのかを制御します。既定は "false" で、DeepSee はインデックス構築時の一時的なストレージにプロセス・プライベート・グローバルを使用します。

キューブに大量のインデックスがなく (ディメンジョンおよびメジャー)、非常に大量のメンバが含まれるディメンジョンがない場合は、"true" を使用してパフォーマンスを高速化できます。この設定は試してみる価値があります。キューブの構築時に <STORE> エラーが発生した場合には、値を既定に戻します。

initialBuildOrder (オプション) キューブ全体を構築する際に使用するオプションの ORDER BY 節の構築に使用されます。インクリメンタル更新には影響しません。ソース・テーブルのフィールドのコンマ区切りリストを指定します。SQL キーワード ASC および DESC を使用できます。例 : "Age DESC,Gender"
buildRestriction (オプション) キューブの構築および更新時に使用するオプションの WHERE 節を指定します。これにより、キューブがレコードのサブセットを使用するようになります。ソース・テーブルのフィールドを使用する SQL 比較式を指定します。例: Gender='F’。キューブがデータ・コネクタに基づいている場合、このオプションには何の効果もありません。
abstract (オプション) "DeepSee 上級モデリング・ガイド" の “キューブ継承による再使用可能要素の定義” を参照してください。
inheritsFrom
disableListingGroups (オプション) この属性に "true" を指定すると、すべてのユーザはこのキューブをターゲットとして使用するリスト・グループを定義できなくなります。既定は "false" です。このドキュメントで前述した “リスト・グループのコンパイル” を参照してください。
version (オプション) "DeepSee 実装ガイド" の付録 “キューブ・バージョンの使用” を参照してください。
defaultMeasuredefaultMemberprecompute 使用しません。
<measure> (オプション) ゼロ個以上の <measure> 要素を含むことができます。このそれぞれがメジャーを定義します。
<dimension> (オプション) ゼロ個以上の <dimension> 要素を含むことができます。このそれぞれがディメンジョンを定義します。
<listing> (オプション) ゼロ個以上の <listing> 要素を含むことができます。このそれぞれがリストを定義し、アナライザで使用できます。
<listingField> (オプション) ゼロ個以上の <listingField> 要素を含むことができます。このそれぞれがリストを定義し、アナライザで使用できます。
<namedSet> (オプション) ゼロ個以上の <namedSet> 要素を含むことができます。このそれぞれが名前付きセットを定義します。名前付きセットは、メンバまたはメンバのセットのエイリアスです。
<calculatedMember> (オプション) ゼロ個以上の <calculatedMember> 要素を含むことができます。このそれぞれが、他のメンバに関連して計算されるメンバを定義します。通常、これは他のメジャーに基づいて計算されるメジャーの定義に使用されます。
<relationship> (オプション) ゼロ個以上の <relationship> 要素を含むことができます。<relationship> 要素は、キューブに別のキューブを接続し、独自のキューブのクエリを実行する際に、その別のキューブのレベルを使用できるようにします。
<index> (オプション) ゼロ個以上の <index> 要素を含むことができます。このそれぞれがファクト・テーブル上でオプションのカスタム・インデックスを定義します。これは、そのファクト・テーブルに対する SQL クエリを実行する計画がある場合に役立ちます。ファクト・テーブルの詳細は、“ファクト・テーブルおよびディメンジョン・テーブルの詳細” を参照してください。
<expression> (オプション) ゼロ個以上の <expression> 要素を含むことができます。このそれぞれが、1 つ以上のメジャーまたはディメンジョンの定義で使用される式 (通常は中間値) を定義します。式の値は格納されませんが、キューブの構築時に使用できます。

以下はその例です。

<cube 
name="Patients"  
 owner="_SYSTEM"
 caption="Patients"
 sourceClass="DeepSee.Study.Patient"
 >
...

<measure>

<measure> 要素は、メジャーを定義します。キューブは任意の数のメジャーを持つことができます。この要素には以下の属性があります。

属性 目的
namedisplayNamedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。
sourceProperty アーキテクトで [プロパティ] または [式] を指定する際とほとんど同じ方法で、これらの属性のいずれかを指定します。このドキュメント内で前述の “ディメンジョンまたはレベルのソース値の定義” と “ソース式の詳細” を参照してください。メモ :
  • sourceProperty には、[プロパティ] に入力するのと同じ値を一重引用符で囲んで使用します。

    例 : sourceProperty='Age'

  • sourceExpression には、[式] に入力するのと同じ値を一重引用符で囲んで使用します。

    例 : sourceExpression='%source.property/100'

値自体に二重引用符が含まれない場合は、代わりに二重引用符で値を囲むこともできます。例 : sourceExpression="%source.property/100"
sourceExpression
type (オプション) メジャーのデータ型を指定します。ほとんどのメジャーは数値です。これが既定です。“メジャーのデータ型の指定” を参照してください。
iKnowSourceiKnowDomainiKnowDictionariesiKnowParameters (オプション) "DeepSee 上級モデリング・ガイド" の “構造化されていないデータのキューブでの使用 (iKnow)” を参照してください。
aggregate (オプション) 複数のレコードを結合する際、常に、このメジャーの値の集約方法を指定します。このオプションを指定する場合は、以下の値のいずれかを使用します。
  • "SUM"

  • "COUNT" — ソース・データが 非 NULL (および非ゼロ) 値のレコード数をカウントします。

  • "MAX" — セット内の最大値を使用します。

  • "MIN" — セット内の最小値を使用します。

  • "AVG" — セットの平均値を計算します。

ブーリアンまたは文字列のメジャーでは、この属性は "COUNT" である必要があります。
hidden (オプション) hidden="true" の場合、このメジャーは定義され、クエリで使用することができますが、アナライザで使用可能なメジャーとしてリストには表示されません。これにより、中間計算の機能を果たすメジャーを定義できます。
scale (オプション) 保持する小数点以下桁数を指定します。既定では、scale は 0 で、メジャー値のそれぞれがファクト・テーブルに書き込まれる前に整数に丸められます。
linkClasslinkProperty (オプション) “他のテーブルへのリンク” を参照してください。
searchable (オプション) searchable="true" の場合、このメジャーは、メジャー値を参照するフィルタ式を作成 (通常はメジャー値と定数と比較するため) できる高度なフィルタのオプションとして表示されます。

これらの式をサポートするため、検索可能メジャーには必要に応じてさらにインデックスが追加されます。"DeepSee MDX リファレンス" の “メジャー検索式” を参照してください。検索可能なメジャーの名前には、角かっこやコンマ ([],) を含めることはできません。

searchable="true" とマークされていない場合でも、手動 MDX クエリでメジャーを検索可能メジャーとして使用できる場合もあることに注意してください。

いずれの場合も、このメジャーは他のメジャーと同様の方法で使用できます。

factName

(オプション) 生成されたファクト・テーブルにおける、このメジャーに対応する列の名前。この属性が NULL の場合はシステムによって名前が生成されます。このオプションは、iKnow メジャーには適用されません。 SQL の予約語は使用しないでください。SQL 予約語のリストは、"Caché SQL リファレンス" の “予約語” を参照してください。名前は、英字かパーセント記号 (%) で始まる必要があります。最初の文字が % である場合、2 番目の文字は Z または z である必要があります。制限事項の詳細は、"Caché プログラミング入門ガイド" の付録 “識別子のルールとガイドライン” で “クラス・メンバ” を参照してください。また、fact または listing という語は、どのような大文字と小文字の組み合わせであっても使用しないでください。

factSelectivity (オプション、DeepSee では不使用) ファクト・テーブル・クラス内のプロパティの生成された SELECTIVITY をオーバーライドする値。DeepSee のクエリでは、このパラメータは使用しません。このオプションは、生成されたファクト・テーブルに対して直接 SQL を使用するときに、生成された SELECTIVITY をオーバーライドする必要がある場合に使用します。

1 以下の正の値を指定します。詳細は、%SYSTEM.SQLOpens in a new tabSetFieldSelectivity() を参照してください。

formatString (オプション) 値の表示方法を制御します。“formatString の詳細” を参照してください。
units (オプション) メジャー値が表示される単位を示します。現在、この属性は、一般情報としてのみ提供されています。
listingFilterOperator および listingFilterValue (オプション) これらの属性は、ユーザがピボット・テーブルでこのメジャーを選択し、リストを表示する際に適用されるオプションの追加フィルタを指定します。詳細は、“メジャーの定義” の章の “リストの追加フィルタの指定” を参照してください。

以下はその例です。

<measure name="Test Score" sourceProperty="TestScore" aggregate="SUM"/>
<measure name="Avg Test Score" sourceProperty="TestScore" aggregate="AVG"/>
<measure name="Allergy Count" 
   sourceExpression="##class(Cubes.StudyPatients).GetAllergyCount(%source.%ID)"/>

Allergy Count メジャーが、キューブ・クラス内で定義されたユーティリティ・メソッドを使用していることに注意してください。

%COUNT メジャー

DeepSee には、クエリ内のファクト数を返す %COUNT という名前の事前定義メジャーがあります。

Measures ディメンジョン

Measures ディメンジョンは DeepSee によって自動的に生成され、すべてのメジャーがこの中に配置されます。

formatString の詳細

formatString 属性は、以下のような分割化された文字列です。

Format^Color
  • Format 部分には、以下のような 1 から 4 の部分文字列で構成される文字列を指定します。

    positive_format;negative_format;zero_format;missing_format;
    

    positive_format は、正の値の表示方法を制御し、negative_format は、負の値の表示方法を制御します。zero_format は、ゼロの表示方法を制御し、missing_format は、欠落値の表示方法を制御します。

    このドキュメント内で前述の “形式文字列の指定” を参照してください。

  • Color 部分には、以下のような 1 から 4 の部分文字列で構成される文字列を指定します。

    positive_color;negative_color;zero_color;missing_color;
    

    positive_color は、正の値の色を制御し、negative_color は、負の値の色を制御します。zero_color は、ゼロの色を制御し、missing_color は、欠落値の色を制御します。

    それぞれに対して、CSS カラー名Opens in a new tabまたは16 進カラー・コードOpens in a new tabを指定します。

日付メジャーの場合、以下のバリエーションを使用します。

%date%^Color

Color は前述の説明と同じです。%date% は、現在のプロセスの既定の日付形式に従って、日付をフォーマットします。

<dimension>

<dimension> 要素は、ディメンジョンを定義します。ディメンジョンには 1 つ以上の階層が含まれ、各階層には 1 つ以上のレベルが含まれます。キューブは任意の数のディメンジョンを持つことができます。

<dimension> 要素には以下のコンテンツがあります。

属性または要素 目的
namedisplayNamedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。
sourceProperty アーキテクトで [プロパティ] または [式] を指定する際とほとんど同じ方法で、これらの属性のいずれかを指定します。“ディメンジョンまたはレベルのソース値の定義” を参照してください。メモ :
  • sourceProperty には、[プロパティ] に入力するのと同じ値を一重引用符で囲んで使用します。

    例 : sourceProperty='Age'

  • sourceExpression には、[式] に入力するのと同じ値を一重引用符で囲んで使用します。

    例 : sourceExpression='%source.property_"ABC"'

値自体に二重引用符が含まれない場合は、代わりに二重引用符で値を囲むこともできます。例 : sourceExpression="%source.property"
sourceExpression
type 以下のいずれかを指定します。

calendar (オプション) これは type"time" である場合にのみ指定します。calendar 属性では、時間レベルのメンバにレコードを割り当てる際に使用する暦を指定します。グレゴリオ暦を使用する場合は、"gregorian" (既定値) を指定します。ヒジュラ暦を使用する場合は、"hijriTabular" または "hijriObserved" を指定します。
iKnowMeasure および iKnowType (オプション) "DeepSee 上級モデリング・ガイド" の “構造化されていないデータのキューブでの使用 (iKnow)” を参照してください。
hasAll (オプション) このディメンジョンに All レベルがあるかどうかを示します。既定は "true" です。
allCaption (オプション) このディメンジョンの All レベルまたは All メンバに使用される名前。既定の名前は、All dimension です。dimension はディメンジョン名です。
allDisplayName (オプション) All メンバに使用されるローカライズ名を指定します。この属性を指定しない場合、代わりに allCaption 属性で指定された値が表示されます。
hidden (オプション) hidden="true" の場合、ディメンジョンは定義され、クエリで使用することができますが、アナライザはディメンジョンを使用可能なものとして表示しません。既定は "false" です。
showHierarchies (オプション) アナライザにこのディメンジョン内の階層名が表示されるかどうかを制御します。以下のいずれかを指定します。
  • "default" — 複数の階層が存在する場合にのみ、階層名を表示します。

  • "true" — 階層名を常に表示します。

  • "false" — 階層名を表示しません。

この属性はクエリ自体には影響しません。
sharesFrom (オプション) "DeepSee 上級モデリング・ガイド" の “形式的に共有されるディメンジョンの定義” を参照してください。このオプションを日付ディメンジョンには指定しないでください。日付ディメンジョンは自動的に共有されます。
dimensionClass (オプション) "DeepSee 上級モデリング・ガイド" の “計算ディメンジョンの定義” を参照してください。
<hierarchy> このディメンジョン内の階層を指定します。1 つ以上の <hierarchy> 要素を組み込む必要があります。また、複数の <hierarchy> 要素を組み込むことができます。

<hierarchy>

<hierarchy> 要素は、指定されたディメンジョン内の階層を指定します。この要素には以下のコンテンツがあります。

属性または要素 目的
namedisplayNamedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。
hidden (オプション) hidden="true" の場合、階層は定義され、クエリで使用することができますが、アナライザは階層およびそのレベルを使用可能なものとして表示しません。既定は "false" です。
<level> この階層内のレベルを指定します。1 つ以上の <level> 要素を組み込む必要があります。また、複数の <level> 要素を組み込むことができます。

<level>

<level> 要素は、指定された階層内のレベルを指定します。これには、以下のコンテンツがあります。

属性 目的
namedisplayNamedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。
sourcePropertysourceExpression これらの属性のどちらかを指定します。構文は、アーキテクトで [プロパティ] または [式] に使用する構文とほとんど同じです。“ディメンジョンまたはレベルのソース値の定義” を参照してください。メモ :
  • sourceProperty には、[プロパティ] に入力するのと同じ値を一重引用符で囲んで使用します。

    例 : sourceProperty='Age'

  • sourceExpression には、[式] に入力するのと同じ値を一重引用符で囲んで使用します。

    例 : sourceExpression='%source.property_"ABC"'

値自体に二重引用符が含まれない場合は、代わりに二重引用符で値を囲むこともできます。例 : sourceExpression="%source.property"

時刻ディメンジョンまたは年齢ディメンジョン内のレベルの要件については、“時間レベルの定義” および “年齢レベルの定義” を参照してください。

iKnow ディメンジョンのレベルの場合、ソース値を指定するために使用するメカニズムが異なるので、sourcePropertysourceExpression は無視されます。"DeepSee 上級モデリング・ガイド" の “構造化されていないデータのキューブでの使用 (iKnow)” を参照してください。

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" を指定します。

linkClasslinkProperty (オプション) “他のテーブルへのリンク” を参照してください。
factName

(オプション) 生成されたファクト・テーブルにおける、このレベルに対応する列の名前。この属性が NULL の場合は、DeepSee によって名前が生成されます。このオプションは、時間レベルまたは iKnow レベルには適用されません。

<measure>factName の説明を参照してください。

dependsOn (オプション) このレベルが依存関係を持つレベル (またはリレーションシップ) を指定します。レベル (またはリレーションシップ) の完全な MDX 識別子を指定します。または、MDX レベル (またはリレーションシップ) 識別子のコンマ区切りリストを指定します。“異なる階層に含まれるレベル間での依存関係の定義” を参照してください。この属性は、DependsOn コンパイラ・キーワードとはまったく関係ありません。
useAsFilter (オプション) ダッシュボードのフィルタ・コントロールとしてレベルを使用できるかどうかを指定します。この属性が "true" (既定) の場合、ユーザは、フィルタ・コントロールを追加するときにこのレベルを選択できます。この属性が "false" の場合、このレベルはオプションとしてリストされません。このオプションの目的は、ダッシュボード・エディタに表示される選択肢の数を減らすことのみです。アナライザやエンジンには影響しません。
factSelectivity (オプション、DeepSee では不使用) 生成されたレベル・テーブル内のプロパティの生成された SELECTIVITY をオーバーライドするための値。DeepSee のクエリでは、このパラメータは使用しません。このオプションは、レベル・テーブルに対して直接 SQL を使用するときに、生成された SELECTIVITY をオーバーライドする必要がある場合に使用します。

1 以下の正の値を指定します。詳細は、%SYSTEM.SQLOpens in a new tabSetFieldSelectivity() を参照してください。

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" />

日付オフセットの指定

場合によっては、開始日が 1 月 1 日ではない企業の財務カレンダーに時間レベルを一致させることが必要になります。例えば、会計年度は多くの企業で 10 月 1 日に開始します。以下のピボット・テーブルで考えてみましょう。

generated description: fiscal year example simple

この場合、メンバ 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 日に変換されます。

同一ディメンジョン内であっても、他のレベルに影響はありません。このため、実際の日付を表示する、より詳細なレベルも定義できます。この例については、“日付オフセットがあるカレンダーの処理” を参照してください。

基本的な範囲式の定義

rangeExpression の基本的な構文は以下のとおりです。

value_or_range:new_value;value_or_range:new_value; ... ;

ここで、new_value は単一の値で、DeepSee ではこれを文字列として処理し、レベル・メンバの名前として使用します。また、value_or_range は、以下のいずれかになります。

  • 5Louisiana などの単一の値

  • (value1,value2) 形式の範囲

  • [value1,value2] 形式の範囲

  • (value1,value2] 形式の範囲

  • [value1,value2) 形式の範囲

これらの式で、value1value2 は、数値または NULL (式では省略される) です。左丸括弧と右丸括弧は、指定された端点がその範囲に含まれないことを示します。左角括弧と右角括弧は、指定された端点がその範囲に含まれることを示します。例えば、(45,49] は、45 より大きく 49 以下のすべての値を表します。

複数範囲式の圧縮の定義

場合によっては、指定されたレベルの複数の範囲を定義する必要があります。これは単調なプロセスになる可能性があります。また、結果の範囲式は、スタジオで表示したときに読みづらくなります。このような場合には、以下に示す rangeExpression の値の代替構文を使用できます。

rangeExpression="[start:increment:end]:replacement;"

または、両方の角括弧の代わりに適切な括弧を使用できます (下記の詳細を参照)。

この構文は一連の範囲を生成します。

この start は最初の範囲の開始値 (数値)、end は最後の範囲の終了値 (数値)、increment は範囲を定義する数値です。最初の範囲は startstart + increment の間などになります。

また、replacement は、置換値として使用される式です。replacement では、以下の要素を使用できます。

  • %1 — 範囲の開始値で置換します。

  • %2 — 範囲の終了値で置換します。

  • $$$eval() — これにより、システムは含まれた式を評価します。例えば、$$$eval(%2-1) は範囲の終了値から 1 を引いた数を返します。

角括弧や括弧は、生成された 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 - startincrement の整数倍でない場合、最後の範囲は 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> 要素は、主に上級者向けです。"DeepSee 上級モデリング・ガイド" で “キューブおよびサブジェクト領域の高度な機能の使用” の章の “レベルのメンバの手動指定” を参照してください。

<member> 要素には以下のコンテンツがあります。

属性 目的
namedisplayNamedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。
spec レベルが、type="computed" が指定されているディメンジョンに含まれる場合は、このメンバが使用するファクト・テーブル行 (またはソース・テーブル行) の ID を返す SQL クエリを指定します。

それ以外の場合は、必要に応じて、メンバ・キーとして使用する値を指定します。これを省略すると、name がメンバ・キーになります。

<property>

レベルは、ゼロ個以上のカスタム・レベル・プロパティを含むことができます。これらのプロパティは、値がソース・データから導出され、レベルの特定のメンバに関連付けられます。例えば、市区町村のレベルには、人口や郵便番号などのプロパティを組み込むことができます。各市区町村に、これらの各プロパティの値が 1 つ存在します。

<property> 要素には以下のコンテンツがあります。

属性 目的
namedisplayNamedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。
sourceProperty アーキテクトで [プロパティ] または [式] を指定する際とほとんど同じ方法で、これらの属性のいずれかを指定します。“ディメンジョンまたはレベルのソース値の定義” と “ソース式の詳細” を参照してください。 メモ :
  • sourceProperty には、[プロパティ] に入力するのと同じ値を一重引用符で囲んで使用します。

    例 : sourceProperty='MyProp'

  • sourceExpression には、[式] に入力するのと同じ値を一重引用符で囲んで使用します。

    例 : sourceExpression='%source.MyProp_"ABC"'

値自体に二重引用符が含まれない場合は、代わりに二重引用符で値を囲むこともできます。例 : sourceExpression="%source.MyProp"
sourceExpression
sort (オプション) このプロパティが属するレベルのメンバを並べ替える際にこのプロパティをどのように使用するかを指定します。レベルは複数のプロパティを基準にして並べ替えることができます。その場合、<property> 要素を定義した順序で並べ替えが適用されます。最初のプロパティが一次の並べ替えを制御し、2 番目のプロパティが二次の並べ替えを制御するというように続きます。

"asc""asc numeric""desc"、または "desc numeric" を指定します。

既定では、プロパティはメンバの並べ替え順序に影響しません。

isName (オプション) "true" の場合、指定されたレベルのメンバについて、DeepSee がこのプロパティの値を使用してメンバの名前を指定することが、この属性によって指定されます。

"true" または "false" (既定) を指定します。

isDescription (オプション) "true" の場合、指定されたメンバについて、DeepSee がこのプロパティの値をメンバのツールのヒントに使用することが、この属性によって指定されます。"true" または "false" (既定) を指定します。
isReference (オプション) "true" の場合、DeepSee がこのプロパティの値を格納するのではなく、プロパティを元のソース・テーブルを参照する SQL 計算フィールドとして定義することが、この属性によって指定されます。isReference="true" と指定した場合は、メンバ・キーが、レベル (およびそのプロパティ) の基礎となっているレコードの ID になるように、レベルを定義する必要があります。
useDisplayValue (オプション) DISPLAYLIST および VALUELIST パラメータの値があるクラス・プロパティの場合、この属性によってプロパティに使用する値が指定されます。この属性が "true" (既定) の場合は、DISPLAYLIST で指定された値が使用されます。この属性が "false" の場合は、 VALUELIST で指定された値が使用されます。
linkClasslinkProperty (オプション) “他のテーブルへのリンク” を参照してください。
factName (オプション) (生成されたディメンジョン・テーブルで) プロパティに対応する列に使用される名前。この属性が NULL の場合は、DeepSee によって名前が生成されます。生成されたディメンジョン・テーブルに対して SQL クエリを直接発行する予定がない限り、この属性は重要ではありません。

この属性の名前が存在しても、プロパティはファクト・テーブルにはありません。プロパティは、それらが属するレベルに対応するテーブルにあります。

<measure>factName の説明を参照してください。

formatString (オプション) 値の表示方法を制御します。この付録で前述の “formatString の詳細” を参照してください。形式文字列では、特殊文字 0 も使用できます。これは先頭のゼロのプレースホルダとして使用します。例えば、00000 は、先頭のゼロが埋め込まれた 5 桁の数値を示します。
hidden (オプション) hidden="true" の場合、このプロパティは定義され、クエリで使用することができますが、アナライザで使用可能なプロパティとしてリストには表示されません。

以下はその例です。

<property name="Population" sourceProperty="City.Population"/>

内部プロパティ

各レベルに対して、DeepSee は自動的に一連の内部プロパティも定義します。これらのプロパティは、"DeepSee MDX リファレンス" を参照してください。

<listing>

キューブは、ゼロ個以上の名前付きリストを含むことができます。これらは、アナライザで使用できます。

キューブの既定のリストは、<cube> 要素の defaultListing 属性 (指定されている場合) か、<cube> に含まれる最初の <listing> 要素で指定されたリストです。

<listing> 要素には以下のコンテンツがあります。

属性 目的
namedisplayNamedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。
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 を拡張するクラスの名前を指定します。"DeepSee 実装ガイド" を参照してください。
sql このリストに対するカスタム SQL クエリ (存在する場合) を指定します。このドキュメント内で前述の “カスタム・リストの定義” を参照してください。
listingType (オプション) リストの形式を指定します。既定は、"table" です。この代わりに "map" を指定すると、マップタイプ・リストが表示されます。マップタイプ・リストではポイントが緯度と経度で示されるマップが表示されます。この場合は、リスト・クエリにフィールド Latitude および Longitude を含める必要があります (大文字と小文字は区別されます)。このドキュメント内で前述の “マップタイプ・リストの定義” を参照してください。
resource (オプション) このリストへのアクセスの制御に使用されるリソースの名前。"DeepSee 実装ガイド" を参照してください。

リストには、ソースに応じて、以下の 3 種類があります。

  • 基本リスト。キューブで使用されるソース・テーブルを直接使用します。

  • データ・コネクタ・リスト。データ・コネクタを使用します。

  • カスタム・リスト。カスタム・クエリを使用します。

いずれの場合も、システムでは SQL クエリが作成され、使用されます。

以下のテーブルは、各種のリストに指定される <listing> の属性を示しています。

リストの種類 fieldList orderBy sourceClass sql
基本 必須 オプション 指定しません。この属性は優先されます。 指定しません。この属性は優先されます。
データ・コネクタ オプション 無視 必須 無視
カスタム 無視 無視 指定しません。この属性は優先されます。 必須

<listingField>

キューブでは、エンド・ユーザがアナライザでカスタム・リストを作成することを可能にするリスト・フィールドをゼロ個以上定義できます ("DeepSee アナライザの使用法" の “カスタム・リストの作成” を参照してください)。

Note:

DeepSee では、もう 1 つの種類のカスタム・リスト (キューブの必ずしもソース・テーブルを使用するとは限らないリスト) がサポートされています。“リストの定義” の章の “カスタム・リストの定義” を参照してください。

<listingField> 要素には以下のコンテンツがあります。

属性 目的
namedisplayNamedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。
fieldExpression ソース・テーブルのフィールドまたは (矢印構文などを使用して) 関連テーブルのフィールドを参照する SQL 式。displayName を指定する場合、SQL 式内でエイリアスを指定しないでください。これに反して、SQL 式内でエイリアスを指定した場合、displayName は無視され、フィールド名をローカライズできません。詳細は、このドキュメントで前述した “リスト・フィールドの作成” を参照してください。
resource (オプション) このリスト・フィールドへのアクセスの制御に使用されるリソースの名前。"DeepSee 実装ガイド" を参照してください。

以下はその例です。

<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 ディメンジョンの redyellow、および blue のメンバを結合する Primary Colors メンバを作成できます。

    この新しい Primary Colors メンバは、redyellow、および blue のメンバに対応するファクト・テーブルのすべてのレコードを参照します。

MDX では、メジャーはメンバと見なされます。これが、両方の種類の計算要素が計算メンバであると見なされる理由です。

Note:

現在、この要素を使用してメジャーを定義する際に MDX シェルの cube コマンドではこのメジャーがリストされません。ただし、MDX シェルまたはクエリ API のセットは使用できます。

<calculatedMember> 要素には以下のコンテンツがあります。

属性 目的
namedisplayNamedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。name 属性について、DeepSee では名前が既に使用されているかどうかのチェックが行われません。同じディメンジョンの別メンバが既に使用している名前を使用すると、そのメンバがオーバーライドされます。
dimension このメンバが属するディメンジョン。
valueExpression 他のメンバへの参照に関連してこのメンバの値を定義する MDX 式。単純で一般的なシナリオについては、"DeepSee アナライザの使用法" の “計算要素の定義” を参照してください。詳細と例は、"DeepSee 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 シェル内でのみ有効です。

"DeepSee MDX リファレンス" を参照してください。

<namedSet>

キューブは、ゼロ個以上の名前付きセットを含むことができます。名前付きセットは、メンバ、またはメンバのセットのエイリアスです。名前付きセットは、クエリの行や列で使用でき、クエリの実行時に DeepSee によってメンバまたはセットに置換されます。

Note:

名前付きセットを定義する際、MDX シェルの cube コマンドではこのセットがリストされません。ただし、MDX シェルまたはクエリ API のセットは使用できます。

<namedSet> 要素には以下のコンテンツがあります。

属性 目的
namedisplayNamedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。name 属性について、DeepSee では名前が既に使用されているかどうかのチェックが行われません。別の名前付きセットが既に使用している名前を使用すると、その名前付きセットがオーバーライドされます。
setExpression メンバまたはメンバのセットを返す MDX 式。詳細と例は、"DeepSee MDX リファレンス" を参照してください。

以下はその例です。

<namedSet name="SampleSet" setExpression="[homed].[h1].[city].MEMBERS" />
Note:

上記以外に、名前付きセットは以下の 2 つの方法でも定義できます。

  • MDX クエリでの WITH 節の使用。

  • CREATE SET 文の中。

"DeepSee MDX リファレンス" を参照してください。

<relationship>

あるキューブから別のキューブへの単方向リレーションシップを定義するには、最初のキューブで <relationship> 要素を定義します。

双方向リレーションシップを定義するには、各キューブに 1 つずつ、計 2 つの補完的な <relationship> 要素を定義します。

<relationship> 要素には以下の属性があります。

属性 目的
name リレーションシップの名前。他のキューブのレベルを使用するには、MDX クエリでこの論理名を使用します。通常、これは他のキューブの名前です。
displayNamedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。
relatedCube 他方のキューブの論理名。
inverse 他方のキューブの <relationship> 要素内の name 属性の値。
cardinality リレーションシップのカーディナリティ。
sourceProperty "DeepSee 上級モデリング・ガイド" の “キューブ間のリレーションシップの定義” で “単方向リレーションシップの定義” および “双方向リレーションシップの定義” を参照してください。
sourceExpression
 
nullReplacement (オプション) このリレーションシップのソース・データが NULL の場合に、メンバ名として使用する文字列を指定します。例えば、nullReplacement="No City" と指定します。この属性は、sourceProperty または sourceExpression を指定する <relationship> 内で指定します。
factName

(オプション) (ファクト・テーブルで) リレーションシップに対応する列に使用される名前。この属性が NULL の場合はシステムによって名前が生成されます。

<measure>factName の説明を参照してください。

linkClasslinkProperty 使用しません。これらは無視されます。
dependsOn (オプション) このリレーションシップが依存関係を持つリレーションシップを指定します。リレーションシップの論理名を指定します。“異なる階層に含まれるレベル間での依存関係の定義” を参照してください。(または、リレーションシップがレベルに依存する場合は、そのレベルの MDX 識別子を指定します)。

この属性は、DependsOn コンパイラ・キーワードとはまったく関係ありません。

Important:

キューブ・クラスをコンパイルする際は、独立キューブを最初にコンパイルします。これはリレーションシップのソース・プロパティまたはソース式を定義しないキューブです。コンパイル順序を制御するには、依存キューブのクラス定義で DependsOn キーワードを指定します。

同様に、独立キューブを最初に構築する必要があります。DependsOn キーワードはキューブの構築順に影響しません。

以下のテーブルは、各シナリオで指定するキーワードをまとめたものです。

属性 単方向リレーションシップ 双方向リレーションシップ
inverse これを省略します。 双方のキューブでこれを指定します。
cardinality "one" を使用します。
  • 依存キューブでは "one" を使用します。

  • 独立キューブでは "many" を使用します。

sourceProperty または sourceExpression 通常どおり指定します。 依存キューブのみに適用できます。
factName 通常どおり指定します。 依存キューブのみに適用できます。他方のキューブでは無視されます。

例は、"DeepSee 上級モデリング・ガイド" の “キューブ間のリレーションシップの定義” を参照してください。

<expression>

<expression> 要素は、ソース・テーブルの各行に対する値を持つオプションの式を定義します。キューブは任意の数の式を持つことができます。

<expression> 要素には以下のコンテンツがあります。

属性 目的
namedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。
sourcePropertysourceExpression "DeepSee 上級モデリング・ガイド" を参照してください。
displayNamefactNamelinkClasslinkProperty これらの属性は指定しないでください。

<index>

<index> 要素は、ファクト・テーブルに追加するオプションのカスタム・インデックスを指定します。DeepSee はこのインデックスを使用しません (必要なインデックスは自動的に追加されるため)。

カスタム・インデックスは、SQL を介してファクト・テーブルにアクセスする計画がある場合に追加できます。<index> 要素には以下のコンテンツがあります。

属性 目的
namedisplayNamedescriptiondisabled この付録で前述の “キューブの共通属性” を参照してください。
type インデックスのタイプを指定します。"bitmap""bitslice""index"、または "key" を使用します。
properties インデックスの基とするファクト・テーブルのフィールドを指定します。ファクト・テーブル・クラスのプロパティのコンマ区切りリストを指定します。

以下はその例です。

<index name="IndexName" type="bitmap"  properties="MxAge,DxGender"/>
Tip:

ほとんどのレベルおよびメジャーで、factName 属性を指定して、生成されたファクト・テーブル・クラスのプロパティ名を制御できることを覚えておいてください。

FeedbackOpens in a new tab