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