在立方体中合并2个事实?

时间:2015-01-28 14:45:24

标签: schema pentaho olap-cube mondrian

是否可以合并2个事实表以在Mondrian架构中创建多维数据集 示例销售费用的情况?

2 个答案:

答案 0 :(得分:4)

通常在一个事实表中同时包含销售和成本度量,并将它们作为度量添加到一个多维数据集中。

如果你不能将它们放在同一个事实表中,它们需要有共同的维度,所以它们可以在Virtual Cube(最多到Mondrian 3.8)中连接在一起。时间维度通常是:

DHW

  • 表fact_sales: date_key, ..., sales
  • 表fact_cost: date_key, ..., cost
  • 表格dim_date: date_key, day_of_month, month, year, ...

Mondrian OLAP架构

  • 维度[日期]:dim_date,主键列date_key,等级年year,等级月...
  • 多维数据集[销售额]:表格fact_sales,维度[日期]使用情况date_key,衡量sales
  • 多维数据集[费用]:表格fact_sales,维度[日期]使用情况date_key,衡量cost
  • 虚拟多维数据集[销售和费用]:虚拟多维数据集维度[Date],虚拟多维数据集度量[Sales.sales],虚拟多维数据集度量[Cost.cost]

答案 1 :(得分:4)

如果可以使用Mondrian 4,则可以指定应该执行的确切SQL语句来检索事实表的数据。因此,您可以在数据库级别进行连接,如下所示:

 <PhysicalSchema>
    <Query alias="FACT">
        <ExpressionView>
            <SQL dialect="generic">
                select f.*, f2.measure_2 from FACT f INNER JOIN FACT2 f2 ON f.id = f2.fact_id
            </SQL>
        </ExpressionView>
    </Query>
</PhysicalSchema>

请参阅此处的完整示例: http://thejavatar.com/mondrian-4-in-pentaho-bi-server/