我被要求参与将大量报告从SAS迁移到Business Objects。现有的SAS报告都使用Base SAS代码来查询事务数据库;虽然它们被称为报告,但它们实际上包含大量数据操作。
虽然我从未使用过Business Objects,但我知道Universe能够应用简单的映射(例如给字段赋予不同的名称),转换(例如连接字段,或者进行求和或平均),并且能够连接表。问题是:数据操作在宇宙中有多广泛?我是否能够模拟使用复杂SQL的SAS代码,或多个临时表作为长计算或程序逻辑的垫脚石?我将在什么时候使用ETL工具来执行这些操作并在数据库中创建基础“报告层”?
答案 0 :(得分:2)
BusinessObjects Universe只是一个元数据层;它没有存储数据,如SAS数据集或Cognos多维数据集。从根本上说,Universe的功能是构造一个SQL语句,用于创建“微管”,然后将其用作单个报告的源数据。因此,不支持过程函数,如临时表的创建。一个可能的解决方法是使用存储过程Universe - 这允许Universe调用存储过程,并使用它返回的结果。当然,存储过程可以在适当的时候创建临时表。
据说,BO创建的SQL可能相当复杂。例如,Universe中的上下文允许创建使用多个事实表中的字段的报表,以避免鸿沟/扇形陷阱如果Universe结构正确,查询引擎将构造多个SQL语句 - 每个使用一个事实表和相关的维度。然后,多个结果集在报告中连接在一起,并显示为单个报告块。
所以,底线,如果您需要预加载或预先计算供BO消耗的数据,您很可能需要一个ETL过程。如果可以使用直接SQL完成所需的结果,那么BO可以可能执行它。