数据联邦分为层级层次和碎片概念的数据联邦
1、层级层次的数据联邦
不需从最细粒度层层汇总计算数据
实现方法:以时间维度和销售事实表为例
DB中设计, 时间维表,创建四张时间维表,结构如下:
A表 天->月->季->年
B 月->季->年
C 季->年
D 年
事实表,创建四张,粒度汇总如下:
a 天,销售数量,销售金额
b 月,销售数量,销售金额
c 季,销售数量,销售金额
d 年,销售数量,销售金额
RPD中设计
- 将这8张表导入RPD中,并创建关联 a->A; b->B; c->C; d->D;
- 在逻辑层创建时间维度层次,将四个表融合 BIEE前段会根据选择哪个层次决定用哪个表
2、碎片概念的数据联邦
应用场景:
当同一层次多个成员分散在多张DB表示,需要将数据联合在一起查询 当一个DB表非常庞大时,需分散这些数据在多张DB表上,以提高查询性能 当一张DB表绝大多数数据不常用,需要将不常用的数据移走,以提高查询性能,但不常用的数据还可以查询
实现方法:以UNIT维度为例
DB中设计: unit维表 A表结构 unit_id unit_name
0 元
1 千元
2 百万
事实表 三张: a表 元, 销售数量,销售金额
b表 千元, 销售数量,销售金额/1000
c表 百万, 销售数量,销售金额/1000000
RPD中设计:
- 将以上4张表导入RPD中并做关联 a->A; b->A; c->A;
- 设置UNIT逻辑层维度层次,在sources中添加三个数据源,并在每一个数据源中设置碎片条件;
- 勾选碎片组合选项 例如 a表 碎片内容:unit_id=0 or unit_name='元';
- 勾选,“此源应当与此级别的其他源组合”