Hive数据仓库技术与应用案例教程课标教案_第1页
Hive数据仓库技术与应用案例教程课标教案_第2页
Hive数据仓库技术与应用案例教程课标教案_第3页
Hive数据仓库技术与应用案例教程课标教案_第4页
Hive数据仓库技术与应用案例教程课标教案_第5页
已阅读5页,还剩119页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Hive数据仓库技术与应用案例教程》课程标准【课程名称】Hive数据仓库技术与应用案例教程【课程编码】【课程类别】专业必修课 【适用专业】计算机科学与技术、大数据技术、数据科学与大数据技术、人工智能等相关专业【授课单位】 【总学时】32【编写执笔人】 【编写日期】一、课程性质和课程设计1.1课程制定依据Hive数据仓库技术与应用课程通常作为大数据技术与应用专业(数据仓库技术方向)的核心课程或必修课程。课程制定需要紧密围绕专业培养目标,确保学生通过课程学习后能够掌握Hive数据仓库技术的核心概念、原理和应用方法,以满足专业培养要求。课程制定还需要参考当前IT行业对Hive数据仓库技术的需求以及相关的职业标准。通过与行业企业沟通,了解企业对人才的实际需求,以及职业发展和晋升所需的技能,确保课程内容与行业需求相契合。1.2课程性质与作用本课程是基于大数据背景下的数据仓库技术Hive的理论结合实践教学。Hive是Hadoop生态系统中必不可少的一个工具,它提供了一种SQL(结构化查询语言)方言,可以查询存储在Hadoop分布式文件系统(HDFS)中的数据或其他和Hadoop集成的文件系统。大多数数据仓库应用程序都是使用关系数据库进行实现的,并使用SQL作为查询语言。Hive降低了将这些应用程序转移到Hadoop系统上的难度。凡是会使用SQL语言的学生都可以很轻松地学习并使用Hive。1.3课程设计思路课程设计思路采用了理论与实践相结合的教学模式,每介绍一个知识点,都会搭配对应的动手实践。这样的教学模式有助于学生对Hive大数据技术真正的理解与掌握,让学生明确所学知识是如何解决问题的,通过教授和练习巩固所学知识,使学生真正理解并能够应用所学知识。课程紧密结合网络管理工作实际,根据岗位能力的需要设计教学内容,科学、合理设计每个教学环节,充分利用校内教学资源,通过各种教学方法和手段的灵活运用,以及课堂教学和课外教学的紧密结合,将教、学、做融为一体,充分体现职业性、实践性和开放性的要求,提高学生的实践动手能力。二、课程目标2.1知识目标(1)熟悉数据仓库的特征和相关概念。(2)掌握数据仓库的模型设计。(3)理解维度建模法和数据仓库分层。(4)熟悉Hive的体系结构。(5)理解Hive的运行原理。(6)掌握Hive的三种部署模式。(7)掌握Hive的数据类型。(8)掌握Hive的运算符。(9)掌握Hive表的存储格式。(10)掌握数据库基本操作的语法格式。(11)掌握表基本操作的语法格式。(12)掌握视图基本操作的语法格式。(13)掌握导入数据的语法格式。(14)掌握导出数据的语法格式。(15)掌握简单查询的基本语法格式。(16)掌握条件查询的基本语法格式。(17)掌握分组查询的基本语法格式。(18)掌握排序查询的基本语法格式。(19)掌握连接查询的基本语法格式。(20)掌握抽样查询的基本语法格式。(21)掌握Hive中常用的内置函数。(22)熟悉在Hive中定义和使用自定义函数的步骤。(23)掌握存储优化的方法。(24)熟悉参数优化的方法。(25)掌握查询优化的方法。(26)熟悉数据仓库分层设计的方法。(27)掌握Hive数据定义的相关知识。(28)掌握Hive数据导入与导出的相关知识。(29)掌握Hive数据查询的相关知识。(30)掌握Hive函数的相关知识。(31)掌握Hive性能优化的相关知识。2.2技能目标(1)能够采用嵌入模式部署Hive。(2)能够采用本地模式部署Hive。(3)能够采用远程模式部署Hive。(4)能够完成数据仓库分层设计。(5)能够设计数据仓库各层中表的结构,包括表的存储格式、字段名、字段的数据类型等。(6)能够创建、显示、切换和删除数据库,并查看和修改数据库信息。(7)能够创建、显示、修改和删除不同类型的表,并查看表信息。(8)能够显示分区、添加分区、查看分区信息、移动分区和删除分区。(9)能够创建、显示和删除视图,并查看视图信息。(10)能够使用LOAD语句向表中加载数据。(11)能够使用INSERT语句向表中插入数据。(12)能够使用CREATE…AS语句创建表并导入数据。(13)能够使用IMPORT语句导入表。(14)能够使用INSERTOVERWRITE语句从表中导出数据。(15)能够使用EXPORT语句导出表。(16)能够使用条件语句、分组语句、排序语句或连接语句查询表中数据。(17)能够使用抽样查询抽取表中数据,并进行数据查询。(18)能够使用Hive中的内置函数操作数据。(19)能够定义并使用自定义函数操作数据。(20)能够使用存储优化方法优化Hive性能。(21)能够使用不同的参数优化方法优化Hive性能。(22)能够使用不同的查询优化方法优化Hive性能。(23)能够使用数据仓库与Hive的相关知识独立构建二手房数据仓库,并查询和分析二手房数据。(24)能够举一反三,参照二手房数据的分析过程分析其他数据。2.3素养目标(1)养成刻苦、勤奋、好问、独立思考和细心检查的学习习惯。(2)学习共享精神,实现资源的共同利用,从而推动社会的共同进步和繁荣。(3)掌握编程思路,培养逻辑思维能力。(4)锻炼具体问题具体分析的思维方式,培养一丝不苟的工作态度,增强积极主动寻求解决方法的意识。(5)培养从整体角度审视问题的能力,并可以将复杂的问题分解成更小的组成部分,以便更快地解决问题。(6)培养举一反三的能力,学会融会贯通。(7)了解中国的数据库市场,紧跟时代发展。(8)培养持续学习的能力,能够及时掌握新技术和工具,并将其应用到实际项目中。(9)培养自主学习意识,提升实践操作能力。(10)掌握创新方法,培养独立思考和解决问题的能力。(11)发扬精益求精的工匠精神,养成严谨认真的工作态度。(12)培养优化意识,持续提升个人能力。(13)懂得团结合作能让工作事半功倍的道理。三、课程内容与教学要求本课程包含数据仓库与Hive、Hive基础、Hive数据定义、Hive数据导入与导出、Hive数据查询、Hive函数、Hive性能优化、分析二手房数据八个部分,其教学内容及课时分配如表1所示。表1《Hive数据仓库技术与应用案例教程》教学内容及课时分配表序号课程名称教学内容课时分配1数据仓库与Hive1.1数据仓库概述1.2Hive概述4322Hive基础2.1Hive数据类型2.2Hive运算符23Hive数据定义3.1数据库的基本操作3.2表的基本操作3.3外部表3.4分区表3.5桶表3.6临时表3.7视图44Hive数据导入与导出4.1数据导入4.2数据导出45Hive数据查询5.1简单查询5.2条件查询5.3分组查询5.4排序查询5.5连接查询5.6抽样查询86Hive函数6.1内置函数6.2自定义函数67Hive性能优化7.1存储优化7.2参数优化7.3查询优化28分析二手房数据8.1设计二手房数据仓库8.2定义二手房数据仓库的存储结构8.3向二手房数据仓库中导入数据8.4查询并分析二手房数据8.5导出二手房数据2四、课程实施4.1教学条件我校十分注重建设和完善专业教学设施,如多媒体教室、活动室、网络教学平台、网络数据库等。同时,我校有一支强大的师资队伍,可以为专业教学出谋划策。4.2教学方法建议本课程遵循“教师引导,学生为主”的原则,采用讲解、多媒体演示、场景模拟法、讨论、翻转课堂等多种方法,努力为学生创设更多知识应用的机会。讲解法:主要用于讲授Hive数据仓库技术与应用案例教程基础知识、行业岗位知识等理论性较强的知识。多媒体演示法:在讲解过程中,借助音频、视频、图片等直观手段来呈现教学内容,在激发其学习兴趣和积极性的同时,不断提高其知识储备能力和综合文化素质。场景模拟法:针对所教内容布置任务,引导学生通过情景化的模拟训练来提升知识的实际应用能力和职业素养。讨论法:根据知识点,鼓励学生运用所学知识进行主题讨论,使其在讨论中逐步提升交际能力、思辨能力、解决实际问题的能力等。翻转课堂法:坚持学生的主体地位,鼓励学生在课上对自己学到的知识点进行分享和讲解,并对其讲解进行补充和评价,不断完善学生的知识结构,加深其对所学知识的理解。教师在教学过程中,可根据学生的实际情况灵活选用教学方法,因材施教,尽量照顾到每一个学生的学习需求。4.3教学评价与考核要求课程的教学评价由形成性测评(40%)和终结性测评(60%)组成,其考核要求如下:4.3.1形成性测评形成性测评考核学生在学习本课程过程中的学习情况和实际应用能力的发展情况,包括出勤考核(10%)、课堂参与程度考核(10%)、作业完成质量考核(20%)等。(1)出勤考核本项考核通过课前点名考核学生的课堂出勤率。迟到15分钟以内每次扣1分,迟到15分钟以上或无故缺勤一节课每次扣2分,该项考核累计最多扣10分。(2)课堂参与程度考核本项考核主要通过课堂提问和课堂积极发言来评判学生的学习态度、学习主动性、课堂参与程度,以及学生的思辨能力、问题解决能力及其对课堂教学知识的掌握情况等。只要学生能按时上课听讲,即可获得5分的基本分。学生上课发言一次,即可另外获得0.5分,课堂发言最多可得5分。学生的最后成绩为“5+课堂发言得分”。(3)作业完成质量考核本项考核主要通过学生作业来检测其对教学主体内容的掌握与理解程度、实际应用知识的能力、自主学习能力、信息收集与处理能力等。每次作业成绩按照相应标准而定,学生作业质量划分为优秀(10分)、良好(8分)、中等(7分)、及格(6分)和不及格(0分)五个档次。最后的作业成绩为学生作业完成质量成绩的平均数。4.3.2终结性测评终结性测评主要考核学生在学完本课程后所达到的水平,通过期末考试进行考核。期末考试由闭卷笔试(60%)组成,主要评估学生对本门课程基本知识的掌握情况与综合运用能力。五、课程资源开发与利用5.1推荐使用教材5.2网络资源

