BI 前端实践 9:由 DQL 支持的关联多维分析
实践目标
定义完元数据,部署到DQL Server后,再进行多维分析(OLAP)时,体会后续界面操作、概念理解上的难易,探究DQL查询语言对多维分析的实际提升效果;同时,进一步探测DQL查询能力的完备性。
融入关联关系的元数据树
上一节设置了关联关系的元数据orders.lmd中,表名、字段名设置成中文语义:
部署到DQL Server中,在WEB多维分析系统里针对它做多维分析,能看到元数据中设置的关联关系已经体现到元数据树上,如订单表的销售ID展开后,关联到员工(销售)表:
隐式的关联多维分析
在这颗元数据树上直接做多维分析,也能实现之前测试的多种关联方式DQL示例的查询。界面操作也基本继承了DQL的语法特点,过程中不像SQL那样明显感觉到表关联。
同维表关联
同维表所有的字段都合并在一起,感觉是一个表,可以混合着选出两个表中的任意字段:
多级关联表
逐层展开后看到多级关联表,可以随意选用各级字段:
自关联表
订单表的发货城市关联到区域表,之后用父区域可以一直展开,第一次展开父区域是发货省份,再继续展开父区域是发货地区:
互关联表
员工表里的部门字段展开到部门表,部门表中的部门经理字段又展开回到员工表,这个第三层的员工表,代表的是部门经理这种特殊员工:
重复关联表
订单表里的发货城市、收货城市都关联到区域表,能分别展开,自然的也就分别代表收、发货的相关信息:
多字段关联表
订单表里的产品外键比较特殊,它是用两个字段关联到产品表,这里也能顺利展开,使用产品名称等相关字段:
关联以外的全面查询能力
关联(JOIN)是SQL里的重要能力,除此之外,更全面的能力还有查询条件(WHERE)、分组(GROUP BY)、分组后过滤(HAVING)、排序(ORDER BY),DQL对这些也能支持。
设置查询条件
SELECT
T1.(发货城市.区域名称) 发货城市
,T1.(产品.产品名称) 产品名称
FROM
订单表 T1
WHERE
T1.发货城市.区域名称 in ('辽阳市','邯郸市')
相应的多维分析操作:
分组聚合
SELECT
T1.count(姓名) 姓名计数
ON 部门
FROM
员工表 T1
BY T1.部门
相应的多维分析操作:
聚合条件
SELECT
T1.count(姓名) 姓名计数
ON 部门
FROM
员工表 T1 by 部门
HAVING T1.count(姓名)>5
相应的多维分析操作:
数据排序
SELECT
T1.订单ID 订单ID
,T1.发货城市.区域名称 发货城市
,T1.产品.含批次号产品名
FROM
订单表 T1
ORDER BY 订单ID DESC
相应的多维分析操作:
这样测试下来,DQL的查询能力和SQL一样,也是完备的。而DQL对表关联的预定义比较关键,基于它才实现了非按需多次建模(制作CUBE)、自动化的多维分析。
对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅
嗯,还不太了解好多乾?