OLAP数据建模工具Workbench的初步使用(数据立方体的建立)

概要:

1.workbench工具简介

2.workbench简单操作(附demo)

3.workbench初步使用总结

1.workbench工具简介

OLAP,(Online Analytical Processing,联机分析处理)。从事相关工作的小伙伴,具体的相关概念就不一一赘述,概念不懂,有古哥和度娘的柔怀。在这里,主要介绍一番在OLAP中,数据建模的工具workbench的使用。我们知道,要想进行OLAP,则需要建立数据立方体,来从多个维度来分析数据,从而得到相应的信息。关于数据立方体(Cube),其实就是一个XML文件,然后由ROLAP(relation-olap)服务器,如mondrian,或者轻量级OLAP分析引擎Saiku进行解析,最后将所需的信息以报表形式呈现。

所以,OLAP数据建模,即数据立方体的建立也就相当关键,直接影响结果的准确性。对于数据立方体,可以采用直接写XML的形式写出来。然而当数据立方体比较大,对应的XML会非常的大,内容也很多。对于维护以及查阅,造成一定的困难。所以这个时候,建议使用OLAP建模工具workbench来创建数据立方体。简单来说,workbench就是一个建立数据立方体的图形界面工具,由Java语言开发。通过workbench的图形界面,建立数据立方体,然后该工具帮你自动生成对应的XML。当然,有些大大说不好用,的确有些地方用着不舒服,但是一个人一种习惯,自己顺手就好啦。一句话:工具为了提升效率,别和自己过不去呀。

2.workbenchbench简单操作

下面我们通过一个简单的demo,来创建一个数据立方体,show一下工具的简单使用。

相关参数:

a. 数据立方体:myCube

b. 所连数据库:test

c. 关联事实表:my_fact_table

d. 关联维度表:my_dim_table

e. 所建维度:myDimension

f. 所建指标:myMeasure和myCM

注:涉及概念,古哥和度娘在等你。

1)连接数据库

a.因为所建的这个数据立方体是关联到一个数据库中的数据,所以我们需要先连接一个库。我所使用的是本地mysql数据库。

如图1.

b.如图2,弹出如下界面,选择“一般”-->连接类型选择“MySQL”-->连接方式选择“Native(JDBC)”-->填写右侧设置中的信息。

c.如图3,点击测试,测试是否可以连接成功。若OK,点击确认,连接完成。

2)建立Schema

何谓Schema?简单来说,就是描述一个逻辑模型到数据库中物理模型的映射的。其实他就是数据库中的一个命名空间,里面包含着诸如表、索引等对象。

a.如图4.File-->new-->Schema

b.如图5,填写Schema相关信息。

·name:指该Schema名称,我们命名为mySchema。

·description:该Schema相关的描述,可以为空

3)建立Cube

a.如图6

b.如图7,填写Cube相关信息

·name:指该Cube名称,我们命名为myCube

·description:该Cube的描述,可以为空,对外不可见

·caption:对外显示的标题

4)Cube关联事实表

a.如图8

b.如图9,选择相关的事实表,我们选择my_fact_table。

5)建立维度myDimension

a.如图10

b.如图11,填写Dimension相关信息

·name:指该维度的名字,我们命名为myDimension

·description:该维度的描述,对外不可见,可以为空

·foreignKey:这是指维度表在事实表中的外键。如事实表my_fact_table与维度表my_dim_table通过字段user_id相关联,即my_fact_table事实表中,user_id的字段内容是维度表my_dim_table中的主键。则user_id则是外键,所以将user_id填入此处,用来关联两个表。记住,此处填写的是事实表中的字段,不是维度表中的。

·caption:对外显示的标题

c.如图12,填写维度下层次的信息

·primaryKey:指的是维度表中的主键,此处需要关联完维度表后选择。

d.如图13,14,为该维度关联维度表

e.如图15,16,建立维度的层级,并填写相关信息

·name:层级的名词,我们命名为myLevel

·table:此处填写要关联的维度表,但因为之前已经关联,所以此处为空,不需要填写。

·column:此处是和事实表关联的字段

·nameColumn:此处是维度表中,将要显示的字段,若为空,则默认显示column处的字段内容,一般不填写,而是把该内容写到column中。

·type:要显示列的数据类型,如nameColumn为空,则填column处字段的类型

·levelType:除了时间,其他类型都选择Regular

·hideMemberIf:一般都选择Never,即不管什么情况下,数据都不隐藏

·caption:对外显示的名字

·visible:勾选,对外可见

