データ・ソース

データ・ロードまたはディメンションの構築中に、Essbaseでは、データ・のソースが上から読み取られ、レコード、フィールドおよびデリミタが左から右に読み取られます。データのソースには、データ値とメタデータが含まれ、テキスト・ファイル、リレーショナル表またはキューブからのエクスポート・ファイルがあります。

ソース・データには、Essbaseにロードする情報が含まれています。データ・ソースには、データ値とメタデータも含まれていることがあります。メタデータとは、メンバーに関する情報(名前、別名、式、その他のプロパティなど)のことです。

データ・ソース内のアイテム

データ・ロード中、Essbaseでは、データ・ソースが上から始めて左から右へ向けて読み取られます。データ・ソースには、レコード、フィールドおよびフィールド・デリミタが含まれています。

  • レコードとは、関連フィールドの行を構造化したものです。

  • フィールドとは、個々の値のことです。

  • デリミタは、フィールドが完結し、レコード内の次の文字から別のフィールドになることを示しています。図では、デフォルトのデリミタがスペースとして表示されています。

図11-1 レコードとフィールド


この画像は、画像の前のテキストで説明した、データ・ソース内のレコードとフィールドの概念を示しています。

データ・ソースには、ディメンション・フィールド、メンバー・フィールド、メンバーの組合せフィールドおよびデータ・フィールドが含まれている可能性があります。

図11-2 フィールドの種類


このイメージは、イメージの前のテキストで説明されている、フィールドのタイプを示しています。
  • ディメンション・フィールドでは、キューブのディメンション(Marketなど)を特定します。ディメンション・フィールドは、Essbaseにソース内のディメンションの順序を指示するために使用します。前の図の場合、ディメンション・フィールドはMarket、Product、Year、MeasuresおよびScenarioです。Market列のフィールド(Texasなど)はMarketディメンションのメンバー、Product列のフィールド(100-10など)はProductディメンションのメンバーです。ディメンション・フィールドがソースに存在していない場合は、ロード・ルールを使用して特定できます。

  • メンバー・フィールドは、指定されたディメンションのメンバーまたはメンバーの組合せを識別します。メンバー・フィールドを使用して、新しいデータ値をマッピングするメンバーやアウトラインに追加するメンバーをEssbaseに指定します。前の図の場合、Texas、100-10、Jan、SalesおよびActualがメンバー・フィールドです。

  • データ・フィールドには、キューブのメンバーの交差にロードされるデータ値(数値)が含まれています。各データ値は、ディメンション・メンバーにマッピングされる必要があります。たとえば、前述の図では、42が、Texas、100-10、Jan、SalesおよびActualの交差に対応するデータ値です。

    ヘッダー内および個々のレコード内に情報を指定できます。アウトラインのすべての標準ディメンションの1つのメンバーが、Essbaseにロードされるすべてのデータ値に関連付けられる必要があります。次の例では、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キューブにはYearのディメンションがあります(Yearのレベル0はMonthです)。複数のデータ・ソースに、異なる地域の月次の数値が含まれている場合、月自体はソース内に指定されていないことがあります。(ここでは、すべてのソースに同じ月のデータが含まれていて、ロード・ルール・ファイルは1つのみです)。ロード・ルールのヘッダーで月を指定する必要があります。

ディメンション・フィールドには、有効なディメンション名を含める必要があります。ディメンションの構築を実行しない場合は、そのディメンションがすでにアウトライン内に存在している必要があります。ディメンションの構築を実行する場合は、ディメンションに新しい名を付けることができますが、新しい名前はロード・ルールで指定しておく必要があります。

有効なメンバー・フィールド

Essbaseにロードするデータのソースでは、メンバー・フィールドが空白であるか、有効なメンバー名または別名が含まれています。空のメンバー・フィールドは、前のレコードのメンバー名を継承します。

Essbaseは、ソースの各メンバー・フィールドをアウトラインのメンバーにマッピングする方法を把握している必要があります。

たとえば、図11-2では、TexasとOhioはMarketディメンションの有効なメンバーです。

