ルール・ファイルを使用したレコード、フィールドおよびデータへの操作の実行

この項の内容:

レコード上での操作の実行

フィールドに対する操作の実行

データに対する操作の実行

関連項目:

レコード上での操作の実行

レコード・レベルで操作を実行できます。たとえば、特定のレコードをデータベースにロードする前に除外できます。次の項を参照してください。

レコードの選択

選択条件を設定して、Essbaseでデータベースにロードするレコードや、次元の構築に使用するレコードを指定できます。選択条件は文字列と数値の条件です。Essbaseでレコードをロードするためには、レコード内の1つ以上のフィールドがこの条件を満たしている必要があります。レコード内に選択条件を満たさないフィールドが1つでもある場合、そのレコードはEssbaseでロードされません。選択条件は1つ以上定義できます。たとえば、データ・ソースから2003年の予算データのみをロードする場合、最初のフィールドがBudgetで、2番目のフィールドが2003であるレコードのみをロードする選択条件を作成します。複数のフィールドに対して選択条件を定義する場合は、Essbaseでの条件の組合せを指定できます。複数の選択条件および除外条件の結合を参照してください。

  レコードを選択する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「レコードの選択」を参照してください。

レコードの除外

除外条件を設定することにより、Essbaseで無視されるレコードを指定できます。除外条件は文字列と数値の条件で、レコード内の1つ以上のフィールドがこの条件を満たしていると、Essbaseでそのレコードは除外されます。選択条件は1つ以上定義できます。レコード内にこの除外条件を満たすフィールドがなければ、Essbaseでそのレコードはロードされます。たとえば、データ・ソースから実績データを除外して予測データのみをロードする場合、最初のフィールドがActualのレコードを除外するような除外条件を作成します。

  レコードを除外する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「レコードの除外」を参照してください。

複数の選択条件および除外条件の結合

複数のフィールドに選択条件や除外条件を定義するときは、Essbaseで、これらのフィールドにおけるルールの組合せ方(条件に論理演算子ANDとORのどちらを関連付けるか)を指定できます。ブール・グループからANDを選択した場合、フィールドはすべての条件を満たす必要があります。ORを選択した場合、フィールドはいずれか1つの条件を満たしていればよいことになります。グローバルなブール設定は、ルール・ファイル内のデータ・ロード・フィールドと次元構築フィールドのすべての選択条件または除外条件に適用されます。

注:

選択条件と除外条件が同じレコードに適用されると(1つのレコードに対して選択条件と除外条件の両方を定義した場合)、そのレコードは除外されます。

  複数のフィールドの選択条件と除外条件を組み合せる方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「選択条件や除外条件の結合」を参照してください。

表示するレコードの設定

データ準備エディタで、Essbaseに表示されるレコードの数と最初のレコードを指定できます。最初のレコードを指定すると、Essbaseではそれより前のレコードはすべてスキップされます。たとえば、開始レコードとして5と指定した場合、レコード1から4までは表示されません。

注:

Essbaseでは、スキップするレコードをカウントする際、ヘッダー・レコードがデータ・レコードと同様に扱われます。

  表示するレコードの設定方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の、レコード表示の設定に関する項を参照してください。

ヘッダー・レコードの定義

データ・ソースには、次の項目を含めることができます:

  • データ・レコード: メンバー・フィールドとデータ・フィールドが含まれるレコード

  • ヘッダー・レコード: データ・ソースのコンテンツとデータ・ソースからデータベースに値をロードする方法が記述されたレコード

ルール・ファイルには、データ・ソースのデータを変換してデータベースにマッピングするレコードが含まれます。その情報の一部として、ルール・ファイルにはヘッダー・レコードも含まれます。たとえば、Sample.Basicデータベースには年次元があります。異なる地区から月番号付きの複数のデータ・ソースが届く場合、月自体はデータ・ソース内に指定されていない可能性があります。月を指定するには、ヘッダー情報を設定する必要があります。

