取数模块和报告模块的区别
更新时间: 2022-07-21 11:23:37
阅读 2682
取数模块和报告模块的区别
1.场景介绍:
假设现在有交易,地区,客户三张表
1)交易表结构
客户id | 地区id | 销售额 |
---|---|---|
2)地区表结构
地区id | 地区名 |
---|---|
3)客户表结构
客户id | 客户名称 |
---|---|
在有数上建模如下:(关联方式是内连接)
2.报告和取数模块使用:
(1)报告模块使用方式:
数据连接->数据模型(固化)->报告
(2)取数模块使用方式:
数据连接->数据模型(动态)->取数
从使用步骤可以知道,差异点在是否是动态。
假设现在有两个需求:
需求1:按客户维度去分析销售额。
需求2:按地区维度去分析销售额。
需求1:
(1)报告侧使用:
在表格中拖入客户名称和销售额。形成的sql如下:
1 | select 客户名称,sum(销售额) from(select *from 订单表t1,地区表t2,客户表 t3 wheret1.客户id=t3.客户idandt1.地区id=t2.地区id)groupby客户名称 |
---|---|
(2)取数侧使用:
在表格中拖入客户名称和销售额。形成的sql如下:
select客户名称,sum(销售额)from订单表t1,客户表t2wheret1.客户id=t2.客户idgroupby客户名称
需求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 wheret1.地区=t2.地区id groupby 地区名
结论:
(1)报告侧,一旦模型确定,报告侧都是基于模型固化的sql做的分析。模型的sql:
select \ *from 订单表t1,地区表t2,客户表 t3 where t1.客户id=t3.客户id and t1.地区id=t2.地区id
(2)取数侧,表格中使用了哪些字段,就把这些使用字段的表进行关联。
优缺点:
- 取数是动态建模,可以适用于星型模式( 一张事实表,多个维度表关联)
当数据量大的时候,少关联表可以大幅度提升性能。 - 取数是动态建模,是一种探索式分析。
- 报告是固化建模,有一定的使用场景。两者不可替代。
文档反馈
以上内容对您是否有帮助?