商务智能原理与应用第二章数据仓库课件.ppt

上传人:牧羊曲112 文档编号:1462818 上传时间:2022-11-28 格式:PPT 页数:80 大小:4.78MB
返回 下载 相关 举报
商务智能原理与应用第二章数据仓库课件.ppt_第1页
第1页 / 共80页
商务智能原理与应用第二章数据仓库课件.ppt_第2页
第2页 / 共80页
商务智能原理与应用第二章数据仓库课件.ppt_第3页
第3页 / 共80页
商务智能原理与应用第二章数据仓库课件.ppt_第4页
第4页 / 共80页
商务智能原理与应用第二章数据仓库课件.ppt_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《商务智能原理与应用第二章数据仓库课件.ppt》由会员分享,可在线阅读,更多相关《商务智能原理与应用第二章数据仓库课件.ppt(80页珍藏版)》请在三一办公上搜索。

1、,数据仓库,商务智能原理与应用-第二章,前请回顾,1,3,5,2,4,商务智能产生的背景,商务智能的基本架构,商务智能在一些行业中的实际应用,商务智能的定义,商务智能相关的技术,目录,数据仓库概念,ETL处理过程,数据仓库模型,数据仓库工具Hive,数据仓库概念,什么是数据仓库?,比尔恩门(Bill Inmon),数据仓库的特点,数据仓库的特点,不同的操作型系统之间的数据一般是相互独立、异构的,而数据仓库中的数据是对分散的数据进行抽取、清理、转换和汇总后得到的,这个过程我称之为ETL处理过程,我们在下一章将会深入研究ETL过程。,数据仓库的特点,数据仓库的特点,1. 数据仓库随时间变化不断增加

2、新的数据内容。,表现在,3.数据仓库的数据时限一般要远远长于操作型数据的数据时限。,2.操作型系统存储的是当前数据,而数据仓库存储的数据是历史数据。,数据仓库的功能,数据仓库的主要功能是对现有的数据进行分析整理,以利于各种分析方法如联机分析处理(OLAP)、数据挖掘(Data Mining)的进行,为决策的拟定提供数据支持,帮助构建商务智能。,数据仓库的结构,数据仓库的基本架构主要包含的是数据流入流出的过程,可以分为三层源数据、数据存储、数据应用。,ETL,数据库与数据仓库的区别,数据库是数据仓库的基础,数据库是为了捕获数据而设计的,而数据仓库是为了分析数据而设计的,除此之外,数据库与数据仓库

3、在其他方面也存在着一些差别。,数据库与数据仓库的区别,数据库与数据仓库的区别,数据库与数据仓库的区别,数据仓库与商务智能的关系,数据仓库是一种技术,也是一种解决方案。对于企业来说,商务智能系统一般构建在数据仓库上。数据仓库是构建商务智能系统的基础。商务智能是数据仓库、联机分析处理和数据挖掘等相关技术走向商业应用后形成的一种应用技术,二者是一种包含关系。,ETL处理过程,什么是ETL,异构数据库,数据仓库,ETL(Extract-Transform-Load)是将联机事务处理系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策

4、提供分析依据。ETL是构建数据仓库的重要过程。,ETL的实现方法,ETL的实现有多种方法,常用的有三种:ETL工具实现、SQL方式实现、ETL工具结合SQL方式实现。,数据抽取,数据仓库是面向主题的,并非所有源数据库的数据都是有用的,因此在把数据库中的相关数据导入到数据仓库之前,需要先确定该数据库中哪些数据是与决策相关的。,1.确定数据源的数据及其含义,2.确定数据的抽取范围,3.确定数据的抽取频率,4.确定外部数据的导入方式,5.确定抽取异常的处理方式,6.确定输出目的地和格式,具体流程和主要工作:,数据转换,数据仓库的数据通常来源于多个异构的数据库,因此源数据在加载到数据仓库之前,需要对数

