数据源
在数据加载或维构建期间, Essbase 会从顶部读取数据来源,从左到右依次遍历记录、字段和分隔符。数据源可能包含数据值和元数据,可以是文本文件、关系表或从多维数据集导出文件。
数据源中的项
在数据加载期间, Essbase 会读取从顶部开始的数据源,然后从左到右继续。数据源包含记录、字段和字段分隔符。
-
记录是相关字段的结构化行。
-
字段是单个值。
-
分隔符指示字段已完成,并且记录中的下一个字符将启动另一个字段。在图中,默认分隔符显示为空格。
图 11-1 记录和字段

数据源可以包含维字段、成员字段、成员组合字段和数据字段。
图 11-2 种字段

-
维字段标识多维数据集的维,例如市场。使用维字段告知 Essbase 源中维的顺序。在上图中,维字段包括“市场”、“产品”、“年份”、“度量”和“方案”。“市场”列中的字段(如德克萨斯州)是“市场”维的成员,而“产品”列中的字段(如 100-10)是“产品”维的成员。如果源中不存在维字段,则可以使用加载规则标识这些字段。
-
成员字段标识指定维的成员或成员组合。使用成员字段告诉 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 多维数据集具有“年”维(其中“年”的级别 0 为“月”)。如果多个数据源以来自不同区域的月数到达,则可能不会在源中指定月份本身。(在此处,所有源都包含同一个月的数据,我们只有一个加载规则文件。)必须在加载规则的标题中指定月份。
维字段必须包含有效的维名称。如果不执行维构建,则大纲中必须已存在该维。如果要执行维构建,维名称可以是新名称,但必须在加载规则中指定新名称。
有效成员字段
在要加载到 Essbase 的数据源中,成员字段为空,或者包含有效的成员名称或别名。空白的成员字段继承上一记录中的成员名称。
Essbase 必须知道如何将源的每个成员字段映射到大纲的成员。
例如,在图 11-2 中,德克萨斯州和俄亥俄州是市场维的有效成员。
要有效,成员字段必须符合下列条件:
-
包含或继承有效的成员名称或成员属性。请参阅使用源数据处理成员属性。如果不执行维构建,则该成员必须已存在于大纲中。如果要执行维构建,则成员可以是新成员。
-
映射到维。源文件或规则文件必须指定每个成员字段映射到的维。
-
映射到单个成员名称(例如“年”维的“一月”)或成员组合(例如“年”维和“方案”维的“一月”、“实际”)。
-
根据需要使用引号。对于包含与文件分隔符相同的字符的成员名称,这是必需的。
未使用规则文件时(例如,如果从 Essbase 导出文件加载数据),空白维和成员字段可以。在此类情况下,当 Essbase 遇到空白字段时,它将使用该列遇到的最后一个维或成员名称。
注意:
在处理每个数据加载记录时, Essbase 不会进行检查以确保在成员字段中指定的成员属于为维字段指定的维。Essbase 会将数据值加载到记录中由成员组合标识的数据单元格中。
例如,在图 11-2 中,如果第二个记录反转了“一月”和“销售额”(德克萨斯州,‘ 100-10 ’,Sales,Jan,Actual,42),则 Essbase 会将 42 加载到正确的数据单元格。
有效数据字段
如果要执行维构建,请跳过此部分。在维构建期间将忽略数据字段。
在数据字段中, 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。如果数据字段中没有值(或值为 #MISSING),则 Essbase 不会用空值替换多维数据集中的当前值。
有效分隔符
在要加载到 Essbase 的数据源中,必须使用分隔符将字段彼此分隔。如果加载的数据没有规则文件,则必须使用空格来分隔字段。
如果使用规则文件,分隔符可以是以下任意一种:
-
标签页(默认)
-
空格
-
新建行
-
回车
-
逗号
没有规则文件的额外分隔符
在没有规则文件的情况下加载的数据源中, Essbase 会忽略额外的分隔符。在以下示例中,字段用空格分隔。Essbase 会忽略字段之间的额外空格。
East Cola Actual Jan Sales 10
East Cola Actual Feb Sales 21
East Cola Actual Mar Sales 30具有规则文件的额外分隔符
在随规则文件加载的数据源中, Essbase 将额外分隔符读为空字段。
例如,如果尝试使用规则文件将以下文件加载到示例基本多维数据集,则加载将失败。Essbase 将第一个记录中的 East 和 Cola 之间的额外逗号读取为额外的字段。然后, Essbase 将 Cola 放入字段 3 中。然而,在下一个记录中,可乐在字段 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