基础分析

阅读(941) 标签: dql数据集, dql表,

通过数据集分析小节的学习,相信您已经对如何在多维分析中添加常用数据集有了初步的了解。为了在使用上更加灵活便捷,多维分析还可以使用DQL模型的数据集,DQL模型提供了便于灵活建模的语义层,简明清晰的DQL语法,使得用户能基于更加简洁易懂的数据结构使用更加友好的查询语句进行数据查询。

DQL模型提供了两种类型的数据源:DQL数据源/独立数据源。DQL数据源支持数据库DQL数据源和集算器DQL数据源。独立数据源支持JDBC查询(dql/sql)和数据文件。

若用户需要写复杂DQL语句,可使用独立数据源的DQL JDBC查询,选择DQL数据源,输入DQL语句,即返回DQL数据集。如果只想简单的对某个表做分析,则可选择使用DQL数据源返回某个表,即DQL,这种类型的数据集无需手动输入DQL语句,直接选择要使用的表即可。

 

如上图所示,业务人员想要分析订单表中的订单ID,客户ID,签单日期,订单金额四个指标,并且要让客户ID直接显示中文名。那怎样能让业务人员无需了解数据库表结构,只要在页面上拖拽指标就可以随意查询呢?很简单,只需几步就能轻松搞定!

步骤一:

本例以产品自带的dqldemo数据源为例,打开DQL元数据层设计器,点击菜单服务 - 启动示例数据库系统 - 控制台会输出“数据库已启动”信息,表示HSQL数据库已启动。

步骤二:

打开DQL元数据层设计器,在菜单栏中通过系统 - 数据源或者点击,连接数据源:

步骤三:

新建元数据文件,将数据库中订单和客户表导入到元数据中。

在工具栏中点击【导入数据库表】:

在弹出窗口中选择“订单”和“客户”表,点击【确定】。

导入数据表的元数据文件:

步骤四:

给导入的表设置主键:

给维字段设置更直观的维名,这样页面设置显示值的下拉列表显示会更友好。

制作好的元数据文件保存为后缀lmd 的文件。

步骤五:

定义字典文件:

打开前一步做好的元数据文件,系统菜单下选择【生成字典】,一个字典文件就自动生成了。

在字典文件里设置客户维的显示列名称为客户表的客户名称:

制作好的字典文件保存为后缀为dct的文件。

更多关于语义层中元数据和字典文件的细节可参考语义层小节。

 

步骤六:

通过服务 - 发布并浏览 DQL 分组分析菜单打开发布对话框,选择前面制作好的元数据文件和字典文件,进行发布。发布前需保证要使用的DQL Server服务为启动状态(DQL Server服务的启动可参考启动DQL Server服务小节):

元数据层设计器中可以直接发布元数据和字典文件。当然,也可以将创建好的元数据文件和字典文件部署到独立DQL Server服务和WEB应用中。语义层中的元数据文件需部署在DQL Server服务中,字典文件则需要在WEB应用的多维分析jsp文件中添加JS API部署。

字典文件部署方法如下所示,以产品自带的多维分析页面为例,打开[安装根目录]\report\web\webapps\demo\raqsoft\guide\jsp\olap.jsp,添加如下代码:

<script>

guideConf.dct="D:/test.dct";//设置字典文件

guideConf.autoReloadDimDataOnServer = 'yes'; //每次进入jsp时,根据当前的字典文件重新生成dimData.json

</script>

注:通过元数据层设计器直接发布字典文件或者在多维分析jsp中设置字典文件,都需要将guideConf.autoReloadDimDataOnServer属性值设置为yes,即进入jsp时,重新生成dimData.json真实值与显示值的映射。

更多关于多维分析JS API的介绍可参考JS API控制初始化界面小节;

关于DQL Server独立部署可参见DQL服务器部署集成小节。

步骤七:

点击【发布】按钮,后台程序会自动启动内置的 TOMCAT服务,并打开分组分析页面。

 

下面我们分别以DQL数据集和DQL表为例,让您对DQL模型建立个初步的认识。

DQL数据集

DQL数据集适合熟悉一定DQL语法的用户,它是通过将DQL语句翻译成SQL语句,然后到物理数据库中检索满足一定条件的数据作为数据集。

 

在多维分析页面工具栏中点击数据源下拉框,选择“独立数据源”,新建DQL数据集:

在新建独立数据源窗口,选择SQL查询,选择DQL类型数据源并添加DQL查询语句,点击【试查数据】,再点击【确定新建】 DQL数据集就创建完成了。

点击【试查数据】时,DQL Server会将当前输入的DQL语句翻译成SQL语句,从物理数据库中查询数据并将返回的结果集存入临时文件。

【确定新建】会跳转到一个新的多维报表分析页面,查询字段会默认直接展示在“指标数据区”,可在此基础上修改报表或重新添加报表:

如上图所示客户ID列显示的代码,接下来我们就通过设置显示值,将客户ID显示为客户名称。

点击客户ID字段中的小三角在多级菜单中选择【显示值】,选择客户的代码表:

客户ID就变成客户名称了。

多维分析中的数据集除了可以直接在页面上添加DQL数据集,同时为了方便用户自定义修改,润乾报表还提供了在jsp中通过添加Tag标签属性来添加DQL数据集。

JSPTag标签发布如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"%> 

<%@ taglib uri="/WEB-INF/raqsoftAnalyse.tld" prefix="raqsoft" %>

<raqsoft:analysev2 

dataSource="DataLogic"  //指定DQL Server服务的数据源

ql="select 订单ID,客户ID,签单日期,订单金额 from 订单"  //DQL查询语句

/>

Tag标签中数据集类型对应的属性为dataSourceql。具体关于Tag标签属性介绍可参考《程序员参考》分组分析控件详细说明小节。

 

DQL

对已有DQL Server中的表分析,可以选择此类数据集。选择单表后单表的表字段以及单表所关联的广义外键都会列出。这种类型的数据集不需要用户自己写DQL语句,而是通过简单的拖拽指标字段即可实现数据集的添加。

接上例,我们在多维分析页面中添加一个DQL表类型的数据集。

在右侧的数据分析设计器中拖拽想要展示的指标字段至指标数据区,如拖住订单ID,客户ID,签单日期,订单金额:

DQL Server会将当前拖拽的指标字段,自动拼成DQL查询语句,翻译成SQL语句,并返回满足条件的数据集。

 

多维分析中的数据集除了直接在页面上添加DQL数据集,同时为了方便用户自定义修改,润乾报表还提供了在jsp中通过添加Tag标签属性来添加DQL数据集。使用Tag标签添加DQL表类型数据集时支持设置一个或多个DQL表。

JSPTag标签发布如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"%> 

<%@ taglib uri="/WEB-INF/raqsoftAnalyse.tld" prefix="raqsoft" %>

<raqsoft:analysev2 

dataSource="DataLogic"  //指定DQL Server服务的数据源

fixedTable="订单"  //DQL表,多个表时用逗号隔开

/>

Tag标签中数据集类型对应的属性为dataSourcefixedTable。具体关于Tag标签属性介绍可参考《程序员参考》分组分析控件详细说明小节。

如果想让客户ID显示为客户名称,可参见DQL数据集中对显示值的设置。