《Hive数据仓库技术与应用案例教程》

教案课时分配表章序课程内容课时备注1数据仓库与Hive42Hive基础23Hive数据定义44Hive数据导入与导出45Hive数据查询86Hive函数67Hive性能优化28分析二手房数据2合计32

课题数据仓库与Hive课时4课时(180min)教学目标知识目标:(1)熟悉数据仓库的特征和相关概念(2)掌握数据仓库的模型设计(3)理解维度建模法和数据仓库分层(4)熟悉Hive的体系结构(5)理解Hive的运行原理(6)掌握Hive的三种部署模式技能目标:(1)能够采用嵌入模式部署Hive(2)能够采用本地模式部署Hive(3)能够采用远程模式部署Hive素养目标:(1)养成刻苦、勤奋、好问、独立思考和细心检查的学习习惯(2)学习共享精神,实现资源的共同利用,从而推动社会的共同进步和繁荣教学重难点教学重点:数据仓库的特征、相关概念和模型设计,Hive的体系结构、运行原理和部署模式教学难点:分别采用嵌入模式、本地模式和远程模式部署Hive教学方法案例分析法、问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务了解当前Hive数据仓库技术的现状,以及未来的发展趋势。【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因新课预热【教师】自我介绍,与学生简单互动,介绍课程内容、考核标准等【学生】聆听、互动【教师】讲一些涉及Hive数据仓库技术的应用案例,解释学习该课程的作用【学生】聆听、记录、理解问题导入【教师】播放“数据仓库与数据库”视频(详见教材),提出以下问题:(1)简述数据库与数据仓库的区别。(2)简述MySQL与Hive的异同。【学生】思考、举手回答传授新知【教师】通过学生的回答引入要讲的知识,讲解数据仓库的特征、概念、模型设计,维度建模法和数据仓库分层架构,以及Hive的功能、体系结构、运行原理和部署模式等知识1.1数据仓库概述数据仓库(datawarehouse,DW)是一个面向主题的、集成的、相对稳定的、随时间变化的数据集合。设计并构建数据仓库,可以帮助企业有效地整合、存储、管理和分析大规模数据,从而为企业规划业务发展和制订战略决策等提供数据支持。1.1.1数据仓库的特征上述的数据仓库定义指出了它的4个特征。(1)数据仓库是面向主题的,这意味着数据仓库是针对企业的某个特定主题或问题而设计的。主题是一个抽象概念,每个主题通常对应一个或多个表,这些表包含与主题相关的数据。(2)数据仓库是集成的,这意味着数据仓库可以从多个数据源中获取数据,并将数据集成到一个统一的数据模型中,以确保数据的一致性和准确性。(3)数据仓库是相对稳定的,这意味着数据仓库中的数据一般是只读的,也可以理解为不允许在数据仓库中直接修改数据,以确保数据的完整性和稳定性。数据仓库是随时间变化的,这意味着数据仓库随时间变化不断增加新的数据;如果数据超过存储期限,数据仓库随时间变化不断删除旧的数据。1.1.2数据仓库相关概念数据仓库涉及许多专业名词,如“主题域”“维度”“指标”“粒度”“元数据”等,了解它们的基本概念有助于理解数据仓库的相关知识。(1)主题域。主题域是指在一个特定的业务领域中,具有共同特征和关注点的业务实体、属性、关系和行为的集合。在销售业务分析中,可以将主题域划分为客户管理、产品管理和订单管理等。(2)维度。维度是对业务过程中的某方面进行描述的属性集合。在销售业务分析中,可以从时间、地点、产品和客户等维度描述订单。(3)指标。指标是用于分析、衡量和评估业务性能的度量值。这些度量值通常是从业务活动中收集和计算得出的,用于分析、预测和决策支持。在销售业务分析中,可以将指标设置为销售量、销售额、销售增长率等,以便从不同的角度分析业务数据。(4)(5)元数据(metadata)。元数据是关于数据库、表、字段等的所有信息的描述,包括表存储格式、存储位置和数据类型等。1.1.3数据仓库模型设计✈【教师】利用多媒体展示“数据仓库模型的建模过程”图片(详见教材),并进行讲解数据仓库模型是一种结构化设计,用于定义和组织数据仓库中的数据、表和视图等。它提供了一种规范化的方法,以便更好地理解、管理、查询和维护数据仓库中的数据。数据仓库模型的建模过程如教材图所示。(1)业务建模。梳理业务流程,分析业务需求,确定用于构建数据仓库的数据。(2)(3)逻辑建模。针对每个主题域,首先根据业务需求和数据可用性确定每个指标的定义、计算方式和粒度;然后根据指标和数据分析的目的,确定业务领域中的实体及其之间的关系,同时梳理与指标相关的维度;最后根据业务需求和数据仓库设计原则,设计数据仓库分层。(4)物理建模。实现逻辑模型,主要包括选择合适的软硬件配置、定义存储结构、确定数据存储位置和存储分配等。✈【教师】随机邀请学生回答以下问题:请谈谈你对数据仓库建模的了解。✈【学生】聆听、思考、回答✈【教师】总结学生的回答数据仓库建模是一个迭代的过程,每个建模阶段可能需要多次迭代和调整。此外,项目背景和项目开发者不同,数据仓库建模采用的具体方法和工具也会不同,上述描述只是提供一个经典的建模过程。1.1.4维度建模法在数据仓库模型设计中,逻辑建模方法包括维度建模法、实体—关系建模法和泛化式建模法等。其中,维度建模法最常用,它可以根据事实表和维度表构建数据仓库的数据模型。其中,事实表用于存储业务指标,维度表用于描述事实表的维度。根据事实表和维度表的关系,可将维度建模法中使用的模型分为星型模型和雪花模型。1.星型模型✈【教师】利用多媒体展示“星型模型实例”图片(详见教材),并进行讲解星型模型(starschema)是一种用于组织和存储数据的常用数据模型,支持快速、灵活地查询和分析数据。当所有维度表都直接连接到事实表上时,整个模型的结构图就像星星一样,故将该模型称为星型模型,如图所示。从图中可以看出,每个维度表(部门维、产品维、地域维和时间维)均与事实表直接连接,且事实表中包含每个维度表的主键。星型模型是一种非正规化的结构,多维数据集的每个维度都直接与事实表相连接,所以数据存在冗余。如果地域维度表中存在国家A省B城市C、国家A省B城市D两条记录,那么国家A和省B的信息分别存储了两次,导致数据存在冗余。2.雪花模型✈【教师】利用多媒体展示“雪花模型实例”图片(详见教材),并进行讲解雪花模型(snowflakeschema)是星型模型的一种扩展和改进,它利用维度层级将维度表分解为多个相关的表(每个表包含不同级别的维度信息),对星型模型中的维度表进一步层次化。当有一个或多个维度表没有直接连接到事实表上,而是通过其他维度表连接到事实表上时,整个模型的结构图就像雪花一样,故将该模型称为雪花模型,如图所示。✈【教师】利用多媒体展示“星型模型和雪花模型的详细对比”表格,并进行讲解星型模型和雪花模型各有优势,它们的详细对比如表所示。星型模型和雪花模型的详细对比属性星型模型雪花模型多少维度表一层级维度表多层级维度表数据冗余度高低表数量少多查询速度快慢查询逻辑简单复杂1.1.5数据仓库分层架构✈【教师】利用多媒体展示“数据仓库分层架构”图片(详见教材),并进行讲解数据仓库分层架构通常包括

