假设我们有一个事实表“bi_slots”,其中有字段(id、region_id、city_id)。实际上还有更多的领域,但在这里它们并不感兴趣。
还有一个'regions'表,其中有(id,name)字段和'cities'表,其中有(id,name,region_id)字段。
我需要的是为“bi_slots”的多维数据集创建一个维度,其中应用的是 Region->Сity 层次结构。而且,我需要从他们各自的表格中获取地区和城市名称。
所以,维度看起来像:
<Dimension name="AddressDimension" caption="Address">
<Hierarchy name="AddressHierarchy" hasAll="true" primaryKey="id" caption="Region" allMemberCaption="Regions">
<Table name="regions"/>
<Level table="regions" column="id" nameColumn="name" name="RegionLevel" uniqueMembers="true" type="String" caption="Region"/>
<Level table="cities" column="id" nameColumn="name" name="CityLevel" uniqueMembers="true" type="String" caption="City"/>
</Hierarchy>
</Dimension>
以及具有此维度的 Cube 的声明Usage
<Cube name="SlotsCube" caption="Slot Cube">
<View alias="bi_slots">
<SQL><![CDATA[
select *, date_trunc('day', created_at) as date_created_at from bi_slots
]]></SQL>
</View>
<DimensionUsage name="AddressDimension" source="AddressDimension" foreignKey="region_id"/>
像这样放置,它使蒙德里安根本不显示这个立方体,但是当我从我的维度中删除 CityLevel 时,我得到了一个非常精细的区域过滤。
任何帮助都会非常受欢迎,我们真的没有想法。