有効なメンバー・フィールドにするには、次の基準を満たしている必要があります。

  • 有効なメンバー名またはメンバー・プロパティが含まれているか継承していること。「ソース・データを使用したメンバー・プロパティの操作」を参照してください。ディメンション構築を実行しない場合は、そのメンバーがすでにアウトライン内に存在する必要があります。ディメンション構築を実行する場合は、新しいメンバーにすることができます。

  • ディメンションにマップすること。ソースまたはルール・ファイルのどちらかで、各メンバー・フィールドをマップするディメンションを指定する必要があります。

  • 単一のメンバー名(YearディメンションのJanなど)またはメンバーの組合せ(YearとScenarioディメンションのJan, Actualなど)にマップすること。

  • 必要に応じて引用符で囲むこと。これは、メンバー名にファイル・デリミタと同じ文字が含まれている場合に必要です。

ルール・ファイルを使用しない場合は(たとえば、ロードするデータがEssbaseエクスポート・ファイルからのデータの場合)、空のディメンションとメンバー・フィールドが許容されます。Essbaseは、そのような状況で空のフィールドを検出すると、その列に対して最後に検出したディメンションまたはメンバー名を使用します。

ノート:

各データ・ロード・レコードの処理時に、Essbaseは、メンバー・フィールドで指定されたメンバーがディメンション・フィールドに指定されたディメンションに属しているかどうかを確認しません。Essbaseによって、レコード内のメンバーの組合せで識別されるデータ・セルにデータ値がロードされます。

たとえば、図11-2では、2番目のレコードでJanとSalesが逆になった場合(Texas、'100-10'、Sales、Jan、Actual、42)、Essbaseによって正しいデータ・セルに42がロードされます。

有効なデータ・フィールド

ディメンション構築を実行する場合、この項はスキップします。ディメンション構築時は、データ・フィールドは無視されます。

Essbaseのロードに使用するソース・データまたはルール・ファイル(あるいはその両方)には、Essbaseがデータの配置先を決定するために十分な情報が含まれている必要があります。データ・フィールドには、キューブ内の交差のデータ値が含まれています。

データ・フィールドでは、Essbaseは次の表に示すように、間にスペースや区切り記号のない数字とその修飾子、およびテキスト文字列#MIと#MISSINGを受け入れます。

表11-1 有効なデータ・フィールド修飾子

有効な修飾子

通貨記号:

  • ドル $

  • ユーロ このイメージはユーロ記号です。

  • 円 ¥

$12は有効な値です。

$ 12は、ドル記号と12の間にスペースがあるため無効な値です。

負数を示す、数字を囲む丸カッコ

(12)

数字の前のマイナス符号。数字の後ろのマイナス符号は無効です。

-12

小数点

12.3

桁数の多い数字(カンマありまたはカンマなし)

1,345,218および1345218は有効な値です。

欠落値または不明な値を表す#MIまたは#MISSING

#MI

ソースに各ディメンションのメンバー・フィールドとデータ値を含むフィールドが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は次に示す文字を無視します:

表11-2 有効なフォーマット用文字

フォーマット用文字 説明

==

二重の下線などを表す複数の等号

--

一重の下線などを表す複数のマイナス符号

__

複数のアンダースコア

==

複数のIBM PCグラフィック二重下線(ASCII文字205)

__

複数のIBM PCグラフィック一重下線(ASCII文字196)

無視されたフィールドは、データ・ロードまたはディメンション構築に影響しません。

たとえば、Essbaseは次のソース・ファイル内の等号を無視して、その他のフィールドは通常どおりにロードします。

East  Actual  "100-10"
      Sales   Marketing
      =====   =========
Jan   10      8
Feb   21      16

サポートされるソース・データ型

Essbaseデータ・ロードおよびディメンション構築に使用できるデータ・ソースには、テキスト・ファイル(フラット・ファイル)、Oracle Databaseなどのリレーショナル表またはデータベース、Essbaseキューブからエクスポートされたファイル、およびその他のEssbaseキューブが含まれます。

Essbaseでは、次のような多くのタイプのソース・データがサポートされます。

  • テキストのバックアップまたは外部ソースのテキスト・ファイル(フラット・ファイル)

  • リレーショナル・データ・ソース

  • Essbaseエクスポート・ファイル(エクスポート・ファイルの場合、ロードにルール・ファイルは不要)

  • その他のソース。ソース・データへの接続の設定の詳細は、接続およびデータソースの使用を参照してください。

キューブ・デザイナを介してキューブをインポートまたは構築するには、特別にフォーマットされたMicrosoft Excelベースのアプリケーション・ワークブック・ファイルを使用します。

通常のExcelファイルを、キューブにロードするためのソース・データとして使用することはできません。