5、据进行一定的数据转换,以保证数据的一致性。,1. 不一致数据的转换,2. 数据粒度的转换,3. 商务规则的计算,数据转换,数据清洗,数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。数据的清洗是一个循环反复的过程。,数据加载,数据转换、清洗结束后,需要把数据装载到数据仓库中,数据的装载有三种方式。,数据仓库模型,什么是数据模型,数据模型是现实世界数据特征的抽象,用于描述一组数据的概念和定义。数据模型是数据库中数据的存储方式,是数据库系统的基础。,现实世界,信息世界(概念模型),计算机世界(物理模型),抽象,转换,数据模型的结

6、构,数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束。,数据模型的价值,只有数据模型将数据有序的组织和存储起来之后,大数据才能得到高性能、低成本、高效率、高质量的使用,也是衡量数据模型价值的标准。,数据模型的分类,目前成熟地应用在数据库系统中的数据模型主要有三种:层次模型、网状模型和关系模型。,层次模型,用树形结构表示实体之间联系的模型叫层次模型,树中每一个节点代表一个记录类型,树状结构表示实体型之间的联系。层次模型的特征是:有且仅有一个结点没有父结点,它就是根结点;其他结点有且仅有一个父结点。,网状模型,用网络结构表示实体类型及其实体之间联系的模型,网状模型是一种可以灵活地描述

7、事物及其之间关系的数据库模型。网状模型的特征:允许结点有多于一个父结点;可以有一个以上的结点没有父结点。,课程,专业系,教研室,学生,教师,任课,选课,关系模型,关系模型以二维表结构来表示实体与实体之间的联系,它是以关系数学理论为基础的。关系模型的数据结构是一个“二维表框架”组成的集合。,学生信息表,选课信息表,数据仓库数据模型架构,数据仓库的数据数据区域划分和数据仓库的整体架构是紧密关联在一起的,整个数据仓库的数据区域分成 5 大部分,每个部分都有其独特的功能。,数据仓库数据模型架构,数据仓库的建模阶段划分,数据仓库的数据建模按照时间的先后顺序,可以大致分为四个阶段,依次为业务建模、领域概念

8、建模、逻辑建模、物理建模。,业务建模的主要工作,领域概念建模的主要工作,逻辑建模的主要工作,物理建模的主要工作,建模方法,目前业界较为流行的数据仓库的建模方法非常多,这里主要介绍范式建模法,维度建模法,实体建模法等几种方法,每种方法其实从本质上讲就是从不同的角度看业务中的问题。,范式建模法,范式建模法是在构建数据模型常用的一个方法,主要利用技术层面上的方法解决关系型数据库的数据存储。在学习范式建模法之前,我们先来了解一下数据库三范式。,范式建模的优缺点,优点:从关系型数据库的角度出发,结合了联机事务处理系统的数据模型,能够比较方便的实现数据仓库的建模。缺点:由于建模方法限定在关系型数据库之上,

9、在某些时候反而限制了整个数据仓库模型的灵活性,性能等。,维度建模法,维度建模法按照事实表,维度表来构建数据仓库,数据集市。这种方法的最被人广泛知晓的名字就是星型模式。,星型模型,以商品销售模型为例,销售表即为事实表,而其它描述性的表即为维度表,如时间维度,类别维度,属地维度等。这就是一个典型的星型模型。,星型模型的优缺点,维度建模法的步骤,维度模型设计的大致过程主要包括:选择业务流程,声明粒度,确认维度,确认事实。在各个阶段内容的设定都是通过考虑业务的需求以及协作建模会话中底层源数据的现实来确定的。,实体建模,将任何一个业务过程划分成 3 个部分,实体,事件和说明就是我们实体建模的主要工作。,

