我的编程空间,编程开发者的网络收藏夹
学习永远不晚

当多维分析碰到预定义语义

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

当多维分析碰到预定义语义

在通过sql语句做多维分析时,数据库中通常存储的是英文的表名和字段,这样业务人员无法理解其含义,更多的需要对其进行中英文的转换,也就是如下所说的语义功能。

这个分析数据集来自回款单,由回款单 ID,回款日期,金额,销售 ID 四个字段组成。

对应的 sql 为:select 回款单 ID, 回款日期, 金额, 销售 ID from 回款单

下图左边的报表就是按照销售 ID 这个维度分组,对回款金额进行汇总分析的结果:

当多维分析碰到预定义语义

多维分析就是这么简单,写一条 sql 语句,拖拖拽拽就出炉了。像上面这个例子,如果列名是英文的,需要显示中文名,可以修改 sql 语句,通过 as 给每个字段取别名;如果分析结果显示的是销售 ID,希望显示销售名字,可以修改一下 sql,回款表 left join 雇员表就能解决!相信看过了《给一句 SQL 就能做多维分析》,对这些小技巧一定都记忆犹新。

但是,这样就完美了吗?你的多维分析就止步这里了吗?当然不能,我来帮你分析一下:

1,as 确实能解决列名亲民显示的目的,但如果数据库里的字段全是英文的呢?这是有可能的,而且是大大可能的,那每个 sql,就需要你吭哧吭哧挨个写 as,是不是不太爽?而且同一个列名,在不同的 sql 里可能会取不同的别名,感觉是不是乱糟糟的?

2,通过 left join 跟代码表关联,就可以不通过 ID,直接通过名称分组汇总,但试想一下,如果名字有同名的,如何分开统计呢?再想想,和代码表关联,总要知道两表之间的亲戚关系吧,这对前端分析人员要求是不是过分了点?

所以啊,如果只是简单的,个别的数据库数据分析,写个 sql 能搞定也就作罢了,但现实往往给我们提出了更高的要求,那如何迎战呢?这就是我们今天要给大家隆重介绍的多维分析中的元数据和字典,简单来说,就是基于预先定义好的语义层来进行多维分析,前端分析人员不需要了解,只管拖就行。我们先来体验一把:

还是从回款单里取数:

当多维分析碰到预定义语义

当多维分析碰到预定义语义

分析数据集直接显示别名“销售”,而不是“销售 ID”,查询语句并未因此而变复杂!

继续往下看,如何将分析结果中的销售 ID 显示为销售名称?

销售列点【显示值】菜单,选择销售的代码表

当多维分析碰到预定义语义    当多维分析碰到预定义语义

销售 ID 秒变成大名:

当多维分析碰到预定义语义

如果只想看部分销售的回款情况呢?销售列点【数据过滤】菜单,设置过滤条件:

当多维分析碰到预定义语义         当多维分析碰到预定义语义

下拉菜单直接显示销售名字,而不是 ID, 过滤结果如下:

当多维分析碰到预定义语义

大家是不是发现,整个过程,都没有修改查询语句,而且我们分析的数据集里也没有出现销售姓名列,这就是预定义语义层的功劳,这样是不是让前端分析人员轻便了不少?下面我们就来介绍一下如何让前端分析人员用上多维分析的语义层:

打开元数据层设计器,系统菜单下选择【数据源】,配置好数据源并连接,连接之前,当然要保证所连接数据源已启动哦。

当多维分析碰到预定义语义

演示数据用的是润乾自带的 dqldemo 数据库,所以该数据库不用配置,通过【服务 - 启动示例数据库】菜单启动数据库后,在上图所示对话框中直接连接就 OK 了。

创建元数据文件

文件菜单栏下选择【新建】,选择元数据:

当多维分析碰到预定义语义

系统菜单下选择【导入数据库表】,选中需要的物理表,导入表结构:

当多维分析碰到预定义语义   

给导入的表设置主键,给字段设置别名,这样就可以直接用别名写查询语句,而不用重复用 as 了:

当多维分析碰到预定义语义

当多维分析碰到预定义语义

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

当多维分析碰到预定义语义

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

第三步,定义字典文件

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

在字典文件里设置雇员的显示列字段,销售名字就可以用于分析结果和过滤条件的下拉显示:

当多维分析碰到预定义语义

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

到此,语义层定义就做完了,下面就是如何把语义文件部署到我们的应用中,能在页面上玩转起来!如果你还没有自己的应用,那可以直接在润乾报表内置的 demo 应用里直接发布,过程很简单,一起了解一下:

第一步,启动 DQL 服务

因为有了元数据文件,所以需要有 DQLServer 服务器来进行语义的解析,点击【** 服务 - 启动 DQL 服务】** 菜单,在随后弹出的 DQL 服务器控制台中启动 DQL 服务即可:

当多维分析碰到预定义语义

当然,如果你用的是你自己的数据库,此刻数据库保持启动状态是必须的哈!

细心的读者可能已经发现,DQL 这个词在界面中出现过多次,它到底是什么东西吗?嗯,现在先不去管它,用起来再说,以后我们还会有专门文章来讲到底什么是 DQL,以及为什么会出现它。

第二步,发布

通过【服务 - 发布并浏览 DQL 分组分析】菜单打开发布对话框,选择前面制作好的元数据文件和字典文件:

当多维分析碰到预定义语义

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

当多维分析碰到预定义语义

点击数据集,编辑一条最简单的查询语句,正如我们开篇所演示的,就可以开始语义多维分析的美妙之旅啦!

是不是感觉内置环境的发布相当简单?但如果有了自己的应用,元数据文件和字典文件的部署还是需要进一步深入学习,并根据需求灵活处理的,有兴趣深挖的,可以按以下路线去探探——

元数据文件需要部署到 DQLServer 服务器,如果您希望部署独立的 DQLServer,可以到《分析教程》中查看关于 DQL 服务器部署集成的专题;

字典文件是部署到 web 应用目录下,并在发布分析控件的页面里通过 JS API 去灵活设置,关于这部分的介绍,可以到《分析教程》JS API 相关主题中查看。

    关于有语义的多维分析,今天我们就先唠五毛钱的,有木有觉得,虽然语义层需要预先定义,还需要部署服务,但却是一劳永逸的,管理井然有序,前端分析灵活方便。其实语义还能帮您做更多,要不要这么夸张?不信就赶紧下载亲自用用啰!
详情查看:http://c.raqsoft.com.cn/article/1535687623119?r=gxy

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

当多维分析碰到预定义语义

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

当多维分析碰到预定义语义

在通过sql语句做多维分析时,数据库中通常存储的是英文的表名和字段,这样业务人员无法理解其含义,更多的需要对其进行中英文的转换,也就是如下所说的语义功能。这个分析数据集来自回款单,由回款单 ID,回款日期,金额,销售 ID 四个字段组成。对
2023-06-02

C语言中#define在多行宏定义出错的原因及分析

这篇文章主要介绍了C语言中#define在多行宏定义出错的原因及分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-24

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录