ヘッダー・レコードは、次のいずれかの方法で作成できます:

  • ルール・ファイル内にヘッダー情報を定義します。

    ルール・ファイルのヘッダーは、データのロード中または次元の構築中にのみ使用され、これによってデータ・ソースが変更されることはありません。ルール・ファイル内に設定されたヘッダー情報は、ルール・ファイルでデータ・ソース内のヘッダー・レコードを同時に指している場合は使用されません。

  • データ・ソース内にヘッダー情報を定義し、ルール・ファイル内でヘッダー・レコードを指します。

    データ・ソース内にヘッダー情報を配置すると、フォーマットの異なる複数のデータ・ソースに対して同じルール・ファイルを使用できます。データ・ソースのフォーマットは、ルール・ファイル内ではなく、データ・ソース・ヘッダー内で指定されるためです。

    データ・ソースに1つ以上のヘッダーを追加するときは、ルール・ファイルにデータ・ソース内のヘッダーの位置も指定する必要があります。ルール・ファイルを使用して、ヘッダー情報をデータ・レコードではなくヘッダー・レコードとして読み取るようにEssbaseに指示します。各ヘッダー・レコード内のヘッダー情報のタイプも指定できます。

    データ・ソース内で定義されているヘッダー情報は、ルール・ファイル内で定義されているヘッダー情報よりも優先されます。

  ルール・ファイルにヘッダーを定義する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の、ルール・ファイルのデータ・ソース・メンバーの指定に関する項を参照してください。

  データ・ソース内にヘッダーを定義する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「データ・ソースのヘッダーの設定」を参照してください。

データ・ソース・ヘッダー

ヘッダー情報をデータ・ソースの先頭レコードに追加し、ルール・ファイルでヘッダー・レコードの場所を指定して、次元を動的に構築できます。

ヘッダー・レコードには、各フィールドのフィールド定義が並んでいます。フィールド定義には、フィールドのタイプ、フィールド番号、フィールドのロード先の次元名が含まれます。図65に、ヘッダー・レコードのフォーマットを示します:

図 65. 3つのフィールド定義を有するヘッダー・レコード

この図は、3つのフィールド定義Gen2,Product、Gen3,Product、Gen4,Productを有するヘッダー・レコードを示しています。

ファイル区切り記号がカンマの場合、各フィールド定義を引用符(" ")で囲みます。

データ・ソース内にヘッダー情報を設定した後、ルール・ファイル内にヘッダー情報の場所を指定する必要があります。ルール・ファイルがデータ・ソース内のヘッダー情報を参照している場合は、Essbaseではフィールドのタイプと次元を決定する際、ルール・ファイル内の情報ではなくデータ・ソース内の情報が使用されます。

有効なデータ・ソース・ヘッダー・フィールド・タイプ

次の有効なフィールド・タイプは、大文字で記述する必要があります:

  • GEN、DUPGENおよびDUPGENALIAS

  • LEVEL、DUPLEVELおよびDUPLEVELALIAS

  • PARENT、CHILD

  • PROPERTY

  • ALIAS

  • FORMULA

  • CURNAME

  • CURCAT

  • UDA

  • ATTRPARENT

  • 属性次元の名前(CAFFEINATEDなど)

設定するフィールド・タイプごとにフィールド番号が必要です。フィールド・タイプが属性次元の名前である場合、9より大きいフィールド番号は使用できません。フィールド・タイプ情報の設定を参照してください。

フィールドに対する操作の実行

フィールド・レベルで操作を実行できます。たとえば、レコード内の新しい位置にフィールドを移動できます。次の項を参照してください。

フィールドの無視