3

层,即源数据层、数据仓库层和数据应用层,如图所示。1.源数据层源数据层又称ODS(operationdatastore)层,主要用于保存原始数据,完成数据积存。源数据层通常采用ETL工具为数据仓库提供数据,使源数据和数据仓库之间保持数据同步。该层的数据通常保存在磁盘中,即使计算机突然停机或崩溃,数据也不会丢失。✈【教师】随机邀请学生回答以下问题:ETL工具有哪些作用?✈【学生】聆听、思考、回答✈【教师】总结学生的回答ETL(extract-transform-load)工具是用于数据提取、转换和加载的软件工具。ETL工具能够从各种数据源中提取数据;然后转换和整理提取到的数据;最后将数据加载到目标数据仓库或数据分析平台。2.数据仓库层✈【教师】利用多媒体展示“数据仓库层的详细介绍”图片(详见教材),并进行讲解数据仓库层又称

DW

层,存储的数据是对源数据层中数据的轻度汇总,即按照一定的主题汇总的数据。数据仓库层可以继续划分为明细(datawarehousedetail,DWD)层、中间(datawarehousemiddle,DWM)层和业务(datawarehouseservice,DWS)层,每层的详细介绍如图所示。✈【教师】随机邀请学生回答以下问题:数据仓库层的各层是否可以省略?✈【学生】聆听、思考、回答✈【教师】总结学生的回答在实际应用中,用户可以根据业务需求省略中间层,直接从明细层读取数据并计算宽表的指标,然后将宽表存放在业务层。3.数据应用层数据应用层又称

DA(dataapplication)层,用于为数据挖掘、数据可视化、数据分析等实际业务场景提供数据。数据应用层的数据通常来源于数据仓库层的数据。1.2Hive概述Hive

是一个基于

Hadoop

的开源的数据仓库工具。Hive

提供了一种类似于

SQL(structuredquerylanguage)的查询语用于管理和查询大规模数据,而且Hive可以✈【素养之窗】Hive是开源的数据仓库工具。开源就是开放源代码,任何人都可以获取并使用软件的源代码。在开源社区中,来自世界各地的开发人员互相分享知识和经验,协作研发同一个项目,共同创造出高质量的软件。目前,开源已经成为软件产业的重要组成部分,广受欢迎的开源软件有Linux操作系统、Apache服务器、MySQL数据库等。正如开源已成为软件行业的必然趋势一样,开放合作也是这个世界的必然趋势。作为大学生,更要在学好专业课的同时,强化自己的合作意识和共享精神,为科技的不断发展尽自己的一份力量。1.2.1Hive实现的功能Hive为大规模数据的存储和分析提供了一个简单且可扩展的解决方案,它能够实现的功能如下。(1)数据存储和管理:Hive

提供了一种类似于关系型数据库的结构化数据存储和管理机制。Hive

使用

Hadoop

分布式文件系统(HDFS)存储数据,允许开发人员创建表,定义表的结构、分区和分桶等。(2)数据查询、处理和分析:Hive

提供了

HiveQL,使得开发人员可以使用熟悉的SQL语法查询、处理和分析数据。(3)生态系统集成:Hive

