资讯专栏INFORMATION COLUMN

数据仓库的直白概述

sorra / 2079人阅读

摘要:如销售数据跟部门表,客户表之间的关系。而查询,又是这三者之间的粘合剂,它表达了用户的需求,经过引擎的解析,根据数据模型的描述,从数据仓库找到所需要的数据。

本文来自网易云社区

作者:王攀

我们知道,大部分公司都拥有了自己的财务,OA,CRM 等系统。这些系统都有自己的独立数据库,记录着企业运行情况某个方面的数据。但是多带带看这些系统的报表,并不一定能对企业运行情况有全面客观的了解。就像只凭身高不能判断一个人是否健康,所以体检的时候我们需要化验许多指标,做各种检测,就是为了对身体情况有更全面的了解,作出更准确的判断。

同样对一个企业,不能仅根据出勤率就判断一个人的绩效高低,因为你不知道他的工作成果情况。仅根据财务报表输入支出也体现不了各部门的收益情况,这个部门有多少工作人员,完成了哪些任务你也不知道。正式由于这种需求,产生了OLAP(Online analytical processing )应用,在建立了汇集各系统数据的数据仓库后,OLAP应用可以快速解析多维的查询分析,针对查询出的数据,用户也可以方便的进行钻取,如查询出了年度数据,可以很方便的查看月度数据;查询好地区的数据,可以再看相应城市的数据,还可以显示相应的趋势图,柱状图,饼图等,从而给决策者的判断提供有效的数据支持。

一、数据抽取(底层)

我们做饭之前,先要从菜场各个摊位去买我们需要的原材料,如青菜,番茄,鸡蛋,和鱼,然后把菜上的老叶子去掉,鱼鳞和内脏去掉,洗干净。建立OLAP应用之前,我们要想办法把各个独立系统的数据抽取出来,经过一定的转换和过滤,存放到一个集中的地方,成为数据仓库。这个抽取,转换,加载的过程叫ETL(Extract, Transform,Load).相应的开发工具Oracle有DataStage,微软有SQL Server Integration Services,Pentaho有Kettle。这些ETL工具一般都支持图形化流程建模,文本文件映射导入,XML,XSLT,可执行SQL,javascript等。

二、数据建模(中间层)
材料准备好后,我们要规划他们可以做出什么样的菜。首先我们选择主要材料:如鱼,同样是鱼,可以有多种烧法,红烧,清蒸,油炸,水煮。不同的烧法还要搭配相应的辅助材料,如红烧一定要酱油和葱姜。想好了菜单,实际上就已经把这些原材料按不同的组合建立了一定的关系。对于OLAP应用,也要根据客户需求,我们对数据仓库中这些物理存在的表要进行逻辑建模,以某些重要的事实数据(如销售数据)为核心,建立与其他物理表(维度表)之间的业务关系。如销售数据跟部门表,客户表之间的关系。事实和维度之间的组合,就建立了将来做多维查询的基础。建模过程形成的结果在各中平台上的叫法不一样,如BO的叫Universe,Oracle中叫Cube,SqlServer2005的叫统一维度模型UDM,开源Pentaho中也叫Cube。相应的开发工具BO有Business Objects Crystal Decisions,Oracle有 Analytic WorkspaceManager ,SqlServer2005有BusinessIntelligence Development Studio,Pentaho有Schema Workbench。相对其他商业产品,Schema Workbench比较简单,也没有和软件开发平台如Eclipse集成在一起。

三、多维查询(服务层和应用层)

准备好了原材料和相应的菜单,接下来就是根据要求烧菜了。这当中需要有一种表达需求的语言,例如同样是这个红烧鱼,有的人希望甜一些,有些人不喜欢放葱。如果有一个标准的语言描述这种执行要求,就能保证烧的菜符合你的口味了。同样,有了表达逻辑关系的模型Cube,数据仓库中也导入了业务数据,我们还要告诉执行引擎如何取得我们真正所要的数据。这个查询语言就是MDX(Multidimensional Expression),它是微软在1997年首次提出,并为多家厂商采用。

四、应用分析(应用层)