データ・ソースの指定した列のすべてのフィールドを無視できます。フィールドはデータ・ソース内に存在しますが、Essbaseデータベースにはロードされません。たとえば、Sample.Basicデータベースには5つの標準次元(年、製品、市場、メジャーおよびシナリオ)があります。データ・ソース内にこのいずれかの次元のメンバーでない追加フィールド(Salespersonフィールドなど)があった場合、そのフィールドを認識しないようにEssbaseに指示できます。

  ある列内のすべてのフィールドを無視する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「フィールドの無視」を参照してください。

文字列の無視

トークンと呼ばれるある文字列に一致するデータ・ソース内の任意のフィールドを無視できます。文字列の値に基づいてフィールドを無視するように設定した場合、そのフィールドは、特定の列内に限らず、データ・ソース内のどこにあっても無視されます。たとえば、データ・ソースがコンピュータによって生成されたテキスト・フォーマットのレポートである場合、ページ間の水平線や見出しの囲み枠が、特別なASCII文字で生成されていることがあります。こうした特別なASCII文字をトークンとして定義し、無視する対象に指定できます。

  文字列のすべてのインスタンスを無視する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「文字列の一致に基づいたフィールドの無視」を参照してください。

フィールドの整列

ルール・ファイル内のフィールドの順序を、データ・ソース内のフィールドの順序と異なるように設定できます。データ・ソースは変更されません。次の項を参照してください。

フィールドの移動

ルール・ファイルを使用して、フィールドを別の場所に移動できます。たとえば、データ・ソース内の最初のフィールドがデータ・ロード時または次元構築時に3番目のフィールドになるように指定できます。

フィールドを移動すると、フィールドがマージされたように見える場合があります。たとえば次のように、空のセルが含まれるフィールドをレコードの最終フィールドの位置に移動した場合、このフィールドはその左のフィールドにマージされます。

      1<tab>2<tab>3
1<tab>2<tab>(null)
   

マージされないようにする場合は、空のセルを区切り記号に置き換えます。

  フィールドを移動する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「フィールドの移動」を参照してください。

フィールドの結合

複数のフィールドを1つのフィールドに結合できます。新しいフィールドには、結合された最初のフィールドの名前が付けられます。たとえば、データ・ソースに製品番号フィールド(100)と製品ファミリ・フィールド(-10)がある場合、これらのフィールドをSample.Basicデータベースにロードする前に結合する必要があります(100-10)。

フィールドを結合する前に、結合する順にフィールドの位置を移動します。Oracle Essbase Administration Services Online Helpの「フィールドの移動」を参照してください。

  フィールドを結合する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「フィールドの結合」を参照してください。

フィールド結合によるフィールドの作成

結合されたフィールドを新しいフィールド内に配置して、フィールドを結合できます。この方法では、元のフィールドは変更されません。フィールドの作成は、データ・ソースのフィールドを連結してメンバーを作成する必要がある場合に便利です。

たとえば、データ・ソースに製品番号フィールド(100)と製品ファミリ・フィールド(-10)がある場合、これらのフィールドをSample.Basicデータベースにロードする前に結合する必要があります(100-10)。ただし、データ・ソース内の2つの既存フィールドを維持する場合は、結合を使用してフィールドを作成できます(100-10)。この場合、データ・ソースは、100、-10、100-10の3つのフィールドで構成されることになります。

フィールドを結合する前に、結合する順にフィールドの位置を移動します。Oracle Essbase Administration Services Online Helpの「フィールドの移動」を参照してください。

  既存のフィールドを結合してフィールドを作成する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「結合を使用したフィールドの作成」を参照してください。

フィールドのコピー

元のフィールドを変更しないで、フィールドのコピーを作成できます。たとえば、1回の次元構築で、マルチレベルの属性次元を定義し、属性に基本次元のメンバーを関連付ける場合、フィールドの一部をコピーします。マルチレベルの属性次元の扱いを参照してください。

  フィールドをコピーするには、1つのフィールドを選択し、結合を使用して新しいフィールドを作成します。『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「結合を使用したフィールドの作成」を参照してください。

フィールドの分割

