1

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

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

4

1 回答 1

2

BusinessObjects Universe 只是一个元数据层;它不存储SAS 数据集或 Cognos 多维数据集等数据。从根本上说,Universe 的功能是构建一个 SQL 语句,该语句将用于创建“微立方体”,然后将其用作单个报告的源数据。因此,不支持过程功能,例如创建临时表。一种可能的解决方法是使用存储过程 Universe——这允许 Universe 调用存储过程,并使用它返回的结果。当然,如果合适,存储过程可以创建临时表。

话虽如此,BO 创建的 SQL 可能相当复杂。例如, Universe 中的上下文可以创建使用来自多个事实表的字段的报告,以避免出现裂痕/扇形陷阱表和相关的维度。然后,多个结果集在报告中合并在一起,并显示为单个报告块。

因此,底线是,如果您需要预先加载或预先计算数据以供 BO 使用,您很可能需要一个 ETL 流程。如果可以使用直接 SQL 实现所需的结果,那么 BO可能可以做到。

于 2013-09-12T12:20:23.717 回答