第7章 数据库与大数据技术ppt课件.pptx
在此输入您的封面副标题第7章 数据库与大数据技术第7章 数据库与大数据技术通过本章的学习,应该掌握以下内容:(1)掌握数据库系统的基本概念。(2)掌握常见的数据模型。(3)掌握关系数据库的设计方法。(4)了解大数据的基本概念和数据处理一般流程。(5)了解主流大数据处理平台。学习目标7.1 数据库系统的基本概念 数据库技术是数据管理技术,是计算机科学的一个重要分支。在计算机应用的三大领域(科学计算、数据处理和过程控制)中,数据处理约占其中的70%,而数据库技术就是作为一门数据处理技术发展起来的,是目前应用最广的技术之一,它已成为计算机信息系统的核心技术和重要基础。7.1.1 数据库系统相关概念 描述事物的符号记录,是数据库中存储的基本对象。1数据数据Data7.1.1 数据库系统相关概念具有统一的结构形式并存放于统一的存储介质内的多种应用数据的集成,并可被各个应用程序所共享。2数据库数据库DatabaseDB7.1.1 数据库系统相关概念用户与操作系统之间的数据管理软件,负责数据库的建立、运行、维护、管理和控制,是数据库系统的核心。3数据库管数据库管理系统理系统Database Management SystemDBMS7.1.1 数据库系统相关概念负责数据库的规划、设计、维护、监视等,其主要工作如下:1.数据库设计2.数据库维护3.改善系统性能,提高系统效率4数据库管理员数据库管理员DatabaseAdministratorDBA7.1.1 数据库系统相关概念安装和使用了数据库技术的计算机系统,一般由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台和软件平台构成。5数据库系统数据库系统DatabaseSystemDBS7.1.1 数据库系统相关概念 由数据库系统加上应用软件及应用界面这三者所组成。数据库应用系统中各部分以一定的逻辑层次结构方式组成一个有机的整体。6数据库数据库应用系统应用系统DatabaseApplicationSystemDBAS7.1.2 数据库系统的发展20世纪50年代中期之前人工管理文件系统数据库系统20世纪50年代中期到60年代中期20世纪60年代后7.1.3 数据库系统的基本特点数据的集成性 统一的数据结构 全局数据模式 全局与局部的结构模式高共享与低冗余 应用共享 网络共享 减少冗余 减少存储空间 避免数据不一致数据的独立性 物理独立性 逻辑独立性完整性检查 安全性保护 并发控制 统一管理和控制7.2 数据模型数据库需要根据应用系统中数据的性质、内在联系,按照管理的要求来设计和组织。数据模型就是从现实世界到机器世界的一个中间层。现实世界的事物反映到人的大脑,人们把这些事物抽象为一种既不依赖于具体的计算机系统又不为某一数据库管理系统支持的概念模型,然后再把概念模型转换为计算机上某一数据库管理系统支持的数据模型。 7.2.1 数据模型的组成要素数据结构 存储在数据库中的对象类型的集合 描述数据的类型、内容、性质以及数据间的联系 数据模型的基础 数据库系统是按数据结构的类型来组织数据,如层次结构、网状结构和关系结构数据操作 对数据库中各种对象的实例允许执行的操作集合,包括操作和有关的操作的规则 例如插入、删除、修改、检索、更新等数据的完整性约束 数据的约束条件是完整性规则的集合,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容 数据模型中的数据及其联系都要遵循完整性规则的制约7.2.2 概念模型分析、抽象分析、抽象现实世界现实世界信息世界信息世界机器世界机器世界人、物等人、物等概念模型,概念模型,与计算机系与计算机系统无关统无关数据模型数据模型转换转换7.2.2 概念模型 实体实体 描述描述实体集:同类型实体的集合。实体集:同类型实体的集合。一个实体:属性值的集合。一个实体:属性值的集合。属性:实体的特性。属性:实体的特性。(属性名和属性值)(属性名和属性值)实体:客观存在并可相互区别的事物。实体:客观存在并可相互区别的事物。(具体事物或抽象概念)(具体事物或抽象概念)7.2.2 概念模型 实体实体 联系联系多对多多对多 m:n 课程与学生课程与学生一对多一对多 1:n 球队与球员球队与球员一对一一对一 1:1 校园卡与学生校园卡与学生实体联系模型(E-R模型)E-R图提供了表示实体集、属性和联系的方法: 1.实体集:用矩形表示,矩形框内写明实体名; 2.属性:用椭圆形表示,并用连线将其与相应的实体连接起来;3.联系:用菱形表示,菱形框内写明联系名,并用连线分别与有关实体连接起来,同时在连线旁标上联系的类型(1:1、1:n或m:n)。实体实体-联系联系模型模型Entity-RelationshipModel实体联系模型(E-R模型) (b)实体与实体之间的联系 (a)实体与属性 7.2.3 三种数据模型从现实世界到机器世界的一个中间层次。 它决定了1.数据库系统的结构2.数据定义语言和数据操纵语言3.数据库设计方法4.数据库管理系统软件的设计与实现数据数据模型模型DataModel7.2.3 三种数据模型层次模型网状模型关系模型表表1-1 “学生学生”表表学号学号姓名姓名性别性别民族民族政治面貌政治面貌出生日期出生日期202001001塔娜塔娜女女蒙古族蒙古族团员团员202001001202001002荣仕月荣仕月男男壮族壮族群众群众202001002202001003林若涵林若涵女女汉族汉族团员团员202001003202001004张是琦张是琦女女白族白族团员团员2020010047.3 关系数据库关系是数学集合论中的一个重要概念。1970年,发表了题为“大型共享数据库数据的关系模型”的论文,把关系的概念引入了数据库,自此人们开始了数据库关系方法和关系数据理论的研究,形成了以关系数据模型为基础的关系数据库系统。7.3.1 关系模型术语术语解释解释关系二维表,有关系名元组表中的一行属性表中的一列,有属性名分量元组中的一个属性值,不可再分域属性的取值范围候选关键字 可唯一标识一个元组的属性组主关键被指定唯一标识元组的候选关键字外部关键字另一个关系的关键字或候选关键字主属性包含在任一候选关键字中的属性1关系中常用的术语7.3.1 关系模型7.3.1 关系模型1.每一列中的分量是同一类型的数据,来自同一个域2.不同的列要给予不同的属性名3.列的顺序无所谓,即列的次序可以任意交换4.任意两个元组不能完全相同5.行的顺序无所谓,即行的次序可以任意交换6.每一个分量都必须是不可再分的数据项2关系的关系的性质性质7.3.1 关系模型 3 关系间关系间的联系的联系一对一一对一 :可合并:可合并一对多:最普遍一对多:最普遍多对一多对一多对多:难实现,需分解多对多:难实现,需分解7.3.1 关系模型4关系数据库在关系模型中,实体以及实体之间的联系都是用关系来表示的。例如教师实体、学生实体、课程实体等。在一个给定的应用领域中,所有表示实体以及实体间联系的关系的集合就构成一个关系数据库。关系数据库系统是支持关系模型的数据库系统。它是由若干张二维表组成的,包括二维表的结构以及二维表中的数据两部分。7.3.2 关系代数运算关系关系代数代数抽象查询语言,用对关系的运算来实现查询运算集合运算符关系运算符关系关系代数运算结果运算符运算对象关系7.3.2 关系代数运算集合运算符集合运算符交 专门的专门的关系运算符关系运算符算数算数比较运算符比较运算符逻辑运算符逻辑运算符并 差 -笛卡尔积 选择 投影 连接 除 大于 大于等于小于 小于等于等于 =不等于 非 或 与 7.3.2 关系代数运算集合运算交、并交、并和差和差运算运算前提前提条件条件两个关系R和S1.均为n元关系(元数相同即属性个数相同),2.两个关系属性的性质相同。7.3.2 关系代数运算集合运算 两个关系的并运算可以记作RS,运算结果是将两个关系的所有元组组成一个新的关系,若有相同的元组,只留下一个。并运算并运算R S7.3.2 关系代数运算集合运算学 号姓 名性别政治面貌202001001塔娜女团员202001002荣仕月男群众202001003林若涵女团员学 号姓 名性 别政治面貌202001001塔娜女团员202001002荣仕月男群众202001003林若涵女团员202001004张是琦女团员202001005王祎玮男团员学 号姓 名性别政治面貌202001003林若涵女团员202001004张是琦女团员202001005王祎玮男团员学生学生学生学生学生学生学生学生7.3.2 关系代数运算集合运算 两个关系的差运算可以记作R-S,运算结果是由属于R但不属于S的元组组成一个新的关系。差运算差运算R S7.3.2 关系代数运算集合运算学 号姓 名性别政治面貌202001001塔娜女团员202001002荣仕月男群众202001003林若涵女团员学 号姓 名性 别政治面貌202001001塔娜女团员202001002荣仕月男群众学生学生学生学生学 号姓 名性别政治面貌202001003林若涵女团员202001004张是琦女团员202001005王祎玮男团员学生学生学生学生7.3.2 关系代数运算集合运算 两个关系的交运算可以记作RS,运算结果是将两个关系中公共元组组成一个新的关系。交运算交运算R S7.3.2 关系代数运算集合运算学 号姓 名性别政治面貌202001001塔娜女团员202001002荣仕月男群众202001003林若涵女团员教师编号教师编号姓名姓名性别性别工作时间工作时间202001003林若涵女团员学生学生学生学生学 号姓 名性别政治面貌202001003林若涵女团员202001004张是琦女团员202001005王祎玮男团员学生学生学生学生7.3.2 关系代数运算集合运算 设R和S是两个关系,如果R是m元关系,有i个元组,S是n元关系,有j个元组,则笛卡儿积RS是一个m+n元关系,有ij个元组。记作:RS。广义笛广义笛卡尔积卡尔积运算运算7.3.2 关系代数运算集合运算7.3.2 关系代数运算专门的关系运算1.选择是根据给定的条件选择关系 R 中的若干元组组成新的关系;2.对关系的元组进行筛选;3. (R),其中,是选择运算符,R是关系名。 4.一元关系运算;5. 选择运算结果是原关系的一个子集,但关系模式不变。 选择选择运算运算7.3.2 关系代数运算专门的关系运算例:选出性别为例:选出性别为“女女”的学生名单,可以记成:的学生名单,可以记成:学 号姓 名性别政治面貌202001001塔娜女团员202001002荣仕月男群众202001003林若涵女团员学 号姓 名性 别政治面貌202001001塔娜女团员202001003林若涵女团员性别性别=女女(学生(学生A)学生学生A7.3.2 关系代数运算专门的关系运算1.关系R上的投影是从关系R中选择若干属性列组成新的关系2.对关系的列进行筛选3. A(R),A是R中的属性列4. i1、i2、i3、im(R)=t|t=(ti1、ti2、ti3、tim)(ti1、ti2、ti3、timR) ; 5.一元关系运算6.投影后可能出现重复的元组,应消去这些完全相同的元组投影投影运算运算7.3.2 关系代数运算专门的关系运算例:列出所有学生的姓名、性别学生学生A学 号姓 名性别政治面貌202001001塔娜女团员202001002荣仕月男群众202001003林若涵女团员姓名,性别姓名,性别(学生(学生A)姓 名性 别塔娜女荣仕月男林若涵女7.3.2 关系代数运算专门的关系运算1.从两个关系R和S的笛卡尔积中选取属性间满足一定条件的元组,连接也称为连接;2. R S =R.AS.B(RS), A和B分别为R和S上可比的属性组。是比较运算符,可以是,=,等符号。3.从R和S的笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组,这些元组构成的关系是RS的一个子集。4.等值连接:为“=”的连接运算。它选取关系R与S的笛卡尔积中A、B属性值相等的那些元组。连接连接运算运算7.3.2 关系代数运算专门的关系运算1.从两个关系的笛卡尔积中选择出公共属性值相等的元组所构成的新的关系;2.自然联接是按照公共属性值相等的条件进行联接,并且消除重复属性。3.设关系R和关系S具有相同的属性集U=Al,A2,Ak,从关系R和关系S的笛卡尔积中,取满足R.U=S.U的所有元组,且去掉S.Al、S.A2、S.Ak,所得的新关系R S=il,i2,i3,ik(R.Al=S.A1R.A2=S.A2R.Ak=S.Ak(RS)自然自然连接连接运算运算7.3.2 关系代数运算专门的关系运算R.B=S.B R SR S7.3.2 关系代数运算专门的关系运算1.条件是:关系S的属性全部包含在关系 R 中,关系R的一些属性不包含在关系S中;2. RS ;3. 结果关系中的属性由R中除去S中的属性之外的全部属性组成,元组由R与S中在所有相同属性上有相等值的那些元组组成。除运算除运算7.3.2 关系代数运算专门的关系运算ABCa12b21c31ABc3C1=7.3.3 关系的完整性关系模型允许定义3种完整性约束,即实体完整性、参照完整性和用户定义的完整性约束。其中实体完整性约束和参照完整性约束统称为关系完整性约束,是关系模型必须满足的完整性约束条件,它由关系数据库系统自动支持。用户定义完整性约束是应用领域需要遵循的约束条件。7.3.3 关系的完整性关系的关系的完整性完整性用户定义完整性约束:用户定义完整性约束:反映了具体应用中数据的语义要求参照完整性约束:参照完整性约束:关系之间相关联的基本约束,不允许关系引用不存在的元组,即在关系中的外键取值只能是关联关系中的某个主键值或者为空值实体完整性约束:实体完整性约束:若属性A是基本关系R的主属性,则属性A不能取空值学生选修关系“选修(学号,课程号,成绩)”中,“学号,课程号”为联合主键,那么学号,课程号都不能取空值,而不是整体不为空。7.3.4 关系规范化关系模型是建立在严格的数学关系理论基础之上的,通过确立关系中的规范化准则,既可以方便数据库中数据的处理,又可以给程序设计带来方便。在关系数据库设计过程中,使关系满足规范化准则的过程称为关系规范化(Relation Normalization)。关系规范化就是将数据库中不太合理的关系模型转化为一个最佳的数据模型,因此它要求对于关系数据库中的每一个关系都要满足一定的规范,根据满足规范的条件不同,可以划分为6个范式(Normal Form,NF),分别为:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BCNF、第四范式(4NF)和第五范式(5NF)。7.3.4 关系规范化(1)第一范式:若一个关系模式R的所有属性都是不可再分的基本数据项,则该关系模式属于第一范式(1NF)。编号编号姓名姓名电话电话家庭电话家庭电话办公电话办公电话01004张辉春张辉春667788998733421102001陈玉茜陈玉茜672123458656633302002张一燕张一燕6789123482334212编号编号姓名姓名家庭电话家庭电话办公电话办公电话01004张辉春张辉春667788998733421102001陈玉茜陈玉茜672123458656633302002张一燕张一燕6789123482334212只要将所有的属性表只要将所有的属性表示为不可分的数据项,示为不可分的数据项,转化后的关系即符合转化后的关系即符合第一范式第一范式,即下图所示。即下图所示。 第一范式示意图:7.3.4 关系规范化(2)第二范式(2NF):若关系模式R属于1NF,且每个非主属性都完全函数依赖于主键,则该关系模式属于2NF,2NF不允许关系模式中的非主属性部分函数依赖于主键。用符号来表示依赖关系。例如:学号院系,就表示院系依赖于学号; 课程号学分,就表示学分依赖于课程号;7.3.4 关系规范化学号学号课程号课程号成绩成绩学分学分01002C176401002C288502002C190402002C286502002C393405007C3964 带来问题的原因是:非主属性带来问题的原因是:非主属性“学分学分”仅仅依赖于仅仅依赖于“课程号课程号”,也就是说只是部分依赖于主关键也就是说只是部分依赖于主关键字字 (学号,课程号学号,课程号), 而不是完全而不是完全依赖,出现冗余等诸多问题依赖,出现冗余等诸多问题, 改改造成下图后,为第二范式。造成下图后,为第二范式。学号学号课程号课程号成绩成绩课程号课程号课程名课程名学分学分01002C176C1高等数学高等数学401002C288C2计算机文化基础计算机文化基础502002C190C3英语英语402002C286C4大学物理大学物理402002C393C5大学美育大学美育305007C396C6计算机绘图计算机绘图3第二范式:表的关系不仅满足第一范式(即最基本不可再分字段),且第二范式:表的关系不仅满足第一范式(即最基本不可再分字段),且所有非主关键字完全依赖于其主关键字。所有非主关键字完全依赖于其主关键字。学号学号课程代课程代码码平时成平时成绩绩期中成期中成绩绩期末成期末成绩绩学分综合成绩课程代课程代码码课程课程名称名称学分学分主关主关键字键字复合复合主关主关键字键字上图中, 除去学分( (和学号无关,却完全依赖于课程代码) )及综合成绩( (其他项派生的) )字段后,全部非学号字段,均和复合主关键字段有关系,或者说, 全都完全依赖复合主关键字。右图中,课程名称和学分是完全依赖于课程代码这个主关键字的。所以这两个图所表示的关系都是属于第二范式的情况。看我们在下面给出的数看我们在下面给出的数据库表中,将课程专门据库表中,将课程专门做为一个表来进行一个做为一个表来进行一个设计,就是为保证满足设计,就是为保证满足第二范式的要求。第二范式的要求。删除此删除此两项内两项内容容7.3.4 关系规范化(3)第三范式(3NF):若关系模式R属于1NF,且每个非主属性都不传递依赖于主键,则该关系模式属于3NF。满足第三范式必须先满足第二范式。也就是说,第三范式要求一个数据库表中不包含已在其他表中包含的非主关键字信息。简而言之,第三范式就是属性不依赖于其他非主属性。 关系模型在第二范式的基础上,如果关系模式中的所有非主属性对任何候选关键字都不存在传递依赖,则称这个关系就是第三范式。学号学号姓名姓名院系编号院系编号院系名称院系名称院系地址院系地址01004张辉春张辉春01计算机学院计算机学院科教楼三层科教楼三层02001陈玉茜陈玉茜01计算机学院计算机学院科教楼三层科教楼三层02002张一燕张一燕03会计学院会计学院科教楼十一层科教楼十一层分解分解关系关系学号学号姓名姓名院系编号院系编号院系编号院系编号院系名称院系名称院系地址院系地址01004张辉春张辉春0101计算机学院计算机学院科教楼三层科教楼三层02001陈玉茜陈玉茜0103会计学院会计学院科教楼十一层科教楼十一层02002张一燕张一燕0302经济学院经济学院科教楼二层科教楼二层院系名称和地址院系名称和地址依赖于院系编号,依赖于院系编号,而后者又依赖于而后者又依赖于学号。第三范式学号。第三范式必须消除这种传必须消除这种传递依赖。递依赖。看我们在下面所设计的数据库表中,将院系表、专业表都专门做为一个表来设计,就是为保证满足第三范式的要求。7.3.4 关系规范化总结范式总结范式第一范式:第一范式:每个属性都是不可再分的,即:每个属性必须包含可能的最小数据元素。第二范式:第二范式:关系首先满足第一范式,所有的其他属性还必须完全依赖于主键,而不仅仅是只只依赖组合主键的一部分。第三范式:第三范式:关系必须满足第一范式和第二范式,所有的其他属性之间必须相互独立,都和主属性有关,但可以是和主属性部分有关,取消任何和主属性无关的属性。结论:结论: 三个范式要求依次提高,应满足的约束条件也依次更加严格。1NF到3NF的三种范式之间有如下关系:3NF包含了2NF,2NF包含了1NF。7.3.5 数据库的设计方法在数据库设计中有两种方法,一种是以信息需求为主,兼顾处理需求,称为面向数据的方法(Data-Oriented Approach);另一种是以处理需求为主,兼顾信息需求,称为面向过程的方法(Process-Oriented Approach)。这两种方法目前都有使用,在早期由于应用系统中处理多于数据,因此以面向过程的方法使用较多,而近期由于大型系统中数据结构复杂、数据量庞大,而相应处理流程趋于简单,因此用面向数据的方法较多。由于数据在系统中稳定性高,数据已成为系统的核心,因此面向数据的设计方法已成为主流方法。7.3.5 数据库的设计方法通过分析、比较与综合各种常用的数据库规范设计方法,将数据库设计分为以下6个阶段。(1)需求分析阶段 (2)概念结构设计阶段 (3)逻辑结构设计阶段 (4)物理结构设计阶段 (5)数据库实施阶段 (6)数据库运行与维护阶段 7.3.6 常见的关系型数据库根据最新的数据库排名网站DB-Engines的统计结果,目前主流的关系型数据库有Oracle、MySQL、Microsoft SQL Server、PostgreSQL、IBM Db2、SQLite、Microsoft Access等。7.3.6 常见的关系型数据库Oracle数据库,又名Oracle RDBMS,或简称Oracle,是甲骨文公司的一款关系数据库管理系统,到目前仍在数据库市场上占有主要份额。MySQL原本是一个开放源码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被Sun收购。2009年,甲骨文公司(Oracle)收购Sun公司,MySQL成为Oracle旗下产品。MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库。7.3.6 常见的关系型数据库Microsoft SQL Server和Microsoft Access是由美国微软公司所推出的关系数据库解决方案。Microsoft Access是小型数据库,操作灵活、转移方便、运行环境简单。Microsoft SQL Server是企业级中型数据库,适合大容量数据的应用,在性能、安全、功能管理等方面要比Microsoft Access强很多。7.3.6 常见的关系型数据库PostgreSQL是一个功能强大的开源对象关系数据库系统,它是加州大学伯克利分校POSTGRES项目的一部分。经过30多年的积极开发,在可靠性,功能健壮性和性能方面赢得了极高的声誉。IBM Db2是美国IBM公司发展的一套关系型数据库管理系统。它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、Z/OS,以及Windows服务器。7.4 大数据技术基础随着云计算、物联网、社交网络、移动网络等各类技术的出现以及现有的计算能力、存储空间、网络带宽的高速发展,各类数据资源正在以前所未有的速度不断地增长和积累,催生了以海量数据作为关键基础要素的大数据时代的到来。大数据的数据是巨大的,往往为PB级,远远超出传统的数据库系统和常用软件的数据处理能力。大数据本身蕴含巨大的数据价值,目前被应用到网购、打车、金融、医疗、教育等社会生活的各个方面,伴随着各种大数据应用服务的发展,各类大数据技术和大数据解决方案也逐渐走向成熟。7.4.1 大数据的定义 大数据是对海量数据集进行收集,组织,处理和分析所需的非传统策略和技术的统称。维基百科将大数据定义为:大数据由巨型数据集组成,这些数据集大小常超出人类在可接受时间下的收集、管理和处理能力。百度百科将大数据定义为:无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。其他的定义是通过结合大数据的特征给出相关定义,比较有代表性的是“3V”定义,即大数据需要满足3个特点:Volume(大量)、Velocity(高速)、Variety(多样)。在此基础上,IBM提出了大数据的“5V”特性:Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实)。7.4.1 大数据“5V”特性(1)Volume(大量) 数据量非常大,大数据的起始计量单位至少是PB、EB或ZB。(2)Velocity(高速) 数据增长速度快,处理速度也快,时效性要求高。区别传统数据挖掘的显著特征。(3)Variety(多样) 种类和来源多样化,包括多种来源的结构化、半结构化和非结构化数据。(4)Value(低价值密度) 数据价值密度相对较低,挖掘数据的隐含价值是大数据时代亟需解决的问题。(5)Veracity(真实) 数据的准确性和可信赖度,即数据的质量。7.4.2 大数据处理一般流程 大数据处理的一般流程包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用等。7.4.2 大数据处理一般流程1、大数据采集 大数据采集是指通过各种数据采集方式获取分散的、异构数据源中的原始数据的过程。例如,通过免费开源数据、企业内部数据、爬取网络数据、从数据公司购买数据等大数据采集方式可以获取相应实际需求的原始数据。2、大数据预处理 大数据预处理是指在主要的处理以前对数据进行的一些处理,包括数据质量评估、数据清理、数据转换和数据压缩等内容。通过预处理数据,可以提升数据的一致性,使得数据更加准确、数据库更为完整。7.4.2 大数据处理一般流程3、大数据存储及管理 根据数据存储和管理的内容范围,大数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。4、大数据分析及挖掘 大数据分析及挖掘主要通过对收集来的大数据进行分析,提取和挖掘有用信息或隐藏信息,并形成结论而对数据加以详细研究和概括总结的过程。5、大数据展现和应用 大数据展现和应用借助于图形化手段展示大数据分析结果。需要把过去用语言、数据、想象力表达的内容,通过图形、图表等形式即时显示。7.4.3 大数据处理关键技术大数据技术,就是从各种类型的数据中快速获得有价值信息的技术。大数据领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。大数据处理关键技术一般包括:大数据采集技术、大数据预处理技术、大数据存储技术、大数据分析挖掘技术、大数据可视化技术。7.4.3 大数据处理关键技术大数据采集技术 按照数据的来源的不同,大数据采集方法也不相同。目前大数据采集使用的处理模式包括MapReduce分布式并行处理模式或基于内存的流式处理模式。针对不同的数据源,大数据采集技术主要包括以下几类: 数据库采集。部署Redis、MongoDB和HBase等NoSQL数据库和部分传统的关系型数据库,并在这些数据库之间进行负载均衡和分片,来完成大数据采集工作。 系统日志采集。系统日志采集主要是收集各类业务平台日常产生的大量日志数据,供离线和在线的大数据分析系统使用。 网络数据采集。网络数据采集是利用网络爬虫或网站API等方式从网站上获取相关结构化、半结构化以及非结构化信息的方法。 感知设备数据采集。感知设备数据采集通过各类传感器、摄像头和智能终端自动采集信号、图像和音视频来获取数据。7.4.3 大数据处理关键技术大数据预处理技术 大数据预处理包括数据预处理、数据清洗、数据集成、数据规约、数据变换、数据离散化和大数据预处理等7个步骤。 数据预处理主要是处理原始信息的不完整、噪声和不一致等“脏”数据问题,进而获得具有一致性、准确性、完整性、时效性、可信性和可解释性的数据。 数据清洗主要是进行数据的缺失值的处理、噪声数据与离群点的处理。 数据集成是把不同来源、格式、特点性质的数据在逻辑上或物理上有机的集中,从而提供全面的数据共享。7.4.3 大数据处理关键技术大数据预处理技术 数据规约技术包括数据规约策略、机器学习中的降维方法、主成分分析法、先行分别分析、局部线性嵌入等。 数据变换技术包括数据变换策略和规范化方法,数据变换策略包括光滑、属性构造、聚集、规范化、离散化、标称数据的概念分层等,规范化方法包括最小最大规范化、Z-Score规范化、小数定标等。 数据离散化技术包括非监督离散化,如等宽算法、等频算法、K-means聚类算法,以及监督离散化,如齐次性的卡方检验、自上而下的卡方分裂算法、ChiMerge算法、基于熵的离散化方法等。 大数据预处理包括Hadoop集群、Spark、HBase、云计算处理大数据等。7.4.3 大数据处理关键技术大数据存储技术 大数据存储技术包括结构化、半结构化和非结构化大数据管理与处理技术,主要解决大数据的可存储、可表示、可处理、可靠性及有效传输等几个关键问题。大数据的存储方式包括分布式系统、NoSQL数据库、云数据库等。7.4.3 大数据处理关键技术大数据分析挖掘技术 大数据分析挖掘技术能够将隐藏于海量数据中的信息和知识挖掘出来,为人类的社会经济活动提供依据,从而提高各个领域的运行效率,大大提高整个社会的集约化程度。大数据挖掘涉及的技术方法很多,有多种分类法。根据挖掘任务可分为分类或预测模型发现、数据总结、聚类、关联规则发现、序列模式发现、依赖关系或依赖模型发现、异常和趋势发现等;根据挖掘对象可分为关系数据库、面向对象数据库、空间数据库、时态数据库、文本数据源、多媒体数据库、异质数据库等;根据挖掘方法分为机器学习方法、统计方法、神经网络方法和数据库方法等。7.4.3 大数据处理关键技术大数据可视化技术 大数据可视化根据数据的特性,如时间信息和空间信息等,找到合适的可视化方式,例如图表(Chart)、图(Diagram)和地图(Map)等,将数据直观地展现出来,以帮助人们理解数据,同时找出包含在海量数据中的规律或者信息。大数据数据可视化涉及数据的可视化、指标的可视化、数据关系的可视化、背景数据的可视化、转换成便于接受的形式、聚焦、集中或者汇总展示、扫尾的处理和完美的风格化。常用的大数据可视化工具包括Processing、D3、Echarts、Tableau、QlikView等。7.4.4 主流大数据处理平台 随着大数据技术的迅猛发展,目前出现了很多大数据平台,主流的大数据处理平台包括Hadoop、Spark、Flink、Storm、Samza等。7.4.4 主流大数据处理平台Hadoop批处理平台 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。它支持在商用硬件构建的大型集群上运行的应用程序。所有的Hadoop模块都有一个基本假设,即硬件故障是常见情况,应该由框架自动处理。 Hadoop的核心由Hadoop分布式文件系统HDFS存储部分和MapReduce编程处理部分组成。Hadoop将文件拆分为大块,并将它们分布在集群中的各个节点上。然后,它将打包的代码传输到节点中以并行处理数据。与在传统的超级计算机体系结构中依靠并行文件系统通过高速网络分发计算任务和数据相比,这种方法可以更快、更有效地处理海量数据集。7.4.4 主流大数据处理平台Hadoop批处理平台Hadoop主要工作流程7.4.4 主流大数据处理平台Hadoop批处理平台 Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且以一种可靠、高效、可伸缩的方式进行处理,具有以下特点: 支持超大文件:HDFS存储的文件可以支持TB和PB级别的数据。 高可靠性:Hadoop具有按位存储和处理数据能力的高可靠性。 高效性:Hadoop能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快。 高容错性:Hadoop文件保存多个副本,并提供副本丢失自动恢复功能。 高扩展性:集群可以方便地扩展到数以千计的节点,具有高扩展性。 低成本:可以部署在廉价的机器上。7.4.4 主流大数据处理平台Spark混合处理平台 Apache Spark是一个开源集群运算框架,最初是由加州大学柏克莱分校AMPLab所开发。2013年,该项目被捐赠给Apache软件基金会,2014年2月,Spark成为Apache的顶级项目。相对于Hadoop的MapReduce会在运行完工作后将中介资料存放到磁盘中,Spark使用了存储器内运算技术,能在资料尚未写入硬盘时即在存储器内分析运算。Spark在存储器内运行程序的运算速度能做到比Hadoop MapReduce的运算速度快上100倍,即便是运行程序于硬盘时,Spark也能快上10倍速度。Spark允许用户将资料加载至集群存储器,并多次对其进行查询,非常适合用于机器学习算法。7.4.4 主流大数据处理平台Spark混合处理平台 Spark主要包括Spark Core、Spark SQL、Spark Streaming、Spark MLlib、GraphX、集群管理器。Spark Core提供了分布式任务调度功能,调度基本的IO功能。Spark SQL在Spark Core上引入了一种名为DataFrames的抽象化数据概念,DataFrames支持处理结构化和半结构化数据。Spark SQL支持使用Scala、Java、Python、.Net和Julia等语言来操纵DataFrames,它还支持使用命令行界面和ODBCJDBC连接方式进行操作。7.4.4 主流大数据处理平台Spark混合处理平台 Spark Streaming充分利用Spark Core的快速调度能力来运行流分析。 Spark MLlib是Spark上分布式机器学习框架,可以使用许多常见的机器学习和统计算法,简化大规模机器学习时间,支持的算法包括:汇总统计、相关性、分层抽样、假设检定、随机数据生成、分类与回归(支持向量机、回归、线性回归、逻辑回归、决策树、朴素贝叶斯等)、协同过滤、聚类分析方法、维度约减算法、特征提取和转换、最优化方法等。 GraphX是Spark上的分布式图形处理框架。7.4.4 主流大数据处理平台Flink混合处理平台 Apache Flink是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。Flink擅长处理无界和有界数据集,精确的时间控制和状态化使得Flink的运行时(runtime)能够运行任何处理无界流的应用。有界流则由一些专为固定大小数据集特殊设计的算法和数据结构进行内部处理,产生了出色的性能。Flink 集成了所有常见的集群资源管理器,例如Hadoop YARN、Apache Mesos和Kubernetes,但同时也可以作为独立集群运行。7.4.4 主流大数据处理平台Storm流处理平台 Apache Storm是一个分布式实时大数据计算系统,可以简单、可靠的处理大量的数据流。Storm简化了流数据的可靠处理,像Hadoop一样实现实时批处理。Storm的部署和运维都很便捷,而且更为重要的是可以使用任意编程语言来开发应用。Storm有很多应用场景,包括实时数据分析、联机学习、持续计算、分布式RPC(Remote Procedure Call)、ETL(Extract-Transform-Load)等。Storm速度非常快,一个测试在单节点上实现每秒一百万的组处理。目前已经有包括阿里、腾讯、百度、华为在内的数家大型互联网公司在使用该平台。7.4.4 主流大数据处理平台Samza流处理平台 Samza是由LinkedIn开源的一项技术,它是一个分布式流处理框架,专用于实时数据的处理,非常像Twitter开源的流处理系统Storm。不同的是Samza基于Hadoop,而且使用了LinkedIn自家的Kafka分布式消息系统,并使用资源管理器Apache Hadoop YARN实现容错处理、处理器隔离、安全性和资源管理。7.4.5 NoSQL数据库 大数据一般通过分布式系统、NoSQL数据库等方式进行存储。NoSQL最初表示Non-SQL,后来有人转解为N