不需要加载规则的数据源
要将数据加载到 Essbase 多维数据集,通常需要加载规则,除非源数据完全映射到多维数据集。但是,如果数据源包含所需的所有信息,则可以直接在自由格式数据加载中加载数据源,而无需任何规则。
如果要执行维构建,请跳过此部分。维构建始终需要加载规则。
要成功加载数据值, Essbase 必须在遇到数据值之前遇到每个维中的一个成员。例如, Essbase 使用成员 Texas、100-10、Jan、Sales 和 Actual 将数据值 42 加载到数据库中。

如果 Essbase 在指定每个维的成员之前遇到数据值,它将停止加载数据。
要完美映射,数据源必须包含以下所有内容,而不包含任何其他内容:
-
每个维中的一个或多个有效成员。如果成员名称包含以下任何一项,则必须用引号将其括起来:
-
空格
-
数值字符(0 – 9)
-
短划线(减号、连字符)
-
加上符号
-
& 符号
如果您在没有规则文件的情况下执行数据加载,当 Essbase 遇到无效的成员字段时,即使 "Abort on Error" 标志未设置为 true,也会停止数据加载。Essbase 将在无效字段之前读取的所有字段加载到数据库中,从而导致部分加载数据值。
-
-
一个或多个有效数据值。请参阅有效数据字段。
如果数据源包含数据值的空白字段,则将空白字段替换为 #MI 或 #MISSING。否则,可能无法正确加载数据值。
-
有效分隔符。请参见 Valid Delimiters 。
数据源中的字段必须按 Essbase 可理解的顺序进行格式化。设置记录格式的最简单方法是包括每个维中的成员和数据字段,如下所示:
Sales "100-10" Ohio Jan Actual 25
Sales "100-20" Ohio Jan Actual 25
Sales "100-30" Ohio Jan Actual 25不正确格式化的数据源将不会加载。您可以使用文本编辑器编辑数据源并修复问题。如果必须执行多次编辑(例如移动多个字段和记录),请使用加载规则。
以下各节介绍格式化自由格式源的更复杂方法。
源数据中的成员字段范围
可以将 Essbase 成员名称表示为维中的范围。范围是一系列值。数据源一次可以包含多个维的范围。了解如果未使用加载规则, Essbase 如何在数据加载期间处理范围。
如果要执行维构建,则此信息不适用,因为维构建始终需要规则。如果要执行数据加载,则当未使用任何规则时,此信息适用(但在设计数据加载规则时,了解范围也很有帮助)。
可以将成员名称表示为维中的范围。例如,“销售”和“销货成本”在“度量”维中形成一个范围。一组成员名称可以处理一系列值。
数据源一次可以包含多个维的范围。在下面的示例中,Jan 和 Feb 在 Year 维中形成一个范围,Sales 和 COGS 在 Measures 维中形成一个范围。
Actual Texas Sales COGS
Jan Feb Jan Feb
"100-10" 98 89 26 19
"100-20" 87 78 23 32请注意,为前两列定义了销售额,为后两列定义了销货成本。
自动范围
当 Essbase 遇到来自同一维的多个成员而没有干预数据字段时,它会为该维设置一个范围。范围将一直有效,直到 Essbase 遇到来自同一维的另一个成员名称,此时 Essbase 会将该范围替换为新成员或新成员范围。
以下示例包含“Year(年度)”维中“Jan to 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 正确解释它们。如果某个成员在一个范围内出现多次,则 Essbase 会忽略重复的成员。
下表显示了实际、预算、销售和销货成本的重复成员,以及两个范围:实际到预算和销售到销货成本。Essbase 会忽略实际、预算、销售和销货成本的重复实例(例如,在第二行中,将忽略重复的实际和预算):
Cola East
Actual Budget Actual Budget
Sales Sales COGS COGS
Jan 108 110 49 50
Feb 102 120 57 60对于第一个范围的第一个成员“实际”, Essbase 将数据值映射到第二个范围的每个成员(销售和销货成本)。然后, Essbase 继续转至第一个范围“预算”的下一个值,该值与第二个范围的每个成员相似。因此, Essbase 将按如下所示解释文件:
Cola East
Actual Budget
Sales COGS Sales COGS
Jan 108 110 49 50
Feb 102 120 57 60源数据中的列
了解如果未使用加载规则, Essbase 如何在数据加载期间处理列。加载到多维数据集的源数据的列可能是对称的或不对称的。
如果要执行维构建,则此信息不适用,因为维构建始终需要规则。如果要执行数据加载,则当未使用任何规则时,此信息适用(但在设计数据加载规则时,了解列也很有帮助)。
数据源通常包含字段列。Essbase 支持从对称或非对称列加载数据。
对称的列
对称列下具有相同数量的成员。在以下示例中,每个维列下都有一列成员。例如,产品在其下方有一列(100-10 和 100-10),市场在其下方有一列(德克萨斯州和俄亥俄州)。
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 在其下有两个列(实际和预算),而 Feb 在其下有一个列(预算):
Jan Jan Feb
Actual Budget Budget
"100-10" Sales Texas 112 110 243
"100-10" Sales Ohio 145 120 81如果文件包含非对称列,则使用适当的成员名称标记每个列。
上面的示例有效,因为 Jan 标签现在超过了“实际”和“预算”。Essbase 很明显,这两个列都映射到 Jan。
以下示例无效,因为列标签不完整。“Jan(一月)”标签必须出现在“Actual(实际)”和“Budget(预算)”列上。
Jan Feb
Actual Budget Budget
"100-10" Sales Texas 112 110 243
"100-10" Sales Ohio 145 120 81