データ・ソース
データ・ソースには、Essbaseデータベースにロードする情報が含まれます。 データ・ソースには次のものを含めることができます:
-
データ値
-
メンバー名、メンバーの別名、式、集計プロパティなど、メンバーに関する情報
-
世代名とレベル名
-
通貨名およびカテゴリ
-
データ・ストレージ・プロパティ
-
属性
-
UDA
次の項では、あらゆる種類のデータ・ソースのコンポーネントについて説明します。
サポートされているソース・データ型
Essbaseは、次のような様々なタイプのソース・データをサポートしています:
-
テキスト・バックアップまたは外部ソースのテキスト・ファイル(フラット・ファイル)
-
SQLデータ・ソース
-
Essbaseエクスポート・ファイル(エクスポート・ファイルをロードするためにルール・ファイルは必要ありません)
-
Microsoft Excelベースのアプリケーション・ワークブック・ファイル
ノート:
アプリケーション・ワークブックを使用してキューブを構築している場合、アプリケーション・ワークブックにディメンションとデータ・シートの両方があると仮定すると、ディメンション構築とデータ・ロードのルールおよび関連するテキスト・ファイルがプロセスの一部として作成されます。 -
Oracleデータベース・ソース
- その他のソース。 ソース・データへの接続の設定の詳細は、「接続およびデータソースの使用」を参照してください。
データ・ソース内のアイテム
データ・ソースは、レコード、フィールドおよびフィールド・デリミタで構成されます。
-
レコードは、関連フィールドの構造化された行です。
-
フィールドは個々の値です。
-
デリミタは、フィールドが完全であり、レコード内の次の文字が別のフィールドを開始することを示します。 この図では、デフォルトのデリミタが空白として表示されています。
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の交差に対応するデータ値です。
ヘッダーおよび個々のレコードに情報を指定できます。 アウトラインの各標準ディメンションのメンバーは、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 (レベル0の年はMonth)のディメンションがあります。 複数のデータ・ソースが異なるリージョンから月次の数値で到着した場合、その月自体がデータ・ソースに指定されていない可能性があります。 (ここでは、すべてのデータ・ソースに同じ月のデータが含まれており、ルール・ファイルは1つのみです。) ルール・ファイルのデータ・ソース・ヘッダーに月を指定する必要があります。
ディメンション・フィールドには有効なディメンション名を含める必要があります。 ディメンション構築を実行しない場合は、ディメンションがデータベースにすでに存在している必要があります。 ディメンション構築を実行する場合、ディメンション名はnewにできますが、新しい名前はルール・ファイルで指定する必要があります。
有効なメンバー・フィールド
メンバー・フィールドには、有効なメンバーまたは別名を含めることができます。 たとえば、「図11-2」では、TexasとOhioはMarketディメンションの有効なメンバーです。 空白のメンバー・フィールドは、前のレコードからメンバー名を継承します。 Essbaseは、データ・ソースの各メンバー・フィールドをデータベースのメンバーにマップする方法を認識している必要があります。
有効にするには、メンバー・フィールドが次の条件を満たしている必要があります:
-
メンバー・フィールドには、有効なメンバー名またはメンバー・プロパティを含めるか継承する必要があります。 「データ・ソースを使用したメンバー・プロパティの操作」を参照してください。 ディメンション構築を実行しない場合、メンバーはアウトラインにすでに存在している必要があります。 ディメンション構築を実行している場合、メンバーは新規にすることができます。
-
データ・ソースまたはルール・ファイルのいずれかで、各メンバー・フィールドがマップされるディメンションを指定する必要があります。
-
メンバー・フィールドは、Jan (Yearディメンションのメンバー)などの単一のメンバー名、またはJan、Actual (YearディメンションとScenarioディメンションのメンバー)などのメンバーの組合せにマップできます。
-
ファイル・デリミタと同じ文字を含むメンバー名は、二重引用符で囲む必要があります。 たとえば、データ・ソースがスペースで区切られている場合、"New York"などのスペースを含むメンバーが二重引用符で囲まれていることを確認します。 ルール・ファイルなしでデータ・ロードを実行する場合は、他の文字を含むメンバー名も引用符で囲む必要があります。 「ルール・ファイルを必要としないデータソース」を参照してください。
ルール・ファイルが使用されていない場合、空白のディメンションおよびメンバー・フィールドが有効です。 Essbaseでは、ルール・ファイルのないデータのロード中に空白のディメンションまたはメンバー・フィールドが検出されると、そのディメンションまたはメンバー列で最後に検出されたディメンションまたはメンバーの名前が使用されます。
ノート:
データ・ロードのためにデータ・ソース内の各レコードを処理する間、Essbaseは、メンバー・フィールドに指定されたメンバーがディメンション・フィールドに指定されたディメンションに属していることを確認しません。 Essbaseは、レコード内のメンバーの組合せによって識別されるデータ・セルにデータ値をロードします。 たとえば、「図11-2」で、2番目のレコードがJanとSales (Texas,' 100-10', Sales, Jan, Actual, 42)を逆にした場合、Essbaseは42を正しいデータ・セルにロードします。
有効なデータ・フィールド
ディメンション構築を実行する場合は、この項をスキップしてください。 データ・フィールドはディメンション構築時に無視されます。
データ・ソースとルール・ファイルの組合せには、Essbaseが各データ値を配置する場所を決定するのに十分な情報が含まれている必要があります。 データ・フィールドには、データベース内の交差のデータ値が含まれます。
データ・フィールドでは、次の表に示すように、Essbaseは数値とその修飾子(空白やセパレータなし)およびテキスト文字列#MIと#MISSINGを受け入れます。
表11-1 有効なデータ・フィールド修飾子
有効な修飾子 | 例 |
---|---|
通貨記号:
|
$12は有効な値です。 ドル記号と12の間にスペースがあるため、$ 12は無効な値です。 |
負の数を示すために、数値をカッコで囲みます |
(12) |
数値の前にマイナス記号を付けます。 数値の後のマイナス記号が無効です。 |
-12 |
小数点 |
12.3 |
カンマありまたはカンマなしの大きい数値 |
1,345,218および1345218が有効な値です。 |
欠落している値または不明な値を表す#MIまたは#MISSING |
#MI |
データ・ソースに、すべてのディメンションのメンバー・フィールドと、データ値を含むフィールドが含まれる場合は、データ値を含むフィールドをルール・ファイルでデータ・フィールドとして定義する必要があります。 たとえば、次のデータ・ソースをSample.Basicデータベースに読み込むには、最後のフィールドをデータ・フィールドとして定義します。
Jan Cola East Sales Actual 100
Feb Cola East Sales Actual 200
データ・ソースにデータ値の空白フィールドが含まれている場合は、#MIまたは#MISSINGに置き換えます。 (#MIがデータ・フィールドにある場合はロードされ、データ・フィールド値は#MISSINGになります。) データ・フィールドに値がない場合(または値が#MISSINGの場合)、Essbaseはデータベース内の既存のデータ値を変更せず、Essbaseは現在の値を空の値に置き換えません。 値が#MIのデータ・フィールドに入る場合、
有効なデリミタ
フィールド間はデリミタで区切る必要があります。 ルール・ファイルなしでデータをロードする場合は、スペースを使用してフィールドを区切る必要があります。
ルール・ファイルを使用する場合、デリミタには次のいずれかを指定できます:
-
タブ(デフォルト)
-
スペース
-
新規明細
-
キャリッジ・リターン
-
カンマ
ルール・ファイルを使用しない追加のデリミタ
ルール・ファイルなしでロードされたデータのソースでは、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