最近更新时间:2021-03-02 20:03:32
假设现在有交易,地区,客户三张表
1.交易表结构
2.地区表结构
3.客户表结构
在AxisBI上建模如下:(关联方式是内连接)
(1)报告模块使用方式:
数据连接->数据模型(固化)->报告
(2)取数模块使用方式:
数据连接->数据模型(动态)->取数
从使用步骤可以知道,差异点在是否是动态。
假设现在有两个需求:
需求1:按客户维度去分析销售额。
需求2:按地区维度去分析销售额。
需求1:
(1)报告侧使用:
在表格中拖入客户名称和销售额。形成的sql如下:
select 客户名称,
sum(销售额) from (select * from 订单表 t1,地区表 t2,客户表 t3 where t1.客户id=t3.客户id and t1.地区id=t2.地区id ) group by 客户名称
(2)取数侧使用:
在表格中拖入客户名称和销售额。形成的sql如下:
select 客户名称,sum(销售额) from 订单表 t1 ,客户表 t2 where t1.客户id=t2.客户id group by 客户名称
需求2:
(1)报告侧使用:
在表格中拖入地区名和销售额。形成的sql如下:
select 地区名,sum(销售额) from (select * from 订单表 t1,地区表 t2,客户表 t3 where t1.客户id=t3.客户id and t1.地区id=t2.地区id ) group by 地区名
(2)取数侧使用:
在表格中拖入地区名称和销售额。形成的sql如下:
select 地区名,sum(销售额) from 订单表 t1,地区表 t2 where t1.地区=t2.地区id group by 地区名
结论:
(1)报告侧,一旦模型确定,报告侧都是基于模型固化的sql做的分析。模型的sql:
select * from 订单表 t1,地区表 t2,客户表 t3 where t1.客户id=t3.客户id and t1.地区id=t2.地区id
(2)取数侧,表格中使用了哪些字段,就把这些使用字段的表进行关联。
1.取数是动态建模,可以适用于星型模式( 一张事实表,多个维度表关联)
当数据量大的时候,少关联表可以大幅度提升性能。
2.取数是动态建模,是一种探索式分析。
3.报告是固化建模,有一定的使用场景。两者不可替代。
纯净模式