多维分析中不仅支持单表分析,还可以对多表做关联分析。通过对元数据做高级设计,在多维分析中用外键属性化、同维表等同化等方法,将多表关联透明化。用户可随意拖拽需要查询的维度指标进行分析。
从上图可以看到数据库中有订单、客户、城市三张表,订单与客户使用客户ID做关联,客户与城市表使用城市编码做关联。通过这样的表关系,可以很容易的统计不同城市中客户的订单信息,但如果业务人员想要按年月日层级来观察不同时期的客户签单情况。该如何实现呢?
步骤一:
本例以产品自带的dqldemo数据源为例,打开DQL元数据层设计器,点击菜单服务 - 启动示例数据库,系统 - 控制台会输出“数据库已启动”信息,表示dqldemo数据源所需连接的HSQL数据库已启动。
步骤二:
打开DQL元数据层设计器,在菜单栏中通过系统 - 数据源或者点击,连接数据源:
步骤三:
新建元数据文件,将数据库中订单表、客户表、城市表导入元数据中。
在工具栏中点击【导入数据库表】:
在弹出窗口中选择“订单表”、“客户表”、“城市表”,点击【确定】。
导入数据表的元数据文件,为订单表、客户表、城市表设置主键:
步骤四:
点击,添加年、月、日三个假表(假表的详细介绍可参见:高级元数据设计 - 假表层函数)。
步骤五:
为订单表中的签单日期和客户ID添加外键。
为客户表中的城市编码添加外键。
制作好的元数据文件保存为后缀为lmd的文件。
步骤六:
定义字典文件:
打开前一步做好的元数据文件,系统菜单下选择【生成字典】,一个字典文件就自动生成了。
在字典文件里设置城市维的显示列名称为城市表的城市名称:
制作好的字典文件保存为后缀为dct的文件。
更多关于语义层中元数据和字典文件的细节可参考语义层小节。
步骤七:
通过服务 - 发布并浏览 DQL 分组分析菜单打开发布对话框,选择前面制作好的元数据文件,将元数据文件发布到URL指定的报表DQL Server服务中,发布前需保证要使用的报表DQL Server服务为启动状态(报表DQL Server服务的启动可参考启动报表DQL Server服务小节):
关于报表DQL Server独立部署的详解可参见报表DQL服务器部署集成小节。
点击【发布】按钮,后台程序会自动启动内置的 TOMCAT服务,并打开分组分析页面:
我们将“年”、“月”拖拽到左表头,“城市编码”拖拽到上表头,中间数据区对订单金额求和、客户名称计数,这样一来,按年月层级来观察不同时期的客户签单情况就展示出来了。
本节以分表为例,讲述在分析控件中对分表的使用。
步骤一:连接数据源
本例以产品自带的dqldemo数据源为例,点击菜单服务 - 启动示例数据库,控制台显示“数据库已启动”信息,表示dqldemo数据源所需连接的HSQL数据库已启动。
打开DQL元数据层设计器,点击,连接数据源:
步骤二:设计分表元数据
新建一个元数据类型的文件
点击新建分表,并选中“回款单2011”及“回款单2012”
编辑分表表名为“回款单”,并且选中“回款单ID”作为主键
在分区标签下,分段字段名称选中“回款单ID”,编辑段界为“100”
保存文件为test.lmd。(详细请见:高级元数据设计-分表)
步骤三:将test.lmd部署到报表DQL Server服务中,启动报表DQL Server服务
元数据的部署可参考报表DQL Server部署小节。
步骤四:启动服务器
润乾报表嵌入了内置的TOMCAT,打开DQL元数据层设计器,通过工具栏最右方的【启动服务器】按钮启动服务器,也可以通过菜单服务 - 启动TOMCAT启动。
步骤五:访问多维分析页面
点击,选择“DQL分组分析”,进入分析页面:
点击右上角的【数据集】,在数据库查询标签下输入DQL语句,点击【导入数据】按钮,将查询结果缓存入临时文件。
最终使用的语句如下所示:
DQL:select 回款单ID,回款日期,金额 from 回款单 where 回款单ID < 90
SQL:SELECT T_1."回款单ID" "回款单ID",T_1."回款日期" "回款日期",T_1."金额" "金额" FROM (SELECT * from "回款单2011") T_1 WHERE T_1."回款单ID"<90
由于筛选字段为分段字段,所以查询时根据段界的设定,只查询了分区“回款单2011”中回款单ID小于90的数据。
数据集创建好后,下面就可以新建报表了。
点击【添加报表】,选中刚刚设置好的数据集“DataLogic”,输入报表名称,点击【确定】
将字段拖拽到数据展示区显示
可以看到报表中所有数据的回款单ID均小于90,并且都是2011年中的数据。