加载数据和构建维的提示
为了节省时间,您可以对 Essbase 执行增量维构建,并且可以加载数据子集。要防止覆盖合并值,请避免将数据加载到父代成员中。为避免数据处理错误,请确保源中的每个记录具有相同数量的数据值字段。
增量维构建
要使 Essbase 能够在构建多维数据集大纲时读取多个数据源,请使用增量维构建。增量维构建延迟大纲重构,直到处理了所有数据源。
如果您仅加载数据,或者为维构建使用单个数据源,请跳过此主题。
默认情况下,每次对大纲进行更改时, Essbase 会考虑更改类型,并根据需要重构多维数据集。重构会重新构建数据库,从而占用时间和磁盘空间。
增量维构建(也称为延迟重构维构建)读取维构建的多个数据源,并延迟重构,直到所有数据源都得到处理。
如果您添加了虚拟维(仅动态计算或标签),则多维数据集中存在的任何数据都将存储与新维中的第一个 0 级已存储成员一起。层次中必须至少有一个存储成员,或者在大纲验证期间将返回错误。
使用应用程序工作簿向现有多维数据集递增添加维时,数据将自动映射到新的顶级成员。无法选择现有数据要映射到的存储成员。如果新维的顶级成员是动态计算成员,则数据会丢失,因为动态成员不能存储数据。
- 添加新维时将顶级成员设为存储成员。
- 运行计算脚本将数据从新的顶级成员复制到该维的另一个存储成员。
- 将顶级成员更改为动态计算成员。
使用 MaxL ,可以在一个 import 语句中包括所有数据源。您可以控制是否对每个文件执行大纲验证。您必须为最后一个文件启用大纲验证。
在所有情况下,数据源都按其列出顺序进行处理。
注意:
使用 MaxL 可以对每个文件强制或禁止大纲验证。要确保大纲有效,请确保上次构建验证大纲。
加载数据的位置
在执行数据加载之前,请采取措施防止无意中覆盖数据。避免加载到块存储 (BSO) 多维数据集中的父成员。如果必须这样做,请采取措施确保 Essbase 不将 #MISSING 值从子代合并到父代。
如果要构建维或使用聚合存储 (ASO) 数据库,请跳过此部分。
如果将数据加载到父代成员中,则在计算数据库时,子代数据值的合并可能会覆盖父代数据值。要防止覆盖,请执行以下操作:
-
如果可能,请勿将数据直接加载到父代。
-
如果必须将数据加载到父代成员中,请确保 Essbase 不知道通过更改聚合 #MISSING 设置将 #MISSING 值从父代的子代合并到父代。
您可以使用 MaxL 、应用程序工作簿、大纲或计算脚本设置缺少的聚合行为。
-
要使用 Essbase Web 界面更改聚合缺失行为,请更改数据库定制页中的聚合缺失值设置。请参阅设置高级多维数据集属性。
-
要使用应用程序工作簿更改汇总缺失行为,请更改 Cube.Settings 工作表上的汇总缺失值设置。
-
要更改计算脚本中缺少的聚合行为,请使用 SET AGGMISSG 计算命令。
-
要使用 MaxL 更改聚合缺失行为,请使用
alter database appname.dbname enable|disable aggregate_missing。
只有在子值为空 (#MISSING) 时,上述方法才有效。如果子代具有数据值,则数据值将覆盖父代的数据值。请参见 #MISSING Values 。
注意:
无法将数据加载到动态计算或属性成员中。例如,如果 Year 是动态计算成员,则无法将数据加载到其中。而是将数据加载到 Qtr1、Qtr2、Qtr3 和 Qtr4 中,这些不是动态计算成员。
源数据中缺少字段
执行 Essbase 数据加载时,源数据中的每条记录必须具有相同数量的数据值字段。如果缺少数据值,则数据加载处理不正确。
如果缺少维字段或成员字段,则 Essbase 将使用之前用于该维或成员字段的值。请参阅调试数据加载和维构建。
如果规则具有额外的空白字段,则将空字段与它们旁边的字段相联接。
在聚合存储多维数据集中,值只能加载到 0 级单元。将 #MISSING 或 #MI 指定为源中的值将删除关联的单元格(如果该单元格存在于多维数据集)。
有关聚合存储多维数据集的数据加载差异的信息,请参阅: