代码之家  ›  专栏  ›  技术社区  ›  jl6

就数据操作而言,业务对象世界的限制是什么?

  •  1
  • jl6  · 技术社区  · 12 年前

    我被要求参与将一大套报告从SAS迁移到Business Objects。现有的SAS报告都使用基本SAS代码来查询事务数据库;尽管它们被称为报告,但实际上包含了大量的数据操作。

    尽管我从未使用过Business Objects,但我知道universe能够应用简单的映射(例如为字段赋予不同的名称)、转换(例如连接字段,或进行求和或求平均),并且能够连接表。问题是:在一个宇宙中,数据操作的范围有多广?我是否能够模拟使用复杂SQL或多个临时表作为长计算或过程逻辑的垫脚石的SAS代码?在什么时候,我必须使用ETL工具来进行这些操作,并在数据库中创建底层的“报告层”?

    1 回复  |  直到 12 年前
        1
  •  2
  •   Joe    12 年前

    BusinessObjects universe只是一个元数据层;它没有 百货商店 SAS数据集或Cognos多维数据集之类的数据。从根本上说,宇宙的功能是构建一个SQL语句,该语句将用于创建“微立方体”,然后用作单个报告的源数据。所以 程序性的 不支持创建临时表等函数。一 可能的 解决方法是使用 存储过程通用 --这允许宇宙调用存储过程,并使用它返回的结果。当然,如果合适的话,存储过程可以创建临时表。

    话虽如此,BO创建的SQL可能相当复杂。例如 上下文 在universes中,可以创建一个使用多个事实表中的字段的报告,以避免鸿沟/扇形陷阱。如果universe的结构正确,查询引擎将构造多个SQL语句,每个语句使用一个事实表和相关的维度。然后,多个结果集在报告中连接在一起,并显示为单个报告块。

    因此,归根结底,如果您需要预加载或预计算BO消耗的数据,那么您很可能需要ETL过程。如果可以使用直接SQL实现所需的结果,那么BO可以 可能 去做。