1つのフィールドを2つに分割できます。たとえば、Sample.Basicデータベースのデータ・ソースに、UPC100-10-1という値が含まれているフィールドがある場合、フィールドからUPCを分割して無視できます。その後、製品番号の100-10-1のみがロードされます。

  フィールドを分割する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「フィールドの分割」を参照してください。

追加のテキスト・フィールドの作成

2つのフィールド間にテキスト・フィールドを1つ作成できます。結合するフィールド間にテキストを挿入するテキスト・フィールドも作成できます。たとえば、あるフィールドに100、別のフィールドに10-1というデータが含まれる場合、この2つのフィールドの間にダッシュが含まれるテキスト・フィールドを挿入し、3つのフィールドを結合して、製品次元の100-10-1メンバーを作成できます。

  フィールドを作成し、テキストを取り込む方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の、テキストを使用したフィールドの作成に関する項を参照してください。

フィールド操作を元に戻す

「元に戻す」コマンドを使用して(「編集」から「元に戻す」を選択)、最後に実行したフィールド操作(移動、分割、結合、テキストを使用した作成、結合を使用した作成など)を元に戻すことができます。フィールド操作を元に戻す処理は、他のアクションを実行した場合でも可能です。フィールド操作を元に戻す処理は、最後に実行した操作から順番に行われます。

  1つ以上のフィールド操作を元に戻す方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「フィールド操作を元に戻す」を参照してください。

フィールドのマッピング

この項の内容は、データ・ロードのみに適用されます。次元構築を実行する場合、この項はスキップします。

ルール・ファイルを使用して、データ・ロードの際にデータ・ソースのフィールドをEssbaseメンバー名にマッピングできます。データ・ソース内のどのフィールドをEssbaseデータベース内のどのメンバーまたはメンバーの組合せにマッピングするかを指定することによって、データ・ロード時に、データ・ソース内のフィールドを直接Essbaseデータベース内のフィールドにマッピングできます。データ・ソースは変更されません。

注:

SQLデータ・ソースを開くと、フィールドにはデフォルトでSQLデータ・ソース列の名前が入ります。SQL列の名前とEssbaseの次元名が同じである場合、列名をマッピングする必要はありません。

  フィールドをマッピングする方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「フィールド名のマッピング」を参照してください。

フィールド名の変更

データ・ソースをロードするには、データ・ソースのフィールドをデータベースの次元およびメンバーにマッピングする方法を指定する必要があります。ルール・ファイルでは、データ・ソースのロードのたびに、データ・ソースのフィールドがメンバー名と一致するようにフィールドを変換できます。この処理では、データ・ソースは変更されません。

ルール・ファイルの機能は次のとおりです:

  • データ・ソースのメンバー・フィールドを、データベースの次元およびメンバーにマッピングします

  • データ・ソースのデータ・フィールドを、データベースのメンバー名またはメンバーの組合せ(Jan、Actualなど)にマッピングします

次の項を参照してください。

テキスト文字列の置換

データ・ロード時または次元構築時に、フィールドがEssbaseのメンバー名にマッピングされるように、テキスト文字列を置換できます。データ・ソースは変更されません。たとえば、データ・ソースでNew YorkがNYのように省略される場合、ルール・ファイルを使用してNYをNew Yorkで置換できます。

  テキスト文字列を置換する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「フィールド名の置換」を参照してください。

空のフィールドへのテキストの配置

列内の空のフィールドをテキストで置換できます。たとえば、列内の空フィールドがデフォルト値を表す場合、デフォルト値を挿入するか、#MIを挿入して欠落値を表すことができます。

  空のフィールドをテキストで置換する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の、空のフィールドへのテキストの配置に関する項を参照してください。

フィールドの大文字と小文字の変更

