今天实现了共享维度和多层次的一个例子,用的工具是Schema workbench。希望对大家有用
首先定义了两个共享维度Employee和Time,Time有两个层次(一个是没有名字,一个是Time_Weekly)。 最后是两个事实表对应的Cube。 <Schema name="Mondrian"> <Dimension type="TimeDimension" name="Time"> <Hierarchy hasAll="true" primaryKey="TIME_ID"> <Table name="TB_TIME" schema="MYORACLE"> </Table> <Level name="Year" column="THE_YEAR" type="Numeric" uniqueMembers="true" levelType="TimeYears" hideMemberIf="Never"> </Level> <Level name="Month" column="THE_MONTH" type="Numeric" uniqueMembers="false" levelType="TimeMonths" hideMemberIf="Never"> </Level> </Hierarchy> <Hierarchy name="Time_Weekly" hasAll="true" allMemberName="All Week" primaryKey="TIME_ID"> <Table name="TB_TIME_WEEKLY" schema="MYORACLE"> </Table> <Level name="Year" column="YEAR" type="Numeric" uniqueMembers="true" levelType="TimeYears"> </Level> <Level name="Month" column="MONTH" type="Numeric" uniqueMembers="false" levelType="TimeMonths"> </Level> <Level name="Week" column="WEEK" type="Numeric" uniqueMembers="false" levelType="TimeWeeks"> </Level> </Hierarchy> </Dimension> <Dimension type="StandardDimension" name="Employee"> <Hierarchy hasAll="true" primaryKey="EMPLOYEE_ID"> <Table name="TB_EMPLOYEE" schema="MYORACLE" alias=""> </Table> <Level name="employee_id" column="EMPLOYEE_ID" nameColumn="EMPLOYEE_NAME" type="String" uniqueMembers="true" levelType="Regular"> </Level> </Hierarchy> </Dimension> <Cube name="Cube" cache="true" enabled="true"> <Table name="TB_SALARY" schema="MYORACLE"> </Table> <DimensionUsage source="Employee" name="Employee" foreignKey="EMPLOYEE_ID"> </DimensionUsage> <DimensionUsage source="Time" name="Time" foreignKey="TIME_ID"> </DimensionUsage> <Measure name="Salary" column="SALARY" aggregator="sum"> </Measure> </Cube> <Cube name="Cube 1" cache="true" enabled="true"> <Table name="TB_SALARY2" schema="MYORACLE" alias=""> </Table> <DimensionUsage source="Employee" name="Employee" foreignKey="EM_ID"> </DimensionUsage> <DimensionUsage source="Time" name="Time" foreignKey="TIME_ID"> </DimensionUsage> <Measure name="Salary" column="SALARY" aggregator="sum" visible="true"> </Measure> </Cube> </Schema> |