10、实体建模,将整个业务也可以划分成一个个的实体,而每个实体之间的关系,以及针对这些关系的说明就是我们数据建模需要做的工作。,实体,实体,说明,事件,小明,学校,开车,上学,实体建模的优缺点,优点:能够很轻松的实现业务模型的划分,广泛应用于业务建模阶段和领域概念建模阶段。缺点:实体说明法只是一种抽象客观世界的方法,该建模方法只能局限在业务建模和领域概念建模阶段。,社保业务背景,目前我国家的社保主要分为养老,失业,工伤,生育,医疗保险和劳动力市场这六大块主要业务领域。,业务建模阶段,划分出养老、医疗、失业、工伤、生育、劳动力市场五个部门,并考虑具体的业务主线内需要分析的业务主题。,领域概念建模阶段,

11、运用了实体建模法,从纷繁的业务表象背后通过实体建模法,抽象出实体,事件,说明等抽象的实体,从而找出业务表象后抽象实体间的相互的关联性,保证了数据仓库数据按照数据模型所能达到的一致性和关联性。,抽象过程的四个层次,逻辑建模阶段,通过领域概念建模之后,虽然模型的框架已经完成,但是还有很多细致的工作需要完成。,物理建模阶段,物理建模阶段是整个数据建模的最后一个过程,这个过程其实是将前面的逻辑数据模型落地的一个过程。因为数据仓库平台的不同,具体的建模过程也会有些差异。,数据仓库工具Hive,Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop的框架最核心的设计就是:HDFS和

12、MapReduce。HDFS为海量的数据提供了存储,而MapReduce为海量的数据提供了计算。,Hadoop简介,Hive是一个基于Hadoop的数据仓库工具,用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储。Hive是一个翻译器:SQL - Hive引擎 - MapReduce程序Hive是构建在HDFS上的一个数据仓库(Data Warehouse)Hive支持SQL(部分支持,并非全部),Hive简介,Hive体系结构主要包含用户接口,元数据存储,Hive驱动器,Hadoop集群这几个部分。,Hive的体系结构,Hive利用HDFS存储数据,利用MapReduce查询分

13、析数据。,Hive的工作原理,Hive的设计特点,Hive在很多方面和传统数据库类似,但是其底层对HDFS和MapReduce的依赖意味着它的体系结构有别于传统数据库。,Hive与传统数据库对比,Hive的设计目标是,通过类SQL的语言实现在大规模数据集上快速的数据查询等操作,而不需要开发相应的MapReduce程序,所以Hive特别适合数据仓库的统计分析。 Hive构建在基于静态批处理的Hadoop之上,Hadoop通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销,因此Hive并不适合那些需要低延迟的应用。,Hive的使用场景,Hive的内置数据类型分为两大类,一个是基本数据类型,

14、另一个是集合数据类型。基础类型包括INT、BOOLEAN、FLOAT、DOUBLE、STRING、CHAR、VARCHAR、DATE等,集合类型包括ARRAY、MAP、STRUCT、UNION。,Hive的数据类型,Hive文件通常存储在HDFS上,存储格式也是Hadoop通用的数据格式,主要包含TEXTFILE、SequenceFile、RCFile、ORCFile 、Parquet、Avro这几种格式的文件,当然也可以自定义文件类型。,Hive的存储格式,Hive为了更好支持大规模数据分析,默认使用了几个很少出现在字段值中的控制字符,而不是逗号、制表符这类常用的分隔符。下表为Hive中默认

15、的记录和字段分隔符。,Hive文件的分隔符,Hive的数据模型分为托管表、外部表、分区表、桶表、视图。,Hive的数据模型,Hive托管表也称为内部表,它与数据库中的 Table 在概念上是类似,每一个 Table 在 Hive 中都有一个相应的目录存储数据,所有的 Table 数据都保存在这个目录中,删除表时,元数据与数据都会被删除。,Hive的数据模型- 托管表(内部表),创建托管表可以直接使用SQL创建,语法与传统数据库类似,如: create table emp (empno int,ename string);默认的分隔符是tab制表符。加载数据到托管表时,Hive把数据移到仓库目录