f.别忘记了第c步中选择主键哦

6)建立指标

6-1)建立正常指标

a.如图17

b.如图18,填写相关信息

·name:指标名称,我们命名为myMeasure

·aggregator:我们采用的聚合函数,可以通过下拉选择,这里我们采用distinct-count,来计算一共有多少个user_id

·column:要应用函数的列,这里我们在下拉中选择user_id

·formatString:结果显示的形式,这里我们没有选,可以选择###.###,以三位一组来显示。

·datatype:要显示的结果是什么类型的,我们选择Numeric,也可以选择Integer,因为我们是计算user_id的数量

·caption:对外显示的标题

·visible:勾选,对外可见

6-2)建立带sql表达式的指标

如果我们要应用函数的列不是一整列,而是该列中符合我们筛选条件的一部分,该怎么办呢?简单,通过添加表达式来书写筛选sql来得到我们要应用函数的那一列的部分。

a.如图19

b.如图20,我们要书写筛选条件sql,采用sql的条件语句:

case when my_fact_table.id < 10 then my_fact_table.user_id else null end

意思是:如果事实表中的主键id小于10,那么我们将主键小于10的user_id来应用distinct-count函数,否则,该列为空。

小技巧:这里书写完sql,如果你直接点击左侧的菜单栏,当你再次打开这个sql时,就发现,哎?怎么是空白的?我之前写的sql呢?报警了啊!居然没了!对,你没有看错,就是没了。我也不知道为啥会这样,估计是这工具的一个小bug,但是这种问题如何解决呢?简单!只要点击当前页面的任意一个选项就可以啦,你看下面不是有个dialect吗?鼠标双击它,然后再点击菜单栏,问题就没了,sql就保存了。我也是费了好大劲才发现,囧。

7)建立CM

CM是啥咧?Calculated Member,计算成员。但这又是啥?简单来说,CM也是一种指标,只是不像6)中的指标,只有他提供的那几个函数,在CM中,我们可以通过MDX多维表达式来自己定义一些自己想要的函数或者表达式,来完成我们对列的复杂操作。

如图21

如图22,填写相关CM信息

·dimension:这里只选择Measures,因为我们要借助指标来进行函数计算

·formula|formulaElement:这是我们自定义函数的表达式,这里需要用MDX语言,该语言是适用于OLAP的多维表达式,类似于sql,但有区别。我们在这里写[Measures].[myMeasure] / 24,意为:我们用我们之前建立的指标myMeasure来除以24,假设我们之前的指标myMeasure表示一天的用户数量,则这个CM所计算的结果代表平均每个小时的用户量。

8)保存

点击工具栏中的保存按钮,将我们的Schema保存下来,以供后续使用,到此,数据模型我们已经建立完成,得到了相应的xml,如图24。

3.workbench初步使用总结

1.workbench的功能不仅这一点,还有很多,这里只是初步给大家展示一下如何建立一个简单的数据立方体。当然,深入学习还是靠自己,关于该工具,有提供的相关文档mondrian_technical_guide.pdf,在软件安装包doc文件夹中,虽然是英文的,我想这不是问题哈。

2.很多人疑惑,建立完xml就完了?那么数据怎么展示?哈哈,当然没有结束,不过那不是我们这篇文章所讨论的啦,以后会给大家补上如何应用saiku引擎或者mondrian这种olap服务器来解析xml并展示出我们所需要的报表数据的。

3.再次声明,这文章本身就是我这个小菜鸟写的一篇给另一些不熟悉的小菜鸟看的。请各路大神大牛勿喷哦,我也是刚开始接触olap,现在学识浅薄,只当做个积累,也拿出来和大家分享分享,若有哪里不对的地方,请多多指点,不胜感激。

4.最后,大家一起努力,共同进步!

