这有助于理解在 BO 中查询传统(非 OLAP)数据的两遍性质。在 BO 中刷新报表时,报表引擎会根据查询中指定的对象(结果和条件)构造 SQL 语句。
SQL 语句被发送到数据库,然后报表引擎检索从数据库返回的数据。这些数据变成了microcube——它只不过是从数据库接收到的数据的表格表示。如果您可以直观地查看它,它看起来与您在传统 SQL 工具(例如 TOAD 或 SQL*Plus)中运行 SQL 语句所获得的结果相同。
然后微立方体成为报告演示的来源。例如,您可以通过从对象列表中拖入维度和度量来在报表中创建表格。当您拖入这些对象时,表格将根据需要重新计算和重新显示。这一切都是通过从 microcube 中检索和计算数据来完成的,而不是从源数据中而不是。也就是说,当您与报告选项卡进行交互时,您并没有从数据库中启动刷新——所有的计算都是在微立方体中完成的。
例如,假设您创建了一个具有两个维度(州、地区)和一个度量(销售额)的新查询。 SQL 可能如下所示:
select state_nm,region_nm,sum(sales_amt)
from all_sales
group by state_nm,region_nm
请注意,有一个 sum() 应用于 sales_amt。这导致数据库对该字段执行初始聚合。
刷新后创建的微立方体可能如下所示:
AL North 30000
AL South 40000
AR North 5000
AR South 10000
现在您在报表中创建一个表格,然后只选择 State 和 Sales。报表引擎使用微立方体中的数据来显示结果:
AL 70000
AR 5000
在这种情况下,BO 报表引擎对 Sales Amt 执行了 sum() 聚合。这是报表端聚合。
然后你删除状态。同样,报表引擎聚合来自微立方体的表,而不是数据库:
75000
微型立方体与报告文件一起存储。如果您通过 InfoView 处理 WebI 报告,则微立方体将加载到服务器的内存中。保存报告时,会在服务器上创建一个物理文件(扩展名为 .wid);微型立方体存储在该文件中。如果您再次打开报告,微立方体会再次加载到服务器的内存中并可供交互。
如果您使用的是富客户端,那么同样的行为也适用,它只是使用您的工作站和本地存储。
术语“多维数据集”通常用于描述 OLAP 环境(例如 SSAS 或 Essbase)中的数据源。这是 BO 的外部 -- BO 将查询 来自 OLAP 多维数据集的数据。