16、,源文件会被删除。删除一个托管表,它的元数据和数据,会被一起删除。,外部表则指向已经在 HDFS 中存在的数据,可以创建 Partition。它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异,因为外部表加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接。当删除一个外部表时,仅删除该链接。,Hive的数据模型- 外部表,创建外部表需要在SQL中添加“EXTERNAL”标识,表明它是外部表,如: create EXTERNAL table emp (empno int,ename string);外部表可以创建Partition。外部表加载数据和创建

17、表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接。删除外部表时,Hive不会碰数据,只会删除元数据。,在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。分区表指的是在创建表时指定的partition的分区空间。,Hive的数据模型-分区表,将数据组织成分区,可以提高数据的查询速度。一个表可以拥有一个或者多个分区。分区以文件夹的形式单独存在表文件夹的目录下。分区是以字段的形式在表结构中存在。,对于每一个表(table)或者分区, Hive可以进一步组织成桶,也就是说桶是

18、更为细粒度的数据范围划分。Hive也是针对某一列进行桶的组织。Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记录存放在哪个桶当中。,Hive的数据模型- 桶表,组织成桶可以获得更高的查询处理效率。组织成桶可以使取样(sampling)更高效。,在Hive中,创建视图时并不把视图物化存储到磁盘上。相反,视图的SELECT语句中只是在执行引用视图的语句时才执行。,Hive的数据模型- 视图,创建视图时并不把视图物化存储到磁盘上。视图的SELECT语句中只是在执行引用视图的语句时才执行。,HiveQL是一种类似SQL的语言,它与大部分的SQL语法兼容,但是并不完全支持SQL标准,本节主要

19、介绍Hive常用的HiveQL操作。,HiveQL简介,查看所有数据库名: show databases; 查看所有表名: show tables;查看以ad开头的表名: show tables ad*;查看表结构(表名为emp): desc emp;,交互语句,创建普通托管表: create table emp_tg(id int, name string); 创建普通托管表,并指定文件分隔符: create table emp_tg(id int, name string) row format delimited fields terminated by t; 创建外部表,同时指定文件路

20、径: create external table emp_wb(id int, name string) location /emp;创建分区表: create table emp_fq(id int, name string) partitioned by(city string); 创建桶表前,需要需要设置“hive.enforce.bucketing”属性为 true, 使 Hive 能够识别桶:set hive.enforce.bucketing=true;创建桶表: create table emp_tb(id int, name string) clustered by(id) i

21、nto 3 buckets;创建视图:create view view_emp as select id, name from emp_tg;,建表语句,修改表名: altertable emp_tg rename to emp_tg_new;增加新列:alter table emp_tg_new add columns (addr string);修改列名: alter table emp_tg_new change column addr address string ;,修改语句,本地数据导入: load data local inpath /home/hadoop/emp.txt ov

22、erwrite into table emp;HDFS数据导入: load data inpath /scott/emp.csv into table emp;,导入语句,插入一条数据: insert into emp(id, name) values (1001, 赵子龙);分区表中插入数据,指明导入的数据的分区(通过子查询导入数据): insert into table emp_fq partition(city=beijing) select empno,ename from emp1 where deptno=10;,插入语句,删除行: delete from emp where id

23、 = 0;丢弃某个表:drop table emp_wb;删除视图: drop view view_emp ;删除分区: alter table emp_fq drop partition (city= beijing );,删除语句,简单查询: select id, name from emp;子查询: select id, name, city from emp where city = beijing;内连接: select tb1.*, tb2.* from tb1 join tb2 on(tb1.id=tb2.userid);左连接: select tb1.*, tb2.* from tb1 left outer join tb2 on(tb1.id=tb2.userid);右连接: select tb1.*, tb2.* from tb1 right outer join tb2 on(tb1.id=tb2.userid);全连接: select tb1.*, tb2.* from tb1 full outer join tb2 on(tb1.id=tb2.userid);半连接: select tb1.* from tb1 left semi join tb2 on (tb1.id=tb2.userid);,查询语句,谢谢观看,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号