データ・ロード時または次元構築時に、フィールドがEssbaseのメンバー名にマッピングされるようにフィールドの大文字と小文字を変更できます。データ・ソースは変更されません。たとえば、データベースではjanのように小文字表記のフィールドが、データ・ソースでJANのように大文字表記される場合、ルール・ファイルを使用してフィールドを小文字に変更できます。

  フィールド内の値の大文字と小文字を変更する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「フィールドの大文字と小文字の変更」を参照してください。

先頭および末尾のスペースの削除

データ・ソースのフィールドから先頭スペースや末尾スペースを削除できます。先頭スペースや末尾スペースが含まれるフィールド値は、スペースに囲まれた名前部分が完全に一致していても、メンバー名にマッピングされません。

デフォルトでは、Essbaseでは、先頭および末尾のスペースが削除されます。

  フィールドを囲むスペースを削除する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「フィールドの前後のスペースの削除」を参照してください。

スペースからアンダースコアへの変換

データ・ソースのフィールドにスペースがある場合は、そのスペースをアンダースコアに変換して、そのフィールド値をデータベースのメンバー名と突き合せることができます。

  スペースをアンダースコアに変更する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「スペースからアンダースコアへの変換」を参照してください。

フィールド値への接頭辞または接尾辞の追加

データ・ソースの各フィールド値に接頭辞や接尾辞を追加できます。たとえば、2002を年次元のすべてのメンバー名に接頭辞として追加できます。

  フィールドに接頭辞または接尾辞を追加する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「接頭辞および接尾辞の追加」を参照してください。

データに対する操作の実行

この項の内容は、データ・ロードのみに適用されます。次元構築を実行する場合、この項はスキップします。

フィールド内のデータを操作できます。たとえば、レコード内の新しい位置にフィールドを移動できます。次の項を参照してください。

データ・フィールドとしての列の定義

この項の内容は、データ・ロードのみに適用されます。次元構築を実行する場合、この項はスキップします。

データ・ソースの各レコードに、各次元を表す列と1つのデータ列が含まれている場合は、次の例のように、データ列をデータ・フィールドとして定義する必要があります:

      
Market, Product, Year, Measures, Scenario
Texas   100-10   Jan   Sales     Actual    42
Texas   100-20   Jan   Sales     Actual    82
Texas   100-10   Jan   Sales     Actual    37
   

レコードでデータ・フィールドとして定義可能なフィールドは1つのみです。

  データ・フィールドを定義するには、『Oracle Essbase Administration Servicesオンライン・ヘルプ』のデータ・フィールドとしての列の定義に関する項を参照してください。

既存値に対する加算および減算

この項はデータ・ロードのみに適用されます。次元構築を実行する場合、この項はスキップします。

Essbaseのデフォルトでは、データベースの既存値は、データ・ソースの値で上書きされますが、新しくロードされたデータ値が既存のデータ値にどのような影響を与えるかはユーザーが決定できます。

入力データ値を使用して、データベースの既存の値に対して加算または減算を実行できます。たとえば、週の値をロードした場合、これらの値を加算することにより、データベース内で月の値を生成できます。

このオプションを使用すると、データのロード中にデータベースがクラッシュした場合、Essbaseによってアプリケーション・ログに最後にコミットされた行の番号が記録されていても、通常よりもリカバリが困難になります。アプリケーション・ログのコンテンツを参照してください。

ブロック・ストレージ・データベースに対して、「行のコミット」データベース・トランザクション・オプションを0に設定して、リカバリが困難になるのを防ぎます。そうすると、Essbaseでは、ロード全体が単一のトランザクションと見なされるようになり、ロードが完了したときにのみデータがコミットされます。分離レベルの理解を参照してください。

管理サービス・コンソールを使用すると、ブロック・ストレージ・データベースおよび集約ストレージ・データベースに対して既存の値の加算および減算が可能です。MaxLを使用すると、集約ストレージ・データベースに対してのみ、既存の値の加算および減算が可能です。

  既存のデータ値の加算または減算を行うには、次のツールを使用します:

ツール

トピック

場所

Administration Services

データ値への加算

