探秘Hadoop生态6:Hive技术初探与实践入门
数据仓库_总结
一,数据类型
数据储存库将包括关系数据库、数据仓库、事务数据库、高级数据库系统、一般文件、数据流和万维网。高级数据库系统包括对象-关系数据库和面向特殊应用的数据库,如空间数据库、时间序列数据库、文本数据库和多媒体数据库。
1.1关系数据库
关系数据库是表的汇集,每个表都赋予唯一的名字。每个表包含一组属性(列或字段),通常存放大量元组(记录或行)。关系表中的每个元组代表一个对象,被唯一的关键字标识,并被一组属性值描述。通常为关系数据库构造语义数据模型,如实体-联系(ER)模型。ER数据模型将数据库表示成一组实体和它们之间的联系。
1.2数据仓库
数据仓库通过数据清理、数据变换、数据集成、数据装入和定期数据刷新过程来构造。
为便于决策,数据仓库中的数据围绕诸如顾客、商品、供应商和活动等主题组织。数据存储从历史的角度(如过去的5~10年)提供信息,并且通常是汇总的。
通常,数据仓库用多维数据库结构建模。其中,每个维对应于模式中一个或一组属性,每个单元存放某种聚集度量值,如count或sales_amount。数据仓库的实际物理结构可以是关系数据存储或多维数据立方体(multidimensional data cube)。数据立方体提供数据的多维视图,并允许预计算和快速访问汇总数据。
1.3 数据集市
你可能会问:“我听说过数据集市。数据仓库和数据集市的区别是什么?”数据仓库收集了跨部门的整个组织的主题信息,因此它是企业范围的。另一方面,数据集市(data mart)是数据仓库的一个部门子集。它聚焦在选定的主题上,是部门范围的。
1.4联机分析处理OLAP
通过提供多维数据视图和汇总数据的预计算,数据仓库非常适合联机分析处理(OLAP)。OLAP操作使用数据的领域背景知识,允许在不同的抽象层提供数据。这些操作适合不同的用户。OLAP操作的例子包括下钻(drill-down)和上卷(roll-up),允许用户在不同的汇总级别观察数据。
1.5 事务数据库
一般,事务数据库由一个文件组成,其中每个记录代表一个事务。通常,一个事务包含唯一的事务标识号(trans_ID)和组成该事务的项的列表(如,在商店购买的商品)。事务数据库可能有一些与之相关联的附加表,包含关于销售的其他信息,如事务的日期、顾客的ID号、销售者的ID号、销售分店的ID号,等等。
1.6 综合决策支持系统
把数据仓库、OLAP、数据挖掘和模型库结合起来即形成综合决策支持系统;其中的数据仓库用来实现对决策主题数据的存储和综合,OLAP用于多维数据分析,数据挖掘用以从数据库和数据仓库中提取知识,模型库实现多个广义模型的组合辅助决策;再加上专家系统,则可利用知识推理进行定性分析。
二,剖析数据仓库
1.数据仓库带来了什么
数据仓库给组织带来了巨大的变化。数据仓库的建立给企业带来了一些新的工作流程,其他的流程也因此而改变。
数据仓库为企业带来了一些“以数据为基础的知识”,它们主要应用于对市场战略的评价,和为企业发现新的市场商机,同时,也用来控制库存、检查生产方法和定义客户群。
每一家公司都有自己的数据。数据仓库将企业的数据按照特定的方式组织,从而产生新的商业知识,并为企业的运作带来新的视角。
2.为何要建立数据仓库
计算机发展的早期,人们已经提出了建立数据仓库的构想。“数据仓库”一词最早是在1900年,由Bill Inmon先生提出的,其描述如下:数据仓库是为支持企业决策而特别设计和建立的数据集合。
企业建立数据仓库是为了填补现有数据存储形式已经不能满足信息分析的需要。数据仓库理论中的一个核心理念就是:事务型数据和决策支持型数据的处理性能不同。
企业在它们的事务操作收集数据。在企业运作过程中:随着定货、销售记录的进行,这些事务型数据也连续的产生。为了引入数据,我们必须优化事务型数据库。
处理决策支持型数据时,一些问题经常会被提出:哪类客户会购买哪类产品?促销后销售额会变化多少?价格变化后或者商店地址变化后销售额又会变化多少呢?在某一段时间内,相对其他产品来说哪类产品特别容易卖呢?哪些客户增加了他们的购买额?哪些客户又削减了他们的购买额呢?
事务型数据库可以为这些问题作出解答,但是它所给出的答案往往并不能让人十分满意。在运用有限的计算机资源时常常存在着竞争。在增加新信息的时候我们需要事务型数据库是空闲的。而在解答一系列具体的有关信息分析的问题的时候,系统处理新数据的有效性又会被大大降低。另一个问题就在于事务型数据总是在动态的变化之中的。决策支持型处理需要相对稳定的数据,从而问题都能得到一致连续的解答。
数据仓库的解决方法包括:将决策支持型数据处理从事务型数据处理中分离出来。数据按照一定的周期(通常在每晚或者每周末),从事务型数据库中导入决策支持型数据库——既“数据仓库”。数据仓库是按回答企业某方面的问题来分“主题”组织数据的,这是最有效的数据组织方式。
3.数据仓库的组成
数据仓库的处理过程中要用到许多的硬件和软件,包括:
将信息从事务型数据库中提取出来并加载入数据仓库的软件。 —ETL数据抽取工具
数据清洗软件——去除来源于不同的数据源的不一致的数据。 —分析引擎
支持“决策支持型数据库”的硬件和数据库软件。—指标模型体系
管理“元数据”(描述数据的信息)的软件。 —指标模型体系
商业智能软件——用来向用户前端展现数据仓库里的数据信息。 —BI 商业智能
软件代理——寻找合适的数据类型,并给特别的用户发送警告。
数据挖掘软件——寻找、发现数据中隐藏的信息。
4.数据仓库和数据集市
有关决策支持型数据库的数据集市是面向企业中的某个部门或是项目小组的。一些专家顾问将数据集市的建造描述为建立数据仓库全过程中的一步。首先,一个储存企业全部信息的数据仓库被创建,其中,数据均具备有组织的、一致的、不变的格式。数据集市随后被创立,其目的是为不同部门提供他们所需要的那部分信息。数据仓库聚集了所有详细的信息,而数据集市中的数据则是针对用户们的特定需求总结而出的。
而另外一些专家则认为数据集市的建立并不需要首先建立一个数据仓库。在这个模型中,数据直接由事务型数据库转入数据集市中。一个公司可能建立有多个数据集市,而彼此之间毫无联系。
这种不在建立数据仓库的基础上创建数据集市的方式会更便宜、更快速,因为它的规模更加易于管理。
第二种观点的缺陷在于无法实现最初创建数据仓库的最主要的目的——将企业所有的数据统一为一致的格式。现有的事务处理系统的数据往往是不一致、冗余的。如果首先建立
起一个全公司范围的数据仓库,组织就能够获得一个统一关于企业的活动和客户的知识库。如果先建立起一个个独立的数据集市,那么数据仓库的诸多优势都能够得以实现,但是企业远远无法做到对数据的一致的储存。
5.数据仓库开发过程
开发数据仓库的过程与建筑工程非常类似。先测定出实际的需求,再聘用一位建筑师,制定出详细的计划,审查,并最终确定下来。然后估算出整个工程的成本,待方案通过后,工程正式启动。
两者的区别在于:一个建筑工程可以竣工,但是一个数据仓库的开发永远不会结束!因为总会有数不完的数据等待着被加载入数据仓库;新的查询和警告的可能也随时会在下一秒出现;数据一致性问题总会出现并等待着解决;而且,还需要不断的对用户进行培训,这样他们才能够充分利用数据仓库的潜能。
所以,在这一领域所存在的最大的误区就是:人们把过多的精力投放在数据仓库的“建立”过程上,而没有意识到“开发”数据仓库是一个永无止境的过程。数据仓库的开发是一段永远前行的旅程。旅途中,会路过一座座的里程碑,但是永远没有终点。
6.从敏锐的观察到“以数据为基础的知识”
感觉敏锐的市场营销专家往往能够从仔细的观察研究中发现到大量的商机。
而数据仓库能够为我们带来“以数据为基础的知识”——一些当前的精确而详细的信息!专家们只要直接查看数据仓库中的相关数据,就可以发现他们想知道的一切。商业智能工具以更加多元化的视角来帮助专家们观察数据。商业专家可以与数据仓库的设计师一同开发出能够自动地发现有价值的信息,并提交企业所需要的分析报告。
尚无文字社会的人类是通过记住信息来为自己获得知识,并将这些知识传递给别人。
学会阅读和书写后,文明开化的人类能够成倍的增加他们所能够了解并与其他人分享的知识。他们拥有工具来帮助记忆和教学。
而在计算机发明之前,商人们通过仔细的观察和敏锐的感觉来获取知识。如今,“以数据为基础的知识”的出现,成为了另一个有力的知识来源。
而数据仓库正是产生这一新知识的工具!
微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站。(关注公众号后回复”Java“即可领取 Java基础、进阶、项目和架构师等免费学习资料,更有数据库、分布式、微服务等热门技术学习视频,内容丰富,兼顾原理和实践,另外也将赠送作者原创的Java学习指南、Java程序员面试指南等干货资源)
探秘Hadoop生态6:Hive技术初探与实践入门相关推荐
- 探秘Hadoop生态12:分布式日志收集系统Flume
这位大侠,这是我的公众号:程序员江湖. 分享程序员面试与技术的那些事. 干货满满,关注就送. 在具体介绍本文内容之前,先给大家看一下Hadoop业务的整体开发流程: 从Hadoop的业务开发流程 ...
- hadoop生态下hive安装过程
Hive的安装部署 1.首先在Linux本地,新建/data/hive1目录,用于存放所需文件 (1)mkdir -p /data/hive1 (2)切换目录到/data/hive1下,上传apach ...
- Hadoop生态组件-HIVE学习
本文将Hadoop生态圈中的一个重要组件Hive.内容包括安装,运行测试,使用MySQL存储Hive的matedata, 还包括其他使用Hive的知识,比如数据分区等.本文是本人学习Hive过程中的记 ...
- 【hadoop生态之Hive】Hive的DDL数据定义语言【笔记+代码】
四.DDL数据定义 4.1 创建数据库 1)创建一个数据库,数据库在HDFS上的默认存储路径是/user/hive/warehouse/*.db. hive (default)> create ...
- 【hadoop生态之Hive】Hive的查询语言【笔记+代码】
六.查询 官方教程 [WITH CommonTableExpression (, CommonTableExpression)*] (Note: Only available starting wit ...
- 【hadoop生态之Hive】Hive的DML数据操纵语言【笔记+代码】
五.DML数据操作 5.1 数据导入 5.1.1 向表中装载数据(Load) 1)语法 hive>load data [local] inpath '/opt/module/datas/stud ...
- 【hadoop生态之Hive】Hive的基本概念和安装【笔记+代码】
一.Hive基本概念 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提 ...
- 【hadoop生态之Hive】Hive的数据类型【笔记+代码】
三.Hive数据类型 3.1 基本数据类型 Hive数据类型 Java数据类型 长度 例子 TINYINT byte 1byte有符号整数 20 SMALINT short 2byte有符号整数 20 ...
- EDW on Hadoop(Hadoop上的数据仓库)技术选型和实践思考
在这篇文章中, 将讨论EDW on Hadoop 有哪些备选方案, 以及我个人的倾向性, 最后是建构方法. 欢迎转载, 但必须注明原贴(刘忠武, http://www.cnblogs.com/ha ...
最新文章
- 汉诺塔(三)_栈的应用
- 科技行业风投日趋谨慎:VR、机器学习和汽车值得关注
- 解决Xcode升级,导致以前安装的插件失效的办法
- 智能记忆功能nest_如何设置和安装Nest Protect智能烟雾报警器
- matlab如何画函数的外包络曲线,怎样在MATLAB中划出一个函数的包络线?
- C++:29 --- C++继承关系下的内存布局(下)
- php 中 excel表格判断,PHPexcel自动判断excel类型并读取excel所有sheet内容
- sw工程图导出bom_SolidWorks材料明细表自动调用钣金展开尺寸,轻松导出BOM表
- PXE-preboot execute environment
- Newtonsoft 六个超简单又实用的特性,值得一试 【上篇】
- Java EE产生的背景
- php分页类 seo,哪种分页url对seo友好?
- html5视频播放器 知乎,iPhone、iPad 如何播放网页调用优酷视频?
- 万岳在线教育系统源码v1.1.4 支持录播回看/网课购买/学习测试
- 【CSS】关键字 -webkit-fill-available 详解
- 京东评论爬虫(详解)
- Rhino学习教程——1.2
- java基础-(六)-使用 Spring Initializr 创建springBoot项目
- 百度小程序模板制作_百度小程序模板平台
- 妥妥的世界第一:为什么MT4软件的地位无法撼动?