mysql构建数据立方体_OLAP数据建模工具Workbench的初步使用(数据立方体的建立)相关推荐

  1. 精算模型10 非参数模型0 精算数据、非参数建模的思路概述

    精算模型10 非参数模型0 精算数据.非参数建模的目标概述 数据类型 完整数据 非完整数据 数据分析目标 这是精算模型的第十部分,精算的非参数统计模型,从这一部分开始我们讨论精算建模的统计方法.在讨论 ...

  2. 好用的mysql数据库建模工具有哪些

    有很多好用的MySQL数据库建模工具,以下是一些常用的工具: MySQL Workbench:MySQL官方推出的免费数据库建模工具,支持创建.修改和维护MySQL数据库,同时还提供了可视化的建模和管 ...

  3. 读书笔记丨《数据产品经理修炼手册:从零基础到大数据产品实践》丨DAY5

    内容:第5章 大数据分析平台实践 时间:2022年8月7日 5.1 大数据分析平台的前世今生 5.1.1 大数据分析平台构建的背景         构建一个大数据分析平台,结合多个业务系统,从中抽取海 ...

  4. 用数据库建模工具进行数据库建模

    很多人在进行数据库设计的时候,还是喜欢使用word文档的格式设计好数据库结构以后,再进行物理数据库的创建:而真正使用数据库建模工具进行数据库设计的就很少了:如果你讯问那些不愿意使用数据库建模工具的人为 ...

  5. 2020年十个强大的数据建模工具

    数据科学可以使企业处理大量信息,并获得曾经花费大量时间才计算出来的宝贵数据.如果企业处理大量数据,那么可以采用数据建模工具为其业务或开发新数据库的任务创建整体IT策略. 数据科学可以使企业处理大量信息 ...

  6. [GIS热点] 3DGIS-GIS数码城市(CCGIS) | BIM与GIS | 构建三维模型的技术手段 | CAD的数据模型 | CAD与GIS建模差异 | CAD与GIS的数据集成方案

    文章目录 3D GIS 背景:GIS数码城市 三维城市模型 CAD与GIS CAD的数据模型 几种常见三维系统及其文件格式 CAD与GIS建模的差异 CAD/GIS集成常用的数据模型 BIM与GIS ...

  7. 非常好用的数据建模工具erwin data modeler

    erwin, Inc. 是全球最大的数据建模软件供应商,受到60 多个国家50000 多名数据专业人士的信赖.erwin通过集成业务流程建模.企业架构.数据治理和协作解决方案,构建出业界唯一的统一数据 ...

  8. mysql 客户无感知迁移_亿级账户数据迁移,不用数据库工具还能怎么搞?

    原标题:亿级账户数据迁移,不用数据库工具还能怎么搞? 背景 在阿里巴巴内部"大中台,小前台"的组织和业务体制,使前线业务更加敏捷,赋能业务积极迎接未来挑战和机遇,在阿里大中台能力建 ...

  9. mysql profile 导出_MySQL数据的导出和导入工具:mysqldump_MySQL

    mysqldump 导出要用到MySQL的mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个 ...

最新文章

  1. 线结构光标定详细步骤与实现HALCON
  2. Java的IO操作(二) - 带缓冲区的流对象、写入基本数据类型、实现命令行中的copy命令...
  3. 排序算法——直接插入排序
  4. docker-compose观察实时日志_大数据项目实战之在线教育(03实时需求) - 十一vs十一...
  5. java中怎样验证重复文件_java – 如何在下载之前检查URL中的重复文件
  6. 多亏了这篇文章,我的开发效率远远领先于我的同事
  7. java中为什么使用上转型和下转型
  8. 如何让CSS动画中途停止并维持姿态
  9. 图像处理之给定任意四点不规则放缩
  10. 高性能计算机储存部件硬盘,高性能计算机的磁盘系统结构.pdf
  11. NBA的字母哥如何拿到2415万美金年薪
  12. Linux列出安装过的程序
  13. 纯CSS代码绘制小米LOGO
  14. Pix4D生成正射影像和DSM详细教程(可下载)
  15. matlab中的uicontrol,Matlab的uicontrol出错
  16. 淮北农村生活污水处理设备——十四五生态环境保护规划
  17. npm安装express-art-template报错:no such file or directory, open 'D:xx\xx\package.json解决办法
  18. 嵊州D4T1 翻车 rollover 真的翻车了
  19. oracle 11客户端精简版,oracle_11g精简版客户端配置
  20. 异常-银行账户异常处理

热门文章

  1. Flink State 有可能代替数据库吗?
  2. Swift 5 时代的机遇与挑战到底在哪里?
  3. 年轻人,你为什么来阿里做技术?
  4. 华为云云原生首次在太空验证,提升“天算星座“卫星计算精度
  5. 英特尔助力完善AI人才培养,携手微软共促地球可持续发展
  6. 立即生效!帕特·基辛格卸任 VMware 所有职务
  7. 没错!Python程序员正在消失,HR:你才知道?
  8. 趣挨踢 | 30 个让程序员崩溃的瞬间,笑死我了!
  9. 趣挨踢 | 关于遗留代码的那些事儿
  10. SpringBoot 使用宝兰德中间件替换tomcat运行部署+控制台部署