调试数据加载和维构建

Essbase 数据加载和维构建的问题包括加载不正确或进程失败。源可能包含未知成员或缺少/无效的字段,加载规则可能无效,或者没有与服务器或源数据的连接。错误日志可帮助您调试。

如果数据源未正确加载到 Essbase Server 中,请确保已连接到相应的应用程序和数据库,并且正在加载正确的数据源。

如果您仍然遇到问题,请参见以下主题:

更正问题后,可以通过重新加载错误日志来重新加载未加载的记录。请参阅:从维构建和数据加载错误日志中加载

验证 Essbase Server 是否可用

如果无法加载数据,请确保 Essbase Server 正在运行。尝试访问 Essbase Server 以执行某些其他操作。

例如,验证是否可以连接到 Essbase 应用程序进行检索:尝试在 Smart View 中运行查询。

验证源数据是否可用

如果 Essbase 无法访问要加载的源数据,请确保(如果是文件)已解锁且路径和文件扩展名正确。如果源数据是外部数据库,请确保它正在运行并且您可以连接。

查看有关源数据的以下详细信息。

  • 源数据未打开(例如,是否有人正在编辑源数据?)。

    Essbase 只能加载未被其他用户或应用程序锁定的源数据。

  • 源数据具有正确的文件扩展名。

    文本文件必须具有 .txt 扩展名;规则文件必须具有 .rul 扩展名。

  • 源数据文件名和路径名正确。

    检查拼写错误。

  • 源数据位于指定位置。

    确保没有人移动或删除源数据文件。

  • 如果使用的是 SQL 数据源:

    • 连接详细信息(如用户名、密码和数据库名称)是正确的。

    • 无需使用 Essbase 即可连接到 SQL 源数据。

检查错误日志

在执行数据加载或维构建时,最好让 Essbase 写入错误日志,因为日志是一个有价值的调试工具。它列出维构建或数据加载期间发生的错误,并包括无法加载的记录。

修复错误后,可以从错误日志中重新加载。如果没有错误日志,请检查是否存在以下条件:

  • 运行数据加载或维构建作业的人员已设置错误日志。在执行数据加载或维构建时,可以指示 Essbase 在出错时中止数据加载,或者将错误写入/附加到日志。

    Essbase 为维构建或数据加载创建错误日志时,会在多维数据集目录中创建该日志。文件格式为 err_<databasename>_<number>.txt

  • 数据源和 Essbase Server 均可用。

    请参阅验证 Essbase 服务器是否可用验证源数据是否可用

  • 数据加载期间 Essbase Server 崩溃。

    如果是这样,您可能会在客户机上收到网络超时错误。

  • 应用程序日志已存在。

如果错误日志存在但为空,则 Essbase 不会认为加载期间出错。检查是否存在以下条件:

解决数据加载不正确的问题

如果 Essbase 数据加载没有错误,但数据似乎错误,请首先检查源数据,然后检查隐含的共享资源、数据缩放、符号翻转以及加载规则的其他潜在问题。

检查以下项以对加载的数据进行故障排除:

  • 您加载了正确的数据源。

    如果是,请再次检查数据源以确保其包含正确的值。

  • 源数据的格式正确。

    • 已正确设置所有范围。

    • 数据是干净的。例如,在处理数据源时, Essbase 会识别成员名称并知道其所属的维。如果数据源记录无意中包括标头记录中为其命名成员的维中的成员,则新成员名称将替换该维的标头记录成员。在以下示例数据源中, Essbase 将 Florida 识别为 Market 维的成员。最后四条记录中的值解释为“佛罗里达”值,而不是“德克萨斯”值。

      Jan  Actual  Texas  Sales
         "100-10"   51.7
         "100-20"   102.5
         "100-20"   335.0
         Florida    96.7
         "200-20"   276.0
         "200-20"   113.1
         "200-10"   167.0
  • 是否存在您不知道的任何隐式共享成员(当父代和子代共享相同的数据值时)?

    当父代和子代共享相同的数据值时,会出现隐含的共享成员。如果父代只有一个子代,或者只有一个子代累计到父代,则可能会发生这种情况。

  • 您已将传入数据添加到现有数据,而不是将传入数据替换为现有数据。

    请参阅添加到现有值或从现有值中减去

  • 您选择或拒绝了您不打算选择或拒绝的任何记录。

    请参阅选择和拒绝记录

  • 符号将反转(例如,减号而不是加号),以及是否在任何 UDA 上执行符号翻转。

    请参见 Flip Field Signs

  • 您已清除不打算清除的数据组合。

    请参阅在数据加载期间清除现有数据值

  • 您对传入值进行了错误的缩放。

    请参阅缩放数据值

  • 所有成员和别名的长度都少于 79 个字符。

您可以通过从 Smart ViewReport Writer 中运行查询来检查数据。

创建文件标记结尾的拒绝标准

SQL 数据源可能具有由特殊字符组成的文件标记结尾,这些特殊字符会导致 Essbase 数据加载或维构建失败。要修复此问题,请定义拒绝标准以拒绝问题记录。

要定义拒绝标准,请执行以下操作:

  1. 在 SQL 数据源中查找文件标记的结尾。
  2. 使用 Essbase 搜索命令确定如何搜索文件标记的结尾。

    此任务可能很困难,因为文件标记的结尾可能由一个或多个特殊字符组成。请参阅忽略字符串

  3. 定义拒绝标准,该标准拒绝文件标记的结尾。请参阅选择和拒绝记录

