2

我正在使用简单的模式运行 Saiku Community Edition 3.0:3 个共享维度和两个像这样的多维数据集:

<?xml version="1.0"?>
<Schema name="Schema1" metamodelVersion='4.0'>
    <PhysicalSchema>
        <Table name='dim_date' />
        <Table name='dim_time2' />
        <Table name='dim_user' />
        <Table name='fact_action' />
        <Table name='fact_feedback' />
    </PhysicalSchema>

    <Dimension name='Date' table='dim_date' key='Date Id' type='TIME'>...</Dimension>
    <Dimension name='Time' table='dim_time2' key='Time Id' type='TIME'>...</Dimension>
    <Dimension name='User' table='dim_user' key='User Id'>...</Dimension>

    <Cube name='Actions'>
        <Dimensions>
            <Dimension source='Date' />
            <Dimension source='Time' />
            <Dimension source='User' name='User1' />
            <Dimension source='User' name='User2' />
            <Dimension source='Comment' />
        </Dimensions>

        <CalculatedMembers>
            <CalculatedMember name='Action count' dimension='Measures' formula='Measures.[Type1 action count] + Measures.[Type2 action count] + Measures.[Type3 action count]' aggregator='sum'>
                <CalculatedMemberProperty name='FORMAT_STRING' value='#,###'/>
                <CalculatedMemberProperty name='DATATYPE' value='Integer' />
            </CalculatedMember>
        </CalculatedMembers>

        <MeasureGroups>
            <MeasureGroup name='Actions' table='fact_action'>
                <Measures>
                    <Measure name='Type1 action count' column='action_type1' aggregator='sum' formatString='#,###' />
                    <Measure name='Type2 action count' column='action_type2' aggregator='sum' formatString='#,###' />
                    <Measure name='Type3 action count' column='action_type3' aggregator='sum' formatString='#,###' />
                </Measures>
                <DimensionLinks>
                    <ForeignKeyLink dimension='Date' foreignKeyColumn='date_tk' />
                    <ForeignKeyLink dimension='Time' foreignKeyColumn='time2_tk' />
                    <ForeignKeyLink dimension='User1' foreignKeyColumn='user1_tk' />
                    <ForeignKeyLink dimension='User2' foreignKeyColumn='user2_tk' />
                </DimensionLinks>
            </MeasureGroup>
        </MeasureGroups>
    </Cube>

    <Cube name='Feedback'>
        <Dimensions>
            <Dimension source='Date' />
            <Dimension source='Time' />
            <Dimension source='User' name='User1' />
            <Dimension source='User' name='User2' />
        </Dimensions>

        <CalculatedMembers>
            <CalculatedMember name='Feedback count' dimension='Measures' formula='Measures.[Type1 feedback count] + Measures.[Type2 feedback count] + Measures.[Type3 feedback count] + Measures.[Type4 feedback count]' aggregator='sum'>
                <CalculatedMemberProperty name='FORMAT_STRING' value='#,###'/>
                <CalculatedMemberProperty name='DATATYPE' value='Integer' />
            </CalculatedMember>
        </CalculatedMembers>

        <MeasureGroups>
            <MeasureGroup name='Feedback' table='fact_feedback'>
                <Measures>
                    <Measure name='Type1 feedback count' column='type1_count' aggregator='sum' formatString='#,###' />
                    <Measure name='Type2 feedback count' column='type2_count' aggregator='sum' formatString='#,###' />
                    <Measure name='Type3 feedback count' column='type3_count' aggregator='sum' formatString='#,###' />
                    <Measure name='Type4 feedback count' column='type4_count' aggregator='sum' formatString='#,###' />
                </Measures>
                <DimensionLinks>
                    <ForeignKeyLink dimension='Date' foreignKeyColumn='date_tk' />
                    <ForeignKeyLink dimension='Time' foreignKeyColumn='time2_tk' />
                    <ForeignKeyLink dimension='User1' foreignKeyColumn='user1_tk' />
                    <ForeignKeyLink dimension='User2' foreignKeyColumn='user2_tk' />
                </DimensionLinks>
            </MeasureGroup>
        </MeasureGroups>
    </Cube>
</Schema>

这工作正常。我在 Saiku 中看到了两个立方体,它们按预期工作。现在我需要第三个虚拟多维数据集,它结合了上述两个指标。我尝试了许多不同的方法,但我没能在 saiku 中看到虚拟立方体。奇怪的是,通常当您上传语法错误的模式时,您不会从中看到任何多维数据集。但我仍然看到上面定义的两个立方体,但没有看到第三个虚拟立方体。

我试过在结束</Schema>标签之前定义它,如下所示:

<VirtualCube name="Performance" enabled="true">
    <CubeUsages>
        <CubeUsage cubeName="Actions" />
        <CubeUsage cubeName="Feedback" />
    </CubeUsages>
    <VirtualCubeDimension name="Date" />
    <VirtualCubeMeasure cubeName="Feedback" name="[Measures].[Type1 feedback count]" visible="true" />
    <VirtualCubeMeasure cubeName="Actions" name="[Measures].[Type1 action count]" visible="true" />
    <CalculatedMember name="Feedback per Actions" formula="[Measures].[Type1 feedback count] / [Measures].[Type1 action count]" dimension="Measures">
    </CalculatedMember>
</VirtualCube>

虚拟立方体在 Saiku 中不可见,我做错了什么?

4

2 回答 2

1

在 Saiku 3 中,我们使用 Mondrian 4,它使用不同的模式定义,因此不需要虚拟立方体(谢天谢地),无论如何,为了让 Mondrian 3 模式正常工作,它在加载模式时会进行大量动态更改将 v3 转换为 v4。我的猜测是它无法处理虚拟立方体定义,因为 Mondrian 4 不使用它们,因此跳过它。

于 2015-01-27T13:25:23.950 回答
0

metamodelVersion您的架构遵循 Mondrian 4 规则,如schemaelement中所写<Schema name="Schema1" metamodelVersion='4.0'>。Mondrian 3 和 Mondrian 4 方案之间存在许多差异。主要是使用MeasureGroups(自蒙德里安 4 起)而不是VirtualCubes(蒙德里安 3)。

你不能再VirtualCube在 Mondrian 4 中使用了。要组合来自两个多维数据集的指标,请使用MeasureGroups.

不幸的是,目前还没有正式的 Mondrian 4 文档。但是这个文档存根似乎是Mondrian 4 文档候选。阅读这些章节:

  • 2.1 Schema 的结构
  • 3. 逻辑模型

从第4章开始,它似乎并不真实。你可以看到很多TODO。完全忽略第5.1 节 Virtual cubes

Mondrian 4 候选文档Mondrian 3 文档进行比较以查看差异。从第 2 章开始主要关注模式 XML 结构。

于 2015-02-27T14:20:13.823 回答