この項の内容:
この章の情報は、ブロック・ストレージ・データベースおよび集約ストレージ・データベースに適用されます。集約ストレージ・データベースではいくつかのルール・ファイル・オプションとデータ・ソースの要件が異なるため、集約ストレージ・データベースの準備も参照してください。
Essbaseデータベースにデータ値や次元およびメンバーをロードするには:
ルール・ファイルを使用しない場合は、Essbaseの外部のデータ・ソースを設定する必要があります。データ・ソースを参照してください。
ルール・ファイルを参照してください。
データ・ロードまたは次元構築の実行およびデバッグ。を参照してください。
データ・ソースには、Essbaseデータベースにロードする情報が含まれています。データ・ソースに含まれる情報は、次のとおりです:
データ値
メンバー情報(メンバー名、メンバーの別名、式、集計プロパティなど)
世代名とレベル名
通貨名とカテゴリ
データ・ストレージ・プロパティ
属性
UDA
次の項では、各種のデータ・ソースの構成要素について説明します。
Essbaseでは、次のデータ・ソース・タイプがサポートされます:
Essbaseでスプレッドシート・ファイルを使用してデータのロードやアウトラインの構築を行うには、使用するツールにかかわらず、スプレッドシート・ファイルがWindowsコンピュータ上に置かれている必要があります。UNIXコンピュータ上のスプレッドシート・ファイルや、FTP経由でUNIXコンピュータに転送されたスプレッドシート・ファイルはサポートされません。Essbase管理サーバーがUNIXコンピュータにインストールされている場合、クライアント側のスプレッドシート・ファイルからのデータ・ロードや次元の構築はサポートされません。 |
ルール・ファイル、データ・ロードおよび次元の構築のエラーを避けるには、Microsoft Excelデータ・ソース・ファイルでフォーマットを削除します。たとえば、Excelで色を「自動」、「塗りつぶしなし」に設定し、太字や斜体などのフォント設定を削除します。
図62に示すように、データ・ソースはレコード、フィールドおよびフィールド区切り記号からなります。
レコードとは、関連フィールドの行を構造化したものです。
フィールドとは、個々の値のことです。
区切り記号は、フィールドが完結しており、レコード内の次の文字から別のフィールドになることを示しています。
Essbaseでは、データ・ソースの読取りは上から下、左から右へと行われます。
図63に示すように、データ・ソースには、次元フィールド、メンバー・フィールド、メンバーの組合せフィールドおよびデータ・フィールドがあります。
次元フィールドは、市場など、データベースの次元を識別します。次元フィールドを使用して、Essbaseにデータ・ソース内の次元の順序を指示します。図63では、たとえば、「Market」、「Product」、「Year」、「Measures」および「Scenario」の次元フィールドがあります。「Market」列のフィールド(「Texas」など)は「Market」次元のメンバー、「Product」列のフィールド(「100-10」など)は「Product」次元のメンバーになります。次元フィールドはデータ・ソース内に設定することもできますが、通常はルール・ファイル内に定義します。
メンバー・フィールドは、指定した次元のメンバーまたはメンバーの組合せを識別します。メンバー・フィールドを使用して、Essbaseに新しいデータ値をマッピングするメンバーや、アウトラインに追加するメンバーを指示します。図63では、たとえば、「Texas」、「100-10」、「Jan」、「Sales」および「Actual」がメンバー・フィールドになります。
データ・フィールドには、データベースのメンバーの交差にロードされるデータ値(数値)が含まれます。各データ値は、次元の交差にマッピングされている必要があります。図63では、たとえば、「42」は「Texas」、「100-10」、「Jan」、「Sales」および「Actual」の交差に対応するデータ値です。
ヘッダーと個々のレコード内に情報を指定できます。次の例では、100は、Jan、Actual、Cola、EastおよびSalesの交差に対応するデータ値です。200は、Jan、Actual、Cola、WestおよびSalesの交差に対応するデータ値です。
Jan, Actual Cola East Sales 100 Cola West Sales 200 Cola South Sales 300
データ・フィールドは、データ・ロードに対してのみ使用されます。次元構築では、データ・フィールドは無視されます。
次の項では、データ・ソース内の各アイテムについて説明します。
データ・ロードでは、データ・ソースでEssbaseデータベース内のすべての次元が識別されない場合、ルール・ファイルで欠落した次元を識別する必要があります。たとえば、Sample.Basicデータベースには年次元があります。複数の地域から月番号を持つ複数のデータ・ソースを生成する場合、月自体はデータ・ソース内に指定されていないことがあります。この場合は、データ・ソースのヘッダーまたはルール・ファイルに月を指定する必要があります。ヘッダー・レコードの定義を参照してください。
次元フィールドには、有効な次元名を含める必要があります。次元構築を実行しない場合は、その次元がすでにデータベース内に存在している必要があります。次元構築を実行する場合、新しい次元名を指定できますが、この名前はルール・ファイルに指定する必要があります。
メンバー・フィールドには、有効なメンバーの名前または別名を含めることができます。図63では、たとえば、「Texas」と「Ohio」は「Market」次元の有効なメンバーです。空のメンバー・フィールドは、以前のレコードのメンバー名を継承します。データ・ソースの各メンバー・フィールドとデータベースのメンバーのマッピングをEssbaseに指示する必要があります。
有効なメンバー・フィールドにするには、次の基準を満たしている必要があります:
メンバー・フィールドには、有効なメンバー名またはメンバー・プロパティを入力するか、継承させる必要があります。データ・ソースを使用したメンバー・プロパティの操作を参照してください。次元構築を実行しない場合、そのメンバーはすでにアウトライン内に存在している必要があります。次元構築を実行する場合は、新しいメンバーを指定できます。
データ・ソースまたはルール・ファイルのいずれかで、各メンバー・フィールドをどの次元にマッピングするかを指定する必要があります。
メンバー・フィールドは、1つのメンバー名(年次元のメンバーであるJanなど)またはメンバーの組合せ(年次元およびシナリオ次元のメンバーであるJan、Actualなど)にマッピングできます。
ファイル区切り記号と同じ文字が含まれるメンバー名は二重引用符で囲む必要があります。たとえばデータ・ソースの区切り記号がスペースの場合、"New York"のようにスペースが含まれるメンバー名は二重引用符で囲みます。ルール・ファイルなしでデータ・ロードを実行する場合は、その他の文字が含まれるメンバー名も引用符で囲む必要があります。ルール・ファイルを必要としないデータ・ソースを参照してください。
ルール・ファイルを使用しない場合、空の次元およびメンバー・フィールドが有効になります。Essbaseでは、ルール・ファイルなしでデータ・ロードを実行する際に空の次元またはメンバー・フィールドが検出された場合、その次元またはメンバーの列で最後に検出された次元またはメンバー名が使用されます。
データ・ロードのデータ・ソース内の各レコードの処理中、Essbaseでは、メンバー・フィールドに指定されたメンバーが次元フィールドに指定された次元に属しているかどうかは確認されません。Essbaseによって、レコード内のメンバーの組合せで識別されるデータ・セルにデータ値がロードされます。図63では、たとえば、2番目のレコードで「Jan」と「Sales」が反転した場合(「Texas, '100-10', Sales, Jan, Actual, 42」)、Essbaseによって正しいデータ・セルに「42」がロードされます。ただし、次元の参照方法としてルール・ファイルが設定されているフィールドは例外です。 |
次元構築を実行する場合、この項はスキップします。次元構築時は、データ・フィールドは無視されます。
データ・ソースまたはルール・ファイルには、Essbaseに各データ値の配置先を判断させるために十分な情報が含まれている必要があります。データ・フィールドには、データベース内の交差に入るデータ値が含まれます。図63では、たとえば、「42」はデータ・フィールドです。これは、1月のテキサスにおけるコーラ(100-10)のドル建ての売上高です。
Essbaseでは、表38に示すように、データ・フィールドには間にスペースや区切り記号のない数字と修飾子、およびテキスト文字列#MIと#MISSINGが入ります。
データ・ソースに各次元のメンバー・フィールドとデータ値を含むフィールドが1つ含まれる場合、このデータ値を含むフィールドをデータ・フィールドとしてルール・ファイル内に定義する必要があります。たとえば、次のデータ・ソースをSample.Basicデータベースに読み込むには、最後のフィールドをデータ・フィールドとして定義します。
Jan Cola East Sales Actual 100 Feb Cola East Sales Actual 200
データ・ソース内にデータ値の空白フィールドが含まれる場合、#MIまたは#MISSINGで置き換えます。データ・フィールドに値が入っていない場合(または値が#MISSINGの場合)、Essbaseではデータベース内の既存のデータ値は変更されません。Essbaseによって現在の値が空の値で置き換えられることはありません。
フィールド間は区切り記号で区切る必要があります。ルール・ファイルなしでデータをロードする場合、フィールドの区切り記号としてスペースを使用する必要があります。
ルール・ファイルを使用する場合は、区切り記号として次のいずれかを使用できます:
ルール・ファイルなしでロードされたデータ・ソースでは、Essbaseにより余分な区切り記号は無視されます。次の例では、フィールドがスペースで区切られています。Essbaseではフィールド間の余分なスペースは無視されます。
East Cola Actual Jan Sales 10 East Cola Actual Feb Sales 21 East Cola Actual Mar Sales 30
ルール・ファイルを使用してロードされたデータ・ソースでは、Essbaseによって余分な区切り記号が空フィールドとして読み取られます。たとえば、ルール・ファイルを使用して次のファイルをSample.Basicデータベースにロードしようとした場合、失敗します。Essbaseでは、最初のレコードのEastとColaの間の余分なカンマが余分なフィールドとして読み取られます。このため、EssbaseではColaがフィールド3に入ります。しかし、次のレコードでは、Colaはフィールド2に入っています。Essbaseではこの場合、Colaはフィールド3に入る必要があると見なされるので、データ・ロードが停止します。
East,,Cola,Actual,Jan,Sales,10 East,Cola,Actual,Feb,Sales,21 East,Cola,Actual,Mar,Sales,30
Essbaseでは、データ・ソース内の一部の文字がフォーマット用文字としてのみ認識されます。Essbaseでは表39にない文字は無視されます。
無視されるフィールドは、データ・ロードまたは次元構築に影響を与えません。
たとえば、Essbaseでは次のデータ・ソース内の等号は無視され、その他のフィールドのみが正常にロードされます。
East Actual "100-10" Sales Marketing ===== ========= Jan 10 8 Feb 21 16
ルールには、Essbaseでのデータ・ソース処理時に、データ値または次元およびメンバーに対して実行される操作が定義されます。ルールを使用して、データ値のEssbaseデータベースへのマッピングや、次元およびメンバーのEssbaseアウトラインへのマッピングを実行できます。
ルールはルール・ファイルに保管されます。ルール・ファイルには、使用する構築方法、データ値やメンバーをソートするかランダムな並び順のままにするか、およびデータ値やメンバーをロードする前に変換する方法が定義されます。次元ごとに別々のルール・ファイルを作成することをお薦めします。
Essbaseにより、データ・ソースのデータ値またはメンバーが読み込まれ、ルール・ファイルに指定されたルールに基づいて変更が加えられます。さらに、変更されたデータ値がデータベースに、変更されたメンバーがアウトラインにロードされます。Essbaseではデータ・ソースは変更されません。ルール・ファイルは、同じルール・セットを必要とする任意のデータ・ソースで再利用できます。
次元構築ルール・ファイルを作成した後、次元更新プロセスを自動化する場合があります。ESSCMDの使用。を参照してください。
ルール・ファイルは、データ・ソースがデータベースに完全にマッピングされないか、または次のいずれかのタスクを実行する場合に必要となります:
データ・ロードを実行し、データ・ソースがデータベースに完全にマッピングされる場合、ルール・ファイルは不要です。ルール・ファイルを必要としないデータ・ソースを参照してください。
ルール・ファイルを使用する場合、ルール・ファイル内の各レコードのフィールド数が一致する必要があります。データ・ソース内の欠落フィールドの処理を参照してください。 |
データ・ソース内のデータ値をデータベースにロードするために必要なすべての情報がデータ・ソース内に含まれている場合、このデータ・ソースを直接、フリーフォームのデータ・ロードでロードできます。
データ値を正常にロードするには、Essbaseにより、データ値の前に、各次元のメンバーが1つずつ検出される必要があります。たとえば、図63では、「Texas」、「100-10」、「Jan」、「Sales」および「Actual」の各メンバーとともに、データ値「42」がEssbaseによってデータベースにロードされます。各次元のメンバーが指定される前にEssbaseでデータ値が検出された場合、データ・ソースのロードは停止します。
完全にマッピングするには、データ・ソースに次の項目のみが含まれ、他の項目が含まれないようにします:
各次元の有効なメンバーを1つ以上。メンバー名に次のいずれかの文字が含まれる場合、メンバー名を引用符で囲む必要があります:
ルール・ファイルを使用しないでデータ・ロードを実行する場合、Essbaseにより無効なメンバー・フィールドが検出されると、データ・ロードが停止します。Essbaseでは、無効なフィールドより前の読込み済のフィールドはすべてデータベースにロードされます。つまり、データ値の一部のみがロードされることになります。次元構築およびデータ・ロードのエラー・ログのロードを参照してください。
1つ以上の有効なデータ値。有効なデータ・フィールドを参照してください。
データ・ソースにデータ値の空白フィールドが含まれる場合、空白フィールドを#MIまたは#MISSINGで置き換えます。そうしないと、データ値が正常にロードされない可能性があります。
有効な区切り記号。有効な区切り記号を参照してください。
データ・ソース内のフィールドが、Essbaseに読み取られる順にフォーマットされている必要があります。レコードの最も簡単なフォーマットでは、次に示すように、各次元のメンバー1つとデータ・フィールド1つを含めます:
Sales "100-10" Ohio Jan Actual 25 Sales "100-20" Ohio Jan Actual 25 Sales "100-30" Ohio Jan Actual 25
正常にフォーマットされていないデータ・ソースは、ロードされません。データ・ソースをテキスト・エディタで編集して、問題を修正できます。多くの修正(複数のフィールドおよびレコードの移動など)が必要な場合は、ルール・ファイルを使用してデータ・ソースをロードすることを検討してください。ルール・ファイルを参照してください。
次の項では、フリーフォームのデータ・ソースのより複雑なフォーマット方法について説明します。
メンバー名を次元内の範囲として表現できます。たとえば、SalesとCOGSはメジャー次元内の範囲になります。メンバー名の範囲を使用して、一連の値を処理できます。
データ・ソースには、同時に複数の次元の範囲を含めることができます。次の例では、JanとFebが年次元の範囲、SalesとCOGSがメジャー次元の範囲になります。
Actual Texas Sales COGS Jan Feb Jan Feb "100-10" 98 89 26 19 "100-20" 87 78 23 32
Salesは先頭の2列に対して、COGSは末尾の2列に対して、それぞれ定義されています。
Essbaseにより、間にデータ・フィールドを挟まないで同じ次元のメンバーが複数検出された場合、その次元の範囲が設定されます。この範囲は、Essbaseで同じ次元の別のメンバー名が検出されるまで有効です。同じ次元の別のメンバー名が検出されると、この範囲はEssbaseによって新しいメンバー範囲で置き換えられます。
次の例には、年次元のJanからFebの範囲が含まれています。EssbaseでMarのような別のメンバー名が検出されるまで、この範囲は有効です。EssbaseでMarが検出されると、範囲がJan、Feb、Marに変わります。
Texas Sales Jan Feb Mar Actual “100-10" 98 89 58 “100-20” 87 78 115
Essbaseによってメンバー名の範囲が検出されると、対応するデータ値の範囲が存在するものと見なされます。データ値がメンバー範囲にない場合、データ・ロードは停止します。Essbaseにより、無効なフィールドの前に読み込まれたすべてのデータがデータベースにロードされます。このため、部分的なデータ・ロードになります。
次の例では、データ・フィールドの数が、定義されたメンバー範囲内のメンバー・フィールドの数より多くなっています。データ・ロードは、10データ・フィールドに達した時点で停止します。Essbaseにより100および120のデータ・フィールドがデータベースにロードされます。
Cola Actual East Jan Feb Sales 100 120 10 COGS 30 34 32
ロードを再開する方法については、次元構築およびデータ・ロードのエラー・ログのロードを参照してください。
ソース・データ内に範囲を構築して、Essbaseで範囲が正しく解釈されるようにします。ある範囲内に同じメンバーが1回以上含まれる場合、Essbaseでは重複は無視されます。
次の例に示すのは、Actual、Budget、Sales、およびBudgetと2つの範囲(ActualからBudgetとSalesからCOGS)の重複メンバーです。EssbaseではActual、Budget、SalesおよびCOGの重複インスタンスは無視されます(たとえば、例の2行目の、2番目のActualと2番目のActualは無視されます):
Cola East Actual Budget Actual Budget Sales Sales COGS COGS Jan 108 110 49 50 Feb 102 120 57 60
最初の範囲の最初のメンバーであるActualでは、Essbaseにより2番目の範囲の各メンバー(SalesとCOGS)にデータ値がマッピングされます。Essbaseでは次に、最初の範囲の2番目の値であるBudgetでも、同様に2番目の範囲の各メンバーに値がマッピングされます。結果として、Essbaseではファイルは次のように解釈されます:
Cola East Actual Budget Sales COGS Sales COGS Jan 108 110 49 50 Feb 102 120 57 60
ファイルには、フィールドの列を含めることができます。Essbaseでは、対称列または非対称列のデータのロードがサポートされます。
次元構築を実行する場合、この項はスキップします。次元構築を実行するには、ルール・ファイルが必要です。
対称列の下には、同数のメンバーがあります。次の例では、各次元列の下に、メンバーの列が1つあります。たとえば、製品の下に1列(100-10と100-10)、市場の下に1列(TexasとOhio)があります。
Product Measures Market Year Scenario "100-10" Sales Texas Jan Actual 112 "100-10" Sales Ohio Jan Actual 145
JanおよびFebの下には同数のメンバーがあるため、次のファイルにおける列も対称列です。
Jan Feb Actual Budget Actual Budget "100-10" Sales Texas 112 110 243 215 "100-10" Sales Ohio 145 120 81 102
非対称列では、その下のメンバー数が異なっています。次の例のJan列とFeb列は非対称列です。これは、Janの下の列数が2列(ActualとBudget)、Febの下の列数が1列(Budget)のためです:
Jan Jan Feb Actual Budget Budget "100-10" Sales Texas 112 110 243 "100-10" Sales Ohio 145 120 81
ファイル内に非対称列が含まれている場合は、各列に適切なメンバー名のラベルを付加します。
この例は、ActualとBudgetにJanラベルが付加されているので有効です。Essbaseでは、両方の列がJanにマッピングされることがわかります。
次の例は、列ラベルが不十分なので無効です。Actual列とBudget列にJanラベルを付加する必要があります。
Jan Feb Actual Budget Budget "100-10" Sales Texas 112 110 243 "100-10" Sales Ohio 145 120 81
Essbaseでは、複数ユーザーが同時にデータベースの読取りおよび更新を実行できます。このためユーザーは、データベースを使用しながら、次元構築、データ・ロード、データベースの計算などを動的に実行できます。マルチユーザー環境では、EPM Systemセキュリティ・モードでのユーザーの管理およびセキュリティで説明するセキュリティ・システムを使用して、Essbaseによりデータが保護されます。
セキュリティ・システムにより、無許可のユーザーによるデータベースの変更が防止されます。データベースへの書込みアクセスを持つユーザーのみが、データ値のロード、またはデータベースへの次元およびメンバーの追加を実行できます。書込みアクセスはグローバルに、またはフィルタを使用して提供できます。
複数のユーザーがデータベースに接続しているときも、データ値をロードできます。Essbaseでは、マルチユーザーの問題を処理するため、ブロックのロック・スキームが採用されています。ユーザーがデータ値をロードすると、Essbaseにより次の処理が行われます:
ロード先ブロックがロックされます。これにより、このブロックへの書込みができなくなります。
Essbaseのトランザクション設定については、データの整合性の確保を参照してください。トランザクション設定では、ロックされたブロックに対する読取り専用アクセスを他のユーザーが取得するかどうかを特定したり、ロックされたブロックが解放されるまでEssbaseが待機する時間を決定します。
更新が完了した時点でEssbaseによってブロックが解除されるか、またはデータ・ロード全体が完了した後にブロックが解除されるかについては、データ・ロックを参照してください。
他のユーザーがデータベースの読取りや書込みを実行している間は、次元を構築できません。次元の構築が完了すると、Essbaseによりアウトラインが再構築され、再構築の操作が完了するまでデータベースがロックされます。