Mondrian 多层次的雪花维度蒙德里安

Mondrian 多层次的雪花维度蒙德里安,mondrian,star-schema,snowflake-schema,Mondrian,Star Schema,Snowflake Schema,我的表格结构如下 dim_question_tbl table with primary key dim_question_id_i(pk) dim_grade_tbl -> dim_grade_id_i(pk), grade_name_c dim_level_tbl -> dim_level_id_i(pk), level_name_c dim_grade_question_tbl -> dim_grade_question_id_i(pk), dim_grade_id_i

我的表格结构如下

dim_question_tbl table with primary key dim_question_id_i(pk)

dim_grade_tbl -> dim_grade_id_i(pk), grade_name_c
dim_level_tbl -> dim_level_id_i(pk), level_name_c
dim_grade_question_tbl -> dim_grade_question_id_i(pk), dim_grade_id_i(fk), dim_level_id_i(fk)
现在我必须把等级和等级作为维度中的等级

立方体写在“dim_question_tbl”表上

我已经将维度写为

<Dimension name="Grade" foreignKey="dim_question_id_i" highCardinality="false">
            <Hierarchy hasAll="true" primaryKey="dim_question_id_i" primaryKeyTable="dim_grade_question_tbl">               
                <join leftKey="dim_grade_id_i" rightKey="dim_grade_id_i">
                    <table name="dim_grade_question_tbl" />
                    <join leftKey="dim_level_id_i" rightKey="dim_level_id_i">
                        <table name="dim_grade_tbl" />
                        <table name="dim_level_tbl" />
                    </join>
                </join>
                <Level name="EnterpriseID" column="dim_enterprise_id_i" table="dim_grade_tbl" uniqueMembers="true" visible="false"/>
                <Level name="Grade" column="grade_name_c" table="dim_grade_tbl" uniqueMembers="true"/>
                <Level name="Level" column="level_name_c" table="dim_level_tbl" uniqueMembers="true"/>              
            </Hierarchy>
        </Dimension>

这不起作用。我得到的例外是“[等级]”必须至少有一个等级

我也尝试过使用sql查询

<Dimension name="Grade" foreignKey="dim_question_id_i" highCardinality="false">
            <Hierarchy hasAll="true" primaryKey="dim_question_id_i" primaryKeyTable="dim_grade_question_tbl">               
                <Query name="test">
                        <SQL dialect="generic">
                            SELECT *
                            FROM dim_grade_question_tbl, dim_grade_tbl, dim_level_tbl
                            WHERE dim_grade_question_tbl.dim_grade_id_i = dim_grade_tbl.dim_grade_id_i
                            and dim_grade_question_tbl.dim_level_id_i = dim_level_tbl.dim_level_id_i
                        </SQL>
                </Query>
                <Level name="Grade" column="grade_name_c" table="dim_grade_tbl" uniqueMembers="true"/>
                <Level name="Level" column="level_name_c" table="dim_level_tbl" uniqueMembers="true"/>              
            </Hierarchy>
        </Dimension>

挑选*
从尺寸等级问题tbl、尺寸等级tbl、尺寸等级tbl
其中dim_grade_question_tbl.dim_grade_id_i=dim_grade_tbl.dim_grade_id_i
和dim_grade_question_tbl.dim_level_id_i=dim_level_tbl.dim_level_id_i
对于sql查询,我也得到了相同的异常

有谁能帮助我如何使用雪花模式获得多个级别