具有强大的扩展性,它可以与Hadoop生态系统中的工具和技术(如HBase、Spark、Kafka等)集成,以支持更复杂的数据处理和分析任务。1.2.2Hive的体系结构✈【教师】利用多媒体展示“Hive的体系结构”图片(详见教材),并进行讲解Hive的体系结构是一个复杂的分布式系统,如图所示。其中,Hive使用Hadoop底层的HDFS存储数据,使用MapReduce实现分布式计算。Hive由用户接口、Thrift服务、驱动器和元数据库等组件组成。(1)用户接口(userinterface)。Hive提供了CLI、编程接口(如JDBC、ODBC)和✈【教师】随机邀请学生回答以下问题:CLI、JDBC、ODBC等接口分别有什么作用?✈【学生】聆听、思考、回答✈【教师】总结学生的回答CLI(commandlineinterface)是Hive提供的命令行界面,用户可以在该界面上输入HiveQL语句。JDBC(Javadatabaseconnectivity)和ODBC(opendatabaseconnectivity)是用于连接数据库和进行数据库交互的两种标准接口。通过这些标准接口,用户可以使用多种编程语言(如Java、Python、R等)访问Hive。(2)Thrift服务。Thrift服务提供了访问服务,允许用户使用不同的编程语言调用Hive接口。任务的生成。驱动器的组成如下。①解析器(parser)。将用户输入的HiveQL语句转换成抽象语法树(abstractsyntaxtree,AST)。解析器会进行语法检查、语义分析和转换操作,确保查询语句的正确性和合法性。②编译器(compiler)。将抽象语法树转换成查询块,然后将查询块转换成逻辑执行计划。③优化器(queryoptimizer)。对逻辑执行计划进行优化,提高查询的性能。④执行器(execution)。将优化后的逻辑执行计划转换成物理执行计划(一系列MapReduce任务)。(4)元数据库。元数据库中含有表名、字段名、字段的数据类型、分区、表的存储位置等信息。Hive的元数据可以存储在不同的数据库中,如MySQL、Oracle、Hive内置的Derby等。1.2.3Hive的运行原理✈【教师】利用多媒体展示“Hive的运行原理”图片(详见教材),并进行讲解Hive的运行原理如图所示。(1)执行查询。用户通过Hive的用户接口将HiveQL语句发送给驱动器,触发查询的执行过程。(2)解析。解析器解析用户提交的HiveQL语句,生成抽象语法树。(3)获取元数据信息。编译器根据用户提交的

HiveQL

语句,发送获取元数据信息请求到元数据库,获取查询任务需要的元数据信息。(4)(5)编译。编译器通过元数据信息验证查询中引用的表和字段是否存在,若存在则先将抽象语法树转换成查询块,然后将查询块转换成逻辑执行计划;若不存在则编译器会抛出异常并给出相应的提示。(6)(7)发送MapReduce任务。执行器将优化后的逻辑执行计划转换成物理执行计划(一系列MapReduce任务);然后驱动器将MapReduce任务转交给执行引擎。(8)执行MapReduce任务。执行引擎接收MapReduce任务后,首先从元数据库获取元数据,并将元数据写入HDFS;然后将MapReduce任务提交到Hadoop集群中执行。(9)获取结果。执行引擎获取来自Hadoop集群的执行结果。(10)发送结果。执行引擎发送执行结果给驱动器。(11)返回结果。驱动器将执行结果返回给用户接口。1.2.4Hive的部署模式Hive有3种部署模式,分别为嵌入模式、本地模式和远程模式。(1)嵌入模式。嵌入模式(embeddedmode)是指将Hive作为一个库嵌入其他应用程序中使用的方式。在嵌入模式下运行Hive时,元数据保存在内置的Derby数据库中,且只允许一个会话连接。也就是说,同一时间只能有一个Hive客户端操作同一个数据库。嵌入模式一般只用于测试环境。(2)本地模式。本地模式(localmode)是指在单个节点执行

Hive

查询的方式。在本地模式下运行

Hive

时,元数据保存在

MySQL

数据库中,且允许多个会话连接。也就是说,同一时间允许多个

Hive

客户端操作同一个数据库。Hive

客户端连接MySQL

数据库时,需要知道登

MySQL

数据库的用户名和密码。本地模式可用于测试环境和生产环境。(3)远程模式。远程模式(remotemode)是指通过网络连接远程访问Hive服务器的方式执行

Hive

查询。远程模式与本地模式一样,都会将元数据存储在MySQL数据库中。不同的是,远程模式中

Hive

客户端和元数据服务(服务端)在不同的服务器启动,Hive客户端通过远程连接元数据服务获取元数据信息。HiveServer2是

Hive

的一个组件,它提供了一个标准的

SQL

接口,使用户可以远程访问Hive并执行查询操作。Beeline

Hive

的一个命令行工具,它提供了一个标准的

SQL

接口,使用户可以通过JDBC连接到HiveServer2并执行Hive查询语句。与Hive的CLI不同,Beeline是一个独远程模式的实现需要使用Hive安装目录中提供的Beeline和HiveServer2,用户可以通过配置Beeline连接信息(如JDBCURL、用户名和密码等)与远程的HiveServer2建立连接,并通过标准的SQL接口执行Hive查询语句。远程模式可用于测试环境和生产环境,一般用于生产环境。【学生】聆听、思考、理解、记录课堂实践【教师】播放“采用嵌入模式部署Hive”视频,讲解并演示采用嵌入模式部署Hive的具体操作,然后组织学生以小组为单位,进行采用嵌入模式部署Hive的操作本书均在VMware虚拟机中搭建所需环境,参考本书配套素材“前置环境的配置与安装”文档,安装和配置以下前置环境。VMware虚拟机:VMwareWorkstationPro17.0.0。Linux操作系统:RedHatEnterpriseLinux8.7.064位。1.安装JDK步骤

1启动终端,执行如下命令,在“/usr/lib”目录中新建一个“jvm”文件夹,用于存放解压后的JDK安装文件。[hadoop@localhost~]$cd/usr/lib #切换到“/usr/lib”目录[hadoop@localhostlib]$sudomkdirjvm #新建“jvm”文件夹步骤

2localhost #下载JDK8安装文件[hadoop@localhostlib]$-C/usr/lib/jvm #解压JDK8安装文件步骤3执行如下命令,使用Vim编辑器打开“.bashrc”配置文件。[hadoop@localhostlib]$vim~/.bashrc……(详见教材)2.设置SSH免密登录SSH(secureshell)是一种用于计算机之间加密登录的网络协议,通过加密和身份验证保证通信的机密性、完整性和安全性。设置SSH免密登录可以实现远程登录、服务控制和数据传输等功能。步骤1执行如下命令,设置SSH免密登录,以便操作主机。#登录主机,登录过程中根据提示信息输入“yes”或密码[hadoop@localhost~]$sshlocalhost [hadoop@localhost~]$cd~/.ssh#生成SSH密钥对,生成过程中根据提示信息按3次“Enter”键[hadoop@localhost.ssh]$ssh-keygen-trsa#将生成的公钥追加到“authorized_keys”文件中#设置“authorized_keys”文件的权限为600,保护私钥的安全性[hadoop@localhost.ssh]$chmod600~/.ssh/authorized_keys步骤

2执行如下命令,登录主机,验证SSH免密登录是否设置成功。如果无须输入密码即可成功登录,则证明SSH免密登录设置成功。[hadoop@localhost.ssh]$sshlocalhost3.安装Hadoop✈【教师】利用多媒体展示“下载Hadoop安装文件”图片(详见教材),并进行讲解步骤

1步骤