烧好了菜,还要决定如何上菜,是用碗,用盘子还是砂锅,这些都要根据所做的菜式和客户要求。MDX查询返回的是多维数据,普通的二维表很难表现超过2个维度的数据,如果要进行数据的钻取等操作更是难上加难。各厂家的技术平台都有想应的实现技术。比较底层的界面表现技术Oracle 有Business Intelligence Beans,开源的有JPivot,这些需要开发相应的展示页面和维护界面,但可以和已有的系统紧密结合。另外为了方便用户使用和维护,也有做成可运行程序的系统平台。如Oracle有Oracle Business IntelligenceFoundation,开源的有SpagoBI,Pentaho BI Platform等。这些系统都有完整的DashBoard,多维查询,报表等功能,使用维护都比较方便,缺点就是比较庞大笨重。

用户需求决定了如何设计模型和数据仓库,数据模型又是描述数据仓库的逻辑关系,而数据模型和数据仓库的某些技术限制也可能影响用户需求的实现。这三者之间是相互依存和影响着的。而MDX查询,又是这三者之间的粘合剂,它表达了用户的需求,经过OLAP引擎的解析,根据数据模型的描述,从数据仓库找到所需要的数据。

网易云免费体验馆,0成本体验20+款云产品!

更多网易研发、产品、运营经验分享请访问网易云社区。

文章来源: 网易云社区

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25261.html

相关文章

  • 数据仓库概述

    摘要:数据仓库,英文名称为,可简写为或。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。数据仓库特点数据处理,屏蔽源系统和应用的变更面向主题的集成的。其实单元测试并不难,只是需要与业务知识取数逻辑相结合。 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储...

    马龙驹 评论0 收藏0
  • 【容器云 UK8S】镜像仓库:镜像仓库概述,UK8S支持镜像库类型和在UK8S中使用UHub

    摘要:概述镜像仓库概述镜像库用于存储分发镜像,你可以将您的应用打包成镜像,并到镜像仓库,需要使用时,再从镜像仓库到本地。概述镜像仓库概述镜像库用于存储、分发Docker镜像,你可以将您的应用打包成Docker镜像,并Push到镜像仓库,需要使用时,再从镜像仓库Pull到本地。UK8S支持的镜像库类型UK8S支持各类公有及私有镜像库,如:DockerHub官方镜像库(默认)UHub(UCloud镜像...

    Tecode 评论0 收藏0
  • Core Data 概述

    摘要:每一个单件都有一个子单件,这样我们就有数据的父子关系。获取对象我们已经创建一些子单件以及子单件的子单件。我们要展示根单件的子单件,所以我们继续调用此时发生的是上下文根单件的孩子关系出现了错误。 前言 Core Data可能是OS X与iOS中最容易被误解的框架。这篇文章的意义在于让你理解Core Data的本质以及正确的使用Core Data。 Core Data是啥 大苹果发布...

    ASCH 评论0 收藏0
  • MVP应用架构模式

    摘要:最近通过源码设计模式解析与实战对应用架构进行了了解,摘其重点记录于此。模式的三个角色层主要作为和的桥梁,它从层检索数据后,返回给层,使得和之间没有耦合,也将业务逻辑从角色上抽离出来。层角色主要是提供数据的存取功能。 最近通过《Android源码设计模式解析与实战》对MVP应用架构进行了了解,摘其重点记录于此。 MVP简介 MVP模式全称Model View Presenter。能:1....

    fyber 评论0 收藏0
  • 云计算模型 - 1. 概述

    摘要:读了微软总结的云计算设计模式系列文章,觉得很受启发,遂将这个系列翻译出来如下。每个模式都描述了该模式试图解决的问题,在使用该模式时应考虑的问题,以及一个基于微软云的例子。 读了微软 Azure 总结的云计算设计模式系列文章,觉得很受启发,遂将这个系列翻译出来如下。 云计算模型 这些设计模式对于在云上构建高可用性,伸缩性,安全的应用程序很有用。每个模式都描述了该模式试图解决的问题,在使用...

    MarvinZhang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<