テキスト・メジャーおよび日付メジャーに対するデータベース操作
日付メジャーを持つEssbaseキューブで実行する一般的な操作は、他のキューブの場合と同様です。テキストおよび日付値をロード、クリアおよびエクスポートできます。ランキングは集計できます。MDX、Smart View、レポート・ライターまたはその他のグリッド・クライアントでデータを問い合せることができます。
テキスト・メジャーおよび日付メジャーを使用すると、次の一般的なデータベース操作を実行できます。
テキスト・メジャーと日付メジャーのロード、クリアおよびエクスポート
Essbase型付きメジャー値を任意のレベルでBSOキューブにロードするか、入力レベルでASOキューブにロードします。ASOの場合、置換オプションを指定して単一のロード・バッファをコミットすることをお薦めします。#Txt:
マーカーを接頭辞として付けることで、テキストまたは日付値とメンバー名を区別することが必要になる場合があります。
データをテキスト・メジャーまたは日付メジャーにロードするには、数値メジャーを持つメンバーにデータをロードする場合と同じ手順に従います。入力データには、フォーマットされた日付値、またはテキスト・メジャーに関連付けられているテキスト・リスト・オブジェクトに対応するテキスト値を含める必要があります。
そのメンバーに関連付けられているテキスト・リスト・オブジェクトに存在しないテキスト値をロードしようとすると、Essbaseで警告メッセージが発行されます。
集約ストレージ(ASO)キューブでは、値は入力レベルでのみロードできます。この制限は、テキスト・メジャーと日付メジャーに同様に適用されます。ブロック・ストレージ(BSO)キューブでは、テキスト値と日付値はどのレベルでもロードできます。
テキスト値または日付値のクリア、ロックして送信、およびエクスポートは、数値に対してこれらの操作を実行するのと同様に実行できます。
データ・エクスポートおよびフリーフォーム・データ・インポートでのテキスト・メジャーのフォーマット
#Txt:
で接頭辞を付け、接頭辞とテキスト値を二重引用符で囲むことが(例: "#Txt:Highly Satisfied"
)必要になることがあります。
ノート:
接頭辞を含め文字列全体を引用符で囲む必要があります。次に、フリーフォーム・データ・ロード・ファイルのデータ行の例を示します。また、集約ストレージ・キューブからテキスト・メジャーが含まれたデータをエクスポートするときに、どのようにデータ・エクスポート・ファイルをフォーマットするかについても示します。
"100-10" "New York" "Cust Index" "#Txt:Highly Satisfied"
テキスト値のHighly Satisfied
はテキスト・リスト・オブジェクトの名前で、メンバー名(「New York」など)と区別するために、先頭にマーカーの#Txt:
が追加されています。
#Txt:
接頭辞は、日付メジャー、#Missing値および#OutOfRangeになる値のロード時に適用できます。
エクスポートされたテキスト・メジャーは、エキスポート・ファイルでは、テキスト・リスト・オブジェクト名の前に付加される接頭辞としての#Txt:
でマークされています。次に例を示します。
"100-10" "New York" "Cust Index" "#Txt:Highly Satisfied"
ルール・ファイルなしでフリーフォーム・データ・ロードを使用してキューブにテキスト・メジャーを再インポートするときには、テキスト・リスト・オブジェクト名とその他のデータを区別するために、#Txt:
マーカーが必要になります。
テキスト値および日付値のロードに関する集約ストレージの追加のガイドライン
集約ストレージ・キューブにテキスト値および日付値をロードする際は、次のガイドラインを使用します。これらのガイドラインは、無効な集約の排除に役立ちます。
-
入力レベルで値をロードします。
-
ロード・バッファのコミット時に置換モードを使用します。
バッファをコミットするときに置換モードを設定するには、MaxLで、import data文のoverride values構文を使用します。REST APIでは、ジョブの実行にasoBufferCommit jobTypeを使用し、バッファのコミット時にtermOptionをINCR_TO_NEW_SLICE (または1)として指定します(詳細は、REST APIドキュメントのバッファの作成エンドポイントも参照してください)。Essbase Java APIでは、IEssCube.loadBufferTermメソッドのcommitTypeパラメータを使用します。C APIでは、EssLoadBufferTerm関数のulCommitTypeフィールドを使用します。
-
単一のロード・バッファを使用して、日付/テキスト・メジャーに関連付けられているすべての値をロードします。
-
無効な集約を排除するために、ロード・バッファの初期化時に重複する集約方法を"use last"に設定します。
注意:
aggregate_use_lastメソッドはパフォーマンスに重大な影響を与え、大規模なデータ・ロードのためのものではありません。データ・ロードが100万セルを超える場合、数値データを(型付きメジャー・データとは)別のデータ・ロード・プロセスに分割することを検討してください。この個別データ・ロードでは、かわりにaggregate_sumを使用できます。
MaxLで"use last"オプションを指定するには、alter database文のinitialize load_buffer句の一部であるPROPSターミナルを参照してください。REST APIで、バッファの初期化時にduplicateAggregationMethodをUSE_LASTとして指定します(REST APIドキュメントのバッファの作成エンドポイントを参照してください)。Essbase Java APIでは、IEssCube.loadBufferInitメソッドのduplicateAggregationMethodパラメータを使用します。C APIでは、EssLoadBufferInit関数のulDuplicateAggregationMethodフィールドを使用します。
-
#MISSING値を増分データ・ロード・モードでテキスト/日付メジャーにロードしないようにします。#MISSING値を増分ロードでMissing以外の値を持つセルにロードすると、ゼロ値に置換されます。日付/テキスト・メジャーでは、ゼロ値は#MISSING値と同じ意味を持たないことがあります。#MISSING値を日付/テキスト・メジャーにロードする必要がある場合は、完全なデータ・ロードを使用します。
混在する(数値とテキストまたは日付)データをロードする場合は、数値データに対して置換モードが十分であることを確認するか、数値データ用に別のデータ・ロード・プロセスを作成します。
テキスト・メジャーおよび日付メジャーの集計要因
デフォルトでは、テキスト・メジャーに^演算子(集計しない)が割り当てられています。テキスト・メジャーおよび日付メジャーが、勘定科目以外のディメンションに沿って上位レベルのメンバーに集計されることはありません。メジャーをランキングに使用する場合は、Essbase BSOキューブでテキスト・メジャーを集計することが必要になる場合があります。
テキスト・メジャーまたは日付メジャーに^以外の演算子でタグ付けすると、他のディメンションに沿って、内部数値に基づいて集計されます。これは、集約ストレージ・キューブにはお薦めできません。集計にサポートされている演算子は+のみであり、テキスト・メジャーや日付メジャーに対する集約値には妥当性がほとんどないためです。また、Essbaseでは、集計中に範囲外の値は#OUTOFRANGEに変換されません。
ブロック・ストレージ・キューブの場合は、独自の方式でテキスト・メジャーを集計する計算スクリプトを記述できます。テキスト・メジャーがランキング・メジャーを表している場合は、そのメジャーを集計できます。たとえば、Excellent=5、Good=4、Fair=3、Poor=2、Bad=1などのマッピングが含まれている"CustomerSatisfaction"というテキスト・リストがあるとします。これらの値はレベル0でロードされます。子レベルで値を平均することによって、値を親レベルに集計できます。たとえば、[Qtr1]の"CustomerSatisfaction"の値は、[Jan]、[Feb]、[Mar]の値の平均です。
テキストおよび日付メジャーを使用したデータの問合せ
テキスト・メジャーまたは日付メジャーは、Smart View、MDX、レポート・ライターまたはEssbase Webインタフェースの分析ビューを使用して、数値メジャーと同じ方法で取得/問合せできます。適切なテキスト値またはフォーマットされた日付値を含む、対応するセルが表示されます。
たとえば、次のSmart Viewグリッドは、Facility Ratingキューブからのものです。これは、「すべてのファイル」→「ギャラリ」→「アプリケーション」→「Facility Rating」にある「ファイル」カタログからダウンロードできます。Answerメンバーは、Measuresディメンション内のテキスト・メジャーです。