2启动终端,执行如下命令,将Hadoop安装文件解压到“/usr/local”目录中;然后将“hadoop-3.3.4”目录重命名为“hadoop”,使目录名称更简洁,以便后续使用;最后将“hadoop”目录的所有权限赋予hadoop用户,使hadoop用户有权限访问和操作“hadoop”目录中的文件。#解压Hadoop安装文件[hadoop@localhost~]$cd/usr/local #重命名[hadoop@localhostlocal]$sudomv./hadoop-3.3.4/./hadoop#赋予权限[hadoop@localhostlocal]$sudochown-Rhadoop./hadoop步骤

3执行如下命令,打开“.bashrc”配置文件;然后在文件首行添加如下配置信息,将Hadoop的可执行文件路径添加到系统的PATH环境变量中,以便在任意路径下使用Hadoop;最后保存并关闭配置文件。[hadoop@localhostlocal]$vim~/.bashrc#配置信息exportHADOOP_HOME=/usr/local/hadoopexportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin……(详见教材)4.部署Hadoop伪分布式集群步骤

1启动终端,执行如下命令,打开“core-site.xml”配置文件;然后在<configuration>标签下方添加如下配置信息,设置

Hadoop

的临时目录路径和默认文件系统;最后保存并关闭配置文件。[hadoop@localhost~]$cd/usr/local/hadoop/etc/hadoop[hadoop@localhosthadoop]$geditcore-site.xml#配置信息<property> <!--指定Hadoop运行时使用的临时目录路径--> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value></property><property> <!--配置Hadoop集群的默认文件系统--> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value></property>步骤

2执行如下命令,打开“hdfs-site.xml”配置文件;然后在<configuration>标签下方添加如下配置信息,设置HDFS的副本数、NameNode节点的名称目录和NameNode节点的数据目录;最后保存并关闭配置文件。[hadoop@localhosthadoop]$gedithdfs-site.xml#配置信息<property> <!--配置HDFS副本数--> <name>dfs.replication</name> <value>1</value></property><property> <!--配置NameNode节点的名称目录--> <name>.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property> <!--配置NameNode节点的数据目录--> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value></property>步骤

3执行如下命令,打开“mapred-site.xml”配置文件;然后在<configuration>标签下方添加如下配置信息,设置MapReduce运行时使用的资源管理框架为YARN;最后保存并关闭配置文件。[hadoop@localhosthadoop]$geditmapred-site.xml#配置信息<property> <name></name> <value>yarn</value></property>……(详见教材)5.安装Hive✈【教师】利用多媒体展示“下载Hive安装文件”图片(详见教材),并进行讲解步骤

1在打开的页面中单击“apache-hive-3.1.3-bin.tar.gz”链接文字,下载Hive安装文件,如教材图1-13所示。步骤