Essbase 如何处理加载规则

有时,您可以通过了解 Essbase 如何初始化/验证加载规则以及它在处理源数据中的记录时执行操作的顺序来跟踪维构建问题。

Essbase 执行以下步骤来初始化加载规则:

  1. 根据关联的大纲验证加载规则。

  2. 验证维。此过程包括确保构建方法和字段类型是兼容的,并且每个维名称都是唯一的。成员名称必须是唯一的或共享的。

  3. 将加载规则中定义的新维添加到大纲。

  4. 读取源数据中指定的标头记录。

然后,在数据加载或维构建期间, Essbase 对源数据的每个记录执行以下操作:

  1. 为所有记录设置文件分隔符。

  2. 按照在加载规则中定义操作的顺序对数据应用字段操作。

    字段操作包括联接、移动、拆分以及使用文本和联接创建字段。要了解在加载规则中定义字段操作的顺序,请参阅对字段执行操作

  3. Essbase 将应用每个字段的所有属性,在继续执行 field2 之前将所有属性应用于 field1。Essbase 按以下顺序应用字段属性:

    1. 忽略在数据加载期间要忽略的字段集。

    2. 忽略在维构建期间要忽略的字段集。

    3. 标记数据字段。

    4. 应用字段名称。

    5. 应用字段层代。

    6. 按照加载规则中定义替换的顺序执行所有替换。

    7. 删除前导和尾部空格。

    8. 将空格转换成下划线。

    9. 应用后缀和前缀操作。

    10. 缩放数据值。

    11. 将文本转换成小写。

    12. 将文本转换为大写。

  4. 将成员或成员信息(或两者)添加到大纲中。

  5. 如果选择跳过行,则 Essbase 将跳过您指定的行数;否则, Essbase 将继续执行第一个记录。

  6. Essbase 按加载规则中定义标准的顺序执行选择或拒绝标准。Essbase 根据指定的标准加载或拒绝源数据的单个记录。

Essbase 如何在数据加载期间处理缺失或无效的字段

如果在数据加载期间缺少成员字段,则 Essbase 使用其以前的值,但如果没有,则停止加载。未知成员名称导致记录被拒绝。如果存在无效的数据字段,则数据加载将停止,从而导致部分数据加载。

有关在这些问题之后重新启动数据加载的信息,请参阅从维构建加载和数据加载错误日志

缺少维或成员字段

如果缺少维或成员字段,则 Essbase 将使用之前用于该维或成员字段的值。如果没有以前的值,则 Essbase 将停止数据加载。

例如,将以下文件加载到 Sample.Basic 数据库中时, Essbase 会将俄亥俄州成员字段映射到所有记录的“市场”维度,包括“产品”维度中有“根啤酒”和“饮食可乐”的记录。

Jan  Sales  Actual  Ohio
                    Cola          25
                    "Root Beer"   50
                    "Diet Cola"   19

如果没有以前的记录包含缺少的成员字段的值,则 Essbase 将停止数据加载。例如,如果尝试将以下文件加载到 Sample.Basic 数据库,则数据加载将停止,因为未指定市场维(在上一个示例中为俄亥俄州)。

Jan  Sales  Actual
            Cola          25
           "Root Beer"    50
           "Diet Cola"    19

未知成员字段

如果您正在执行数据加载并且遇到未知成员名称,则整个记录将被拒绝。如果以前的记录中存在缺少的成员字段的成员名称,则 Essbase 将继续执行下一个记录。如果没有以前的记录,数据加载将停止。例如,将以下文件加载到 Sample Basic 数据库时,包含 Ginger Ale 的记录将被拒绝,因为它不是有效的成员名称。已加载包含“可乐”、“根啤酒”和“奶油苏打”的记录。但是,如果 Ginger Ale 在第一条记录中,则数据加载将停止。

Jan, Sales, Actual
Ohio   Cola          2
       "Root Beer"   12
       "Ginger Ale"  15
       "Cream Soda"  11

注意:

如果要执行维构建,则可以将新成员添加到数据库。请参阅执行数据加载或维构建

数据字段无效

如果正在执行数据加载,则在遇到无效数据字段时,数据加载将停止。在无效字段之前读取的所有字段都将加载到多维数据集,从而导致部分数据加载。例如,在以下文件中,数据加载遇到 15- 数据值时停止。已加载“一月销售额”和“二月销售额”记录,但未加载“三月销售额”和“四月销售额”记录。

East   Cola   Actual
Sales         Jan    $10
              Feb    $21
              Mar    $15-
              Apr    $16

从维构建和数据加载错误日志加载

如果 Essbase 维构建或数据加载失败,则只能通过从错误日志加载失败的记录。仅重新加载失败的记录比重新加载每个记录要快得多。

要从错误日志重新加载,

  1. 如果从服务器加载,请将文件扩展名从 .err 更改为 .txt。例如,将 dataload.err 文件更改为 dataload.txt

    如果从客户机加载,则可以保留 .err 扩展名。

  2. 修复导致维构建或数据加载失败的问题。修复问题可能包括更改大纲、更改错误日志中的某些文本或编辑加载规则。

    检查以下条件是否为真:

  3. 使用适当的加载规则加载错误日志。