データ値からの減算

Oracle Essbase Administration Services Online Help

MaxL

import data (集約ストレージ)

『Oracle Essbaseテクニカル・リファレンス』

既存のデータ値の消去

この項はデータ・ロードのみに適用されます。次元構築を実行する場合、この項はスキップします。

新しい値をロードする前に、既存のデータ値をデータベースから消去できます。Essbaseのデフォルトでは、データベースの既存の値がデータ・ソースの新しい値で上書きされます。ただし、Essbaseでは、データ値を加算する場合は新しいデータ値が既存の値に加算され、データ値を減算する場合は既存の値から新しい値が減算されます。

新しい値を加算または減算する前に、既存の値が正しいことを確認します。最初の値セットをデータベースにロードする前に、既存の値がないことを確認します。

たとえば、1月の各週のSalesを加算することによって、1月の月間Salesを計算する場合を考えてみます:

      January Sales = Week 1 Sales + Week 2 Sales + Week 3 Sales + Week 4 Sales
   

Week 1 Salesをロードすると、January Monthly Salesのデータベース値は消去されます。既存の値がある場合、Essbaseにより次の計算が行われます:

      January Sales = Existing Value + Week 1 Sales + Week 2 Sales + Week 3 Sales + Week 4 Sales
   

データ・ロードの対象にならないフィールドからデータを消去することもできます。たとえば、データ・ソースにJanuary、FebruaryおよびMarchのデータが含まれていて、Marchのデータのみをロードする場合、JanuaryとFebruaryのデータを消去できます。

  既存の値を消去する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「既存のデータ値の消去」を参照してください。

注:

透過パーティションを使用している場合に値を消去する手順は、ローカル・データベースのデータを消去する場合とまったく同じです。

すべてのデータの置換

この項の内容は、集約ストレージ・データベースにデータをロードする場合のみに適用されます。ブロック・ストレージ・データベースにデータをロードする場合や次元構築を実行する場合、この項はスキップします。

集約ストレージ・データベースの場合、Essbaseではデータベース内のすべてのデータ、またはデータベース内の各増分データ・スライス内のすべてのデータを削除した後、指定したデータ・ロード・バッファのコンテンツでデータを置換できます。この機能は、完全に再ロードできるくらい小さいデータ・セットを操作している場合や、更新されない大きい静的データ・セットと変更の追跡が必要な小さい揮発性のデータ・セットに分割可能なデータを操作している場合によく使用します。

すべてのデータを置換する方法については、データベースまたは増分データ・スライスのコンテンツの置換およびOracle Essbase Administration Services Online Helpの「集約ストレージ・データベースのコンテンツの置換」を参照してください。

データ値のスケーリング

この項はデータ・ロードのみに適用されます。次元構築を実行する場合、この項はスキップします。

データ・ソースのデータ値が、データベースのデータ値と同じスケールでない場合、そのデータ値をスケーリングできます。

たとえば、売上高の実際の値が$5,460であるとします。Salesデータ・ソースが値を100単位で追跡する場合、値は54.6になります。Essbaseデータベースが実際の値を追跡する場合、Salesデータ・ソースから取得した値(54.6)に100を乗算して、Essbaseデータベースに正しい値(5460)が表示されるようにします。

  データ値をスケーリングする方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「データ値のスケーリング」を参照してください。

フィールド符号の反転

この項はデータ・ロードのみに適用されます。次元構築を実行する場合、この項はスキップします。

符号を反転することにより、データ・フィールドの値をリバース(反転)できます。符号の反転は、アウトラインのUDAに基づきます。たとえば、データを会計次元にロードするとき、勘定科目メンバーにExpenseのUDAが含まれるレコードのプラス符号がマイナス符号に変更されるように指定できます。UDAの作成を参照してください。

  フィールドの符号を反転する方法については、『Oracle Essbase Administration Servicesオンライン・ヘルプ』の「符号の反転」を参照してください。