2启动终端,执行如下命令,将Hive安装文件解压到“/usr/local”目录中;然后将“apache-hive-3.1.3-bin”目录重命名为“hive”;最后将该目录的所有权限赋予hadoop用户。[hadoop@localhost~]$sudotar-zxf~/下载/apache-hive--bin.tar.gz-C/usr/local[hadoop@localhost~]$cd/usr/local[[hadoop@localhostlocal]$sudochown-Rhadoop./hive步骤

3执行如下命令,打开“.bashrc”配置文件;然后在文件首行添加如下配置信息,将Hive的可执行文件路径添加到系统的PATH环境变量中,以便在任意路径下使用Hive;最后保存并关闭配置文件。[hadoop@localhostlocal]$sudovim~/.bashrc#配置信息exportHIVE_HOME=/usr/local/hiveexportPATH=$PATH:$HIVE_HOME/bin……(详见教材)6.初始化Derby✈【教师】利用多媒体展示“Derby数据库初始化成功”图片(详见教材),并进行讲解步骤

1启动终端,执行如下命令,初始化Derby数据库。如果出现“schemaToolcompleted”提示信息,则证明Derby数据库初始化成功,如教材图1-14所示。[hadoop@localhost~]$schematool-initSchema-dbTypederby✈【教师】利用多媒体展示“Hive的CLI”图片(详见教材),并进行讲解步骤2执行如下命令,启动Hive的CLI,验证采用嵌入模式部署Hive是否成功。若出现“hive>”提示符,则证明部署成功,如教材图1-15所示。[hadoop@localhost~]$hive步骤3执行如下语句,退出Hive的CLI。hive>EXIT;【学生】观看、聆听、思考、根据要求进行操作,先完成的学生帮助本组其他学生完成操作,如遇问题,可询问教师或自行扫码播放“采用嵌入模式部署Hive”视频【教师】巡堂指导,及时解决学生的问题✈【教师】随机邀请学生回答以下问题:启动和退出Hive的CLI的方式分别有哪几种?✈【学生】聆听、思考、回答✈【教师】总结学生的回答启动和退出Hive的CLI的方式分别有两种。#启动命令hive #方式一hive--servicecli #方式二#退出语句EXIT; #方式一QUIT; #方式二【教师】播放“采用本地模式部署Hive”视频,讲解并演示采用本地模式部署Hive的具体操作,然后组织学生以小组为单位,进行采用本地模式部署Hive的操作采用本地模式部署Hive同样需要安装JDK、设置

SSH

免密登录、安装Hadoop、部署Hadoop伪分布式集群和安装Hive,具体操作方法参考项目实施1。下面只详细介绍安装MySQL和配置MySQL保存Hive元数据的具体操作方法。1.安装MySQL✈【教师】利用多媒体展示“下载MySQL驱动程序文件”图片(详见教材),并进行讲解步骤

1启动浏览器,访问“/archives/c-j/”,在打开的页面中选择产品版本、操作系统和操作系统版本,然后单击“Download”按钮,下载MySQL驱动程序文件,如图1-16所示。✈【教师】随机邀请学生回答以下问题:MySQL驱动程序文件需要根据什么进行选择?✈【学生】聆听、思考、回答✈【教师】总结学生的回答MySQL驱动程序文件需要根据个人安装的虚拟机镜像文件进行选择。例如,本书安装的是RedHat8.7.0版本,则选择对应的操作系统RedHatEnterpriseLinux/OracleLinux和版本RedHatEnterpriseLinux8/OracleLinux8。步骤

2启动终端,执行如下命令,将下载的

MySQL

驱动程序文件解压并安装到“~/下载”目录中。[hadoop@localhost~]$cd~/下载[hadoop@localhost下载]$sudorpm2cpio~/下载/mysql-connector-j-8.0.33-1.el8.noarch.rpm|cpio-idmv✈【教师】利用多媒体展示“提示信息”图片(详见教材),并进行讲解步骤

3执行如下命令,安装

MySQL

服务器端。安装过程中根据提示信息输入“y”,如教材图1-17所示。[hadoop@localhost下载]$sudoyuminstallmysql-server✈【教师】随机邀请学生回答以下问题:如果使用yum命令安装MySQL服务器端时出现“没有被启用的仓库”错误,该如何处理?✈【学生】聆听、思考、回答✈【教师】总结学生的回答如果使用yum命令安装MySQL服务器端时出现“没有被启用的仓库”错误,同学们可以参考素材与实例的“前置环境的配置与安装”文档挂载光盘镜像即可。……(详见教材)2.配置MySQL保存Hive元数据步骤

1启动终端,执行如下命令,将解压的MySQL驱动程序文件复制到“/usr/local/hive/lib”目录中。/usr/local/hive/lib步骤

2执行如下命令,创建并打开“hive-site.xml”配置文件;然后添加如下配置信息,以便Hive与MySQL进行交互;最后保存并关闭配置文件。[hadoop@localhost~]$cd/usr/local/hive/conf[hadoop@localhostconf]$touchhive-site.xml #创建配置文件[hadoop@localhostconf]$gedithive-site.xml #打开配置文件#配置信息<?xmlversion="1.0"encoding="UTF-8"standalone="no"?><?xml-stylesheettype="text/xsl"href="configuration.xsl"?><configuration> <property> <!--配置JDBC连接地址,并创建名为hive的数据库--> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNExist=true</value> </property> <property> <!--配置JDBC驱动--> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <!--配置连接MySQL的用户名--> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <!--配置连接MySQL的密码--> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property></configuration>……(详见教材)【学生】观看、聆听、思考、根据要求进行操作,先完成的学生帮助本组其他学生完成操作,如遇问题,可询问教师或自行扫码播放“采用本地模式部署Hive”视频【教师】巡堂指导,及时解决学生的问题✈【教师】随机邀请学生回答以下问题:在“hive-site.xml”配置文件中,具体应该如何配置?✈【学生】聆听、思考、回答✈【教师】总结学生的回答在“hive-site.xml”配置文件中,首先配置JDBC连接地址,并创建名为hive的数据库用于存储元数据信息;然后配置JDBC驱动;最后分别配置连接MySQL的用户名和密码。【教师】播放“采用远程模式部署Hive”视频,讲解并演示采用本地模式部署Hive的具体操作,然后组织学生以小组为单位,进行采用远程模式部署Hive的操作1.准备环境采用远程模式部署Hive需要将Hive和MySQL安装在不同的主机上。Hadoop

完全分布式集群既可以提供集群环境,又可以提供不同的主机,因此推荐在

Hadoop

完全分布式集群中采用远程模式部署Hive。✈【教师】利用多媒体展示“3台主机的详细介绍”表格,并进行讲解采用远程模式部署Hive时,需要准备3台主机,每台主机的详细介绍如表所示。序号主机名IP地址/子网掩码软件1Master(主节点/子节点)1/JDK、Hadoop2Worker1(子节点)2/JDK、Hadoop、Hive、MySQL3Worker2(子节点)3/JDK、Hadoop、Hive步骤

1启动第1台主机的终端,执行如下命令,打开“hostname”配置文件;然后删除文件中的所有内容并添加如下配置信息,将主机名修改为“Master”;最后保存并关闭配置文件。[hadoop@localhost~]$sudovim/etc/hostname#配置信息Master步骤

2执行如下命令,打开“ifcfg-ens160”配置文件;然后在文件末尾添加如下配置信息,设置静态IP地址和子网掩码;最后保存并关闭配置文件。[hadoop@localhost~]$sudovim/etc/sysconfig/network-scripts/ifcfg-ens160#配置信息IPADDR=1NETMASK=步骤

3使用同样的方法修改其余两台主机的主机名、静态IP地址和子网掩码。步骤

4分别在

3

台主机的终端执行如下命令,打开“hosts”配置文件;然后在文件末尾添加如下配置信息,设置主机名与

IP

地址的映射关系,确保用户可以直接使用主机名访问相应的IP地址;最后保存并关闭配置文件。[hadoop@localhost~]$sudovim/etc/hosts#配置信息1Master2Worker13Worker2✈【教师】随机邀请学生回答以下问题:“hosts”文件中原有的内容是否要删除?✈【学生】聆听、思考、回答✈【教师】总结学生的回答“hosts”文件中原有的内容不要删除,然后根据自己创建的3台主机的主机名和IP地址添加配置信息。……(详见教材)2.设置SSH免密登录步骤1在Master主机上执行如下命令,设置SSH免密登录,以便操作主机。#登录主机,登录过程中根据提示信息输入“yes”或密码[hadoop@Master~]$sshlocalhost [hadoop@Master~]$cd~/.ssh#生成SSH密钥对,生成过程中根据提示信息按3次“Enter”键[hadoop@Master.ssh]$ssh-keygen-trsa#将生成的公钥追加到“authorized_keys”文件中#设置“authorized_keys”文件的权限为600,保护私钥的安全性[hadoop@Master.ssh]$chmod600~/.ssh/authorized_keys步骤

2使用同样的方法设置Worker1和Worker2主机的SSH免密登录。步骤

3[hadoop@Master.ssh]$scp./id_rsa.pubhadoop@Worker1:/home/hadoop/[hadoop@Master.ssh]$scp./id_rsa.pubhadoop@Worker2:/home/hadoop/……(详见教材)3.部署Hadoop完全分布式集群步骤

1参考项目实施1,分别在3台主机中安装JDK和Hadoop。步骤

2在Master主机上执行如下命令,打开“workers”配置文件;然后删除文件中的所有内容并添加如下配置信息,指定Hadoop集群中所有的子节点;最后保存并关闭配置文件。[hadoop@Master~]$cd/usr/local/hadoop/etc/hadoop[hadoop@Masterhadoop]$vimworkers#配置信息MasterWorker1Worker2……(详见教材)4.部署HiveServer2与Beeline步骤

1在Master主机上执行如下命令,打开“core-site.xml”配置文件;然后在<configuration>标签下方添加如下配置信息,设置所有用户可以代理hadoop用户,保证代理用户能够以hadoop用户的身份执行相关操作;最后保存并关闭配置文件。[hadoop@Master~]$cd/usr/local/hadoop/etc/hadoop[hadoop@Masterhadoop]$geditcore-site.xml#配置信息<property> <name>xyuser.hadoop.hosts</name> <value>*</value></property><property> <name>xyuser.hadoop.groups</name> <value>*</value></property>步骤

2使用同样方法,在Worker1和Worker2主机的“core-site.xml”配置文件中添加配置信息,设置所有用户可以代理hadoop用户。✈【教师】随机邀请学生回答以下问题:设置用户的访问权限时,如何修改用户名?✈【学生】聆听、思考、回答✈【教师】总结学生的回答后续操作中,Worker2主机需要远程访问Worker1主机,因此要设置用户的访问权限,允许Worker2主机访问Worker1主机,并能够以hadoop用户的身份执行相关操作。本书中,Worker1主机的用户名为“hadoop”,因此配置信息为xyuser.hadoop.groups。实际操作中,读者只需要根据自己的用户名修改xyuser.<用户名>.groups中的<用户名>。步骤3在Master主机上,重启Hadoop集群。……(详见教材)【学生】观看、聆听、思考、根据要求进行操作,先完成的学生帮助本组其他学生完成操作,如遇问题,可询问教师或自行扫码播放“采用远程模式部署Hive”视频【教师】巡堂指导,及时解决学生的问题实操练习【教师】组织学生上机进行实操练习聆听要求、讨论、思考、操作、记录问题与解决办法【教师】观看学生操作内容,点评学生操作,并进行总结课堂小结【教师】简要总结本节课的要点本节课学习了数据仓库的特征、相关概念和模型设计,维度建模法和数据仓库分层,以及Hive的体系结构、运行原理和三种部署模式等知识。希望大家在课下多加练习,巩固所学知识,能够对数据仓库与Hive有一个大致认识,并熟练掌握采用三种模式部署Hive的操作。【学生】总结回顾知识点作业布置【教师】布置课后作业老师扫描此码进行本课线上作业布置【学生】完成课后任务教学反思

课题Hive基础课时2课时(90min)教学目标知识目标:(1)掌握Hive的数据类型(2)掌握Hive的运算符(3)掌握Hive表的存储格式技能目标:(1)能够完成数据仓库分层设计(2)能够设计数据仓库各层中表的结构,包括表的存储格式、字段名、字段的数据类型等素养目标:(1)掌握编程思路,培养逻辑思维能力。(2)锻炼具体问题具体分析的思维方式,培养一丝不苟的工作态度,增强积极主动寻求解决方法的意识教学重难点教学重点:Hive的数据类型和运算符,Hive表的存储格式教学难点:完成数据仓库分层设计,设计数据仓库各层中表的结构教学方法案例分析法、问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务请大家了解常用的Hive运算符。【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】提出以下问题:(1)Hive提供的数据类型主要分为哪几种?(2)Hive内置运算符的类型有哪些?传授新知【教师】通过学生的回答引入要讲的知识,介绍Hive数据类型和运算符,以及Hive表的存储格式等知识2.1Hive数据类型数据类型用于规定数据的存储格式、约束和有效范围。在设计数据仓库的过程中,需要确定Hive表中不同字段的数据类型。Hive提供的数据类型主要分为基本数据类型和复杂数据类型。2.1.1基本数据类型✈【教师】利用多媒体展示“基本数据类型”表格,并进行讲解在Hive中,基本数据类型包括数值类型、日期/时间类型、字符串类型和其他类型。不同数据类型所占字节和存储范围也不同,基本数据类型的详细介绍如表所示。基本数据类型数据类型描述所占字节取值范围数值类型TINYINT有符号整数1字节−128~127SMALLINT有符号整数2字节−32768~32767INT4字节BIGINT有符号整数8字节−9223372036854775808

~9223372036854775807FLOAT单精度浮点数4字节−3.40282347E+38

~3.40282347E+38DOUBLE双精度浮点数8字节DECIMAL任意精度的带符号小数,(precision,scale)其中,precision表示数字的最大位数,取值范围为[1,38],默认值为10;scale表示小数点后的位数,默认值为0precision类型TIMESTAMP精确到纳秒的UNIX时间戳,各个时区、各个地方所表示的值都相同。格式为YYYY-MM-DDHH:MM:SS4字节DATE以年、月、日的形式描述日期,格式为YYYY-MM-DD3字节0000-01-01字符串

类型STRING字符串—字符长度没有限制VARCHAR变长字符串数据本身长度+1字节字符长度为1~65535CHAR定长字符串取决于定义时指定的字符数字符长度为1~255其他

类型BOOLEAN布尔类型1字节TRUE或FALSEBINARY字节数组——2.1.2复杂数据类型在Hive中,复杂数据类型包括数组、映射和结构体。(1)数组(ARRAY)是一组具有相同数据类型的数据的集合。ARRAY类型的声明格式如下。ARRAY<data_type>其中,data_type表示数组中元素的数据类型,可以是任意数据类型。例如,“namesARRAY<STRING>”表示声明字段names,该字段为数组类型且数组中元素的数据类型为STRING。MAP<key_type,value_type>其中,key_type表示键的数据类型,只能是基本数据类型;value_type表示值的数据类型,可以是任意数据类型。例如,“scoreMAP<STRING,DOUBLE>”表示声明字段score,该字段为映射类型且键的数据类型为STRING;值的数据类型为DOUBLE。(3)结构体(STRUCT)可以封装一组有名字的字段,每个字段的数据类型可以不同。STRUCT类型的声明格式如下。STRUCT<field1:data_type1,field2:data_type2,…>其中,field1和field2表示字段名;data_type1和data_type2表示字段的数据类型,可以是任意数据类型。例如,“basicSTRUCT<class:STRING,college:STRING>”表示声明字段basic,该字段为结构体类型且包含两个STRING类型的字段class和college。2.1.3数据类型转换在Hive中,用户可以根据需要对基本数据类型的数据进行类型转换。数据类型转换可以分为隐式数据类型转换和显式数据类型转换。1.隐式数据类型转换隐式数据类型转换是指,当表达式或操作中含有不同数据类型的值时,Hive

会自动将不同数据类型的值转换为相同的数据类型,以便进行计算或比较。例如,计算“23.0”时,Hive会自动将2转换为浮点类型(2.0),然后执行加法操作。隐式数据类型转换的规则如下。(1)任何整数类型都可以转换为一个取值范围更大的整数类型。例如,TINYINT类型可以转换成INT类型;INT类型可以转换成BIGINT类型。(2)TINYINT类型、SMALLINT类型和INT类型均可以转换成FLOAT类型。……(详见教材)2.显式数据类型转换显式数据类型转换是指使用函数将原数据类型强制转换为指定的数据类型。在Hive中,可以使用CAST()函数进行显式数据类型转换。CAST()函数的语法格式如下。CAST(exprAS<type>)其中,expr表示要转换的表达式,<type>表示目标数据类型。例如,“CAST(2.0ASINT)”表示将DOUBLE类型的数据(2.0)转换成整数2。2.2Hive运算符运算符用于连接表达式中各种数据类型的操作数,其作用是指明对操作数所执行的运算类型。Hive

内置运算符可分为

4

种类型,分别为算术运算符、关系运算符、逻辑运算符和复杂运算符。2.2.1算术运算符✈【教师】利用多媒体展示“常用的算术运算符”表格,并进行讲解算术运算符用于执行各种常见的算术运算。算术表达式的返回值为数值类型或NULL。常用的算术运算符包括“+”“−”“*”“/”和“%”等,它们的详细介绍如表所示。常用的算术运算符算术运算符支持的数据类型算术表达式描述数值类型+BA加上B。若A或B为NULL,则返回NULL−数值类型A−BA减去B。若A或B为NULL,则返回NULL*数值类型A*BA乘以B。若A或B为NULL,则返回NULL/数值类型A/BA除以B。若A或B为NULL,则返回NULL%数值类型A%BA除以B取余数。若A或B为NULL,则返回NULL2.2.2关系运算符✈【教师】利用多媒体展示“常用的关系运算符”表格,并进行讲解关系运算符又称比较运算符,用于比较两个操作数之间的关系。关系表达式的返回值为TRUE、FALSE或NULL。常用的比较运算符包括“=”“!=”“<”“<=”“>”和“>=”等,它们的详细介绍如表所示。常用的关系运算符关系运算符支持的数据类型关系表达式描述=基本数据类型A=B若A等于B,则返回TRUE,否则返回FALSE;若A或B为NULL,则返回NULL!=基本数据类型A!=B若A不等于B,则返回TRUE,否则返回FALSE;若A或B为NULL,则返回NULL<基本数据类型A<B若A小于B,则返回TRUE,否则返回FALSE;若A或B为NULL,则返回NULL<=基本数据类型A<=B若A小于或等于B,则返回TRUE,否则返回FALSE;若A或B为NULL,则返回NULL>基本数据类型A>B若A大于B,则返回TRUE,否则返回FALSE;若A或B为NULL,则返回NULL>=基本数据类型A>=B则返回NULLBETWEENAND基本数据类型CBETWEENAANDBISNULL任意数据类型AISNULL若A为NULL,则返回TRUE,否则返回FALSELIKESTRING类型ALIKEB如果字符串A与SQL简单正则表达式B匹配,则返回TRUE,否则返回FALSE;若A或B为NULL,则返回NULLRLIKESTRING类型ARLIKEB如果A的任意子字符串与Java正则表达式B匹配,则返回TRUE,否则返回FALSE;若A或B为NULL,则返回NULL2.2.3逻辑运算符✈【教师】利用多媒体展示“常用的逻辑运算符”表格,并进行讲解逻辑运算符用于确定表达式的真和假。逻辑表达式的返回值为

TRUE、FALSE

或NULL。常用的逻辑运算符包括“AND”“OR”和“NOT”等,它们的详细介绍如表所示。常用的逻辑运算符逻辑运算符支持的数据类型逻辑表达式描述ANDBOOLEAN类型ANDB逻辑与,若A和B都为TRUE,则返回TRUE,否则返回FALSE;若

A

B

NULL,则返回NULLORBOOLEAN类型AORB逻辑或,若

A

B

或两者都为TRUE,则返回TRUE;若

A

和B都为FALSE,则返回FALSE;若A和B都为NULL,则返回NULL;若A和B有一个为NULL,一个为FALSE,则返回NULLNOTBOOLEAN类型NOTA逻辑非,若

A

为TRUE,则返回FALSE;若

A为FALSE,则返回TRUE;若

A

NULL,则返回NULL2.2.4复杂运算符✈【教师】利用多媒体展示“复杂运算符”表格,并进行讲解复杂运算符用于访问或操作复杂类型数据中的元素。复杂运算符的详细介绍如表所示。复杂运算符复杂运算符支持的数据类型描述A[n]ARRAY返回数组A的第n+1个元素。其中,n从0开始M[key]MAP返回映射M中指定键(key)的值S.xSTRUCT返回结构体S中x字段的值2.2.5运算符的优先级✈【教师】利用多媒体展示“运算符的优先级”表格,并进行讲解当使用多个运算符进行混合运算时,运算符的优先级决定了表达式的计算顺序。运算符的优先级由高到低排序的结果如表所示。运算符的优先级优先级运算符1A[n]、M[key]、S.x2+(正号)、−(负号)3*(乘法)、/(除法)、%(取余)3+(加法)、−(减法)4====5NOT6AND7OR✈【教师】随机邀请学生回答以下问题:如果运算符的优先级相同,会按照什么顺序计算?✈【学生】聆听、思考、回答✈【教师】总结学生的回答如果运算符的优先级相同,Hive会按照表达式的顺序从左到右依次计算。为了明确运算次序,可以使用“()”改变运算符的优先级。2.3Hive表的存储格式✈【教师】利用多媒体展示“行式存储和列式存储的存储方式”图片(详见教材),并进行讲解在

Hive

中,创建表时需要指定表的存储格式。在学习

Hive

表的存储格式之前,我们先学习一下行式存储和列式存储。行式存储和列式存储的存储方式如图所示。行式存储和列式存储的对比如下。(1)存储结构。行式存储将每行的数据连续存储在磁盘上;列式存储将每列的数据连续存储在磁盘上。(2)访问方式。行式存储以行为单位进行读取和写入操作,即一次读取或写入一整行数据;列式存储以列为单位进行读取和写入操作,即一次读取或写入一整列数据。……(详见教材)✈【教师】利用多媒体展示“常用的表存储格式”表格,并进行讲解在

Hive

中,常用的表存储格式包括

TextFile、SequenceFile、ORC(optimizedrowcolumnar)和Parquet等,它们的详细介绍如表所示。常用的表存储格式表存储格式描述存储方式压缩格式/类型适用场景TextFile以文本形式存储数据,每行数据都以换行符分隔。创建

Hive表时,默认使用该存储格式存储表中数据行式存储不支持压缩适用于存储和处理简单的非结构化文本数据SequenceFile二进制文件格式,将键值对序列化后按顺序存储行式存储None(无压缩,

默认值)Block(块压缩,常用

类型)ORC存储大规模数据的文件格式列式存储Zlib(默认值)SnappyLZOBZip2适用于存储和分析大规模数据。查询过程中需要访问少量字段时,性能较好Parquet针对分析型系统的高性能文件格式列式存储Uncompressed(无压缩,默认值)SnappyGzipLZO适用于存储和分析大规模数据。执行并行查询、字段裁剪等操作时性能较好【学生】聆听、思考、理解、记录课堂实践【教师】讲解设计影视分析数据仓库的具体方法✈【教师】利用多媒体展示“‘ratings.txt’数据文件的部分内容”图片(详见教材),并进行讲解电影评分数据文件“ratings.txt”中包含用户

ID(user_id)、电影ID(movie_id)、性别(sex)、年龄(age)、职业(occupation)、邮政编码(zipcode)、电影名称(movie_name)、电影类型(movie_type)、评分(rate)和评分时间戳(times)等信息,如图所示。1.需求分析为了从不同的角度了解各类电影的市场反馈情况和用户的不同需求,某影视公司需要构建一个影视分析数据仓库。使用该数据仓库,该影视公司可以查询并分析电影评分数据,具体如下。(1)查询评分次数排名前10的电影,了解最受用户欢迎的10部电影。(2)查询评分次数最多的电影类型,了解最受用户欢迎的电影类型。……(详见教材)2.数据仓库分层设计✈【教师】利用多媒体展示“数据仓库分层的详细设计”图片(详见教材),并进行讲解结合需求分析结果和数据仓库分层架构将数据仓库分为源数据层、数据仓库层和应用层,详细设计如图所示。✈【教师】利用多媒体展示“电影评分表movies_ods_table的结构”表格,并进行讲解电影评分表movies_ods_table的结构字段名称字段类型描述字段名称字段类型描述user_idBIGINT用户IDzipcode用户所在地区的邮政编码movie_idBIGINT电影IDmovie_name电影名称sex用户性别movie_type电影类型ageINT用户年龄rate电影评分occupation用户职业times用户评价电影时的时间戳数据仓库层分为明细层、中间层和业务层。movies_dwd_table的结构包括源数据层电影评分表movies_ods_table中的所有字段和STRING类型的电影上映时间字段release_year。中✈【教师】利用多媒体展示“用户表users_dwm_table的结构”表格,并进行讲解中间层的用户表users_dwm_table采用ORC存储格式存储用户信息数据,该表的结构如表所示。用户表users_dwm_table的结构字段名称字段类型描述字段名称字段类型描述user_idBIGINT用户IDzipcode用户所在地区的邮政编码ageINT用户年龄sex用户性别occupation用户职业——✈【教师】利用多媒体展示“电影数据表movies_dwm_table的结构”表格,并进行讲解中间层的电影数据表

movies_dwm_table

采用

ORC

存储格式存储电影信息数据,该表的结构如表所示。电影数据表movies_dwm_table的结构字段名称字段类型描述字段名称字段类型描述movie_idBIGINT电影IDmovie_type电影类型movie_nameSTRING电影名称release_year电影

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论