MDX関数EnumValueと計算関数@ENUMVALUEは、テキスト・メジャーの数値を取得するように設計されています。こうした関数は、メンバーのテキスト値ではなく数値に基づいた演算が必要なときに、MDXスクリプト、計算スクリプトまたは式で役立ちます。
次に示すレポート・ライターのコマンドは、数値を操作するように設計されていて、テキストまたは日付のメジャーはサポートしていません。
-
RESTRICT
-
TOP
-
BOTTOM
-
SORT*コマンド
-
CALCULATE COLUMN
-
CALCULATE ROW
テキスト・メジャーおよび日付メジャーの制約事項
テキスト・リスト・オブジェクトを更新する場合は、Essbaseアウトラインの再構築による潜在的な影響を回避するために、アイテムを上部または下部に追加します。共有メンバーは、プロトタイプ・メンバーと同じテキスト型または日付型を持ちます。
アウトラインの再構築では、テキスト・リストは再構築されません。テキスト・リスト内の数値からテキスト値へのマッピングが変更された場合、そのテキスト・リストの変更は、データベース内にすでに存在するテキスト・データに反映されます。したがって、テキスト・リストにアイテムを追加する場合は、既存のテキスト・リストのアイテムのマッピング数が変更されないように、リストの一番上または一番下に追加します。
テキスト・メジャーおよび日付メジャーは、パーティション間ではサポートされていません。
共有メンバーおよび暗黙的な共有メンバーは、プロトタイプ・メンバーのテキスト型または日付型を継承します。