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)、自动化的多维分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值