数据仓库技术及应用 习题及答案 刘学_第1页
数据仓库技术及应用 习题及答案 刘学_第2页
数据仓库技术及应用 习题及答案 刘学_第3页
数据仓库技术及应用 习题及答案 刘学_第4页
数据仓库技术及应用 习题及答案 刘学_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

岗前培训课后练习一、选择题1.Hive的分布式数据存储依赖于以下哪个框架(B)A.MapReduceB.HDFSC.HBaseD.MySQL2.Hive分布式计算及HiveQL的运行依赖于以下哪个框架(A)A.MapReduceB.HDFSC.HBaseD.MySQL3.Hive自带的元数据库是(),一般实际应用中将Hive元数据库换成(C)。A.HBaseB.HDFSC.DerbyD.MySQL4.关于Hive与传统关系型数据库的比较,下列说法错误的是(C)A.Hive的查询语言为HQL,传统关系型数据库的查询语言为SQLB.Hive的数据存储在HDFS上,关系统数据库的数据一般存储在本地文件系统C.Hive任务执行延迟低,关系型数据库查询任务执行延迟高D.Hive表无索引,传统关系型数据库带索引二、简答题请简述Hive和Hadoop的关系。Hive是构建在Hadoop之上的数据仓库工具,用于处理和分析大规模数据集。Hive使用Hadoop的分布式文件系统(HDFS)来存储数据,并使用Hadoop的MapReduce来执行数据处理和分析任务。请简述Hive和HBase的区别和联系。区别:Hive是数据仓库工具,用于批处理和分析大规模数据集;HBase是分布式、可伸缩的列存储数据库,用于实时读写大量数据。联系:两者都构建在Hadoop之上,可以共同使用。Hive可以处理HBase中的数据,HBase可以作为Hive的存储后端。描述Hive的工作原理和体系架构。Hive将SQL查询转换为MapReduce作业在Hadoop上执行。其体系架构包括用户接口(CLI、WebUI等)、元数据存储(存储表结构等元数据)、HiveServer2(提供客户端连接和SQL执行)、Driver(解析查询并生成执行计划)、编译器(将查询计划转换为MapReduce作业)、执行引擎(运行MapReduce作业)等组件。分析HiveQL与传统数据库的区别。HiveQL是基于SQL的查询语言,但针对大规模数据处理进行了优化。HiveQL支持的SQL功能比传统关系型数据库少,例如不支持索引、更新和删除操作。HiveQL查询通常延迟较高,适合批处理和分析任务。简述Hive的特点。基于Hadoop,利用Hadoop的分布式处理能力。支持SQL风格的查询语言HiveQL。适合大规模数据处理和分析任务。提供简单的数据摘要、查询和分析。项目1数据仓库环境部署课后练习一、选择题1.以下哪个不是Hive的部署模式(D)A.本地部署模式B.远程部署模式C.内嵌模式D.完全分布式模式2.Hive的内嵌模式部署方式使用的元数据库是(C)A.MySQLB.HBaseC.DerbyD.Hadoop3.安装部署Hive时,需要将配置和修改的信息配置到哪个文件中(B)A.default.xmlB.hive-site.xmlC.hive-default.xmlD.core-site.xml二、填空题1.Hive中主要包含两类数据,分别是____内部表___和___外部表___。2.Hive常用的两种部署模式是_______本地模式_______和_____远程模式_____。3.启动HiveServer可以执行命令__hive--servicehiveserver2___,启动Hive客户端可以执行命令__hive___。三、简答题请问安装和部署Hive的前提条件有哪些?安装并配置好Hadoop集群。安装Java环境,并确保版本与Hive兼容。准备好Hive的安装包和相关配置文件。Hive有哪几种安装和部署方式?本地模式:Hive运行在单个JVM上,使用本地文件系统存储元数据。远程模式/完全分布式模式:Hive运行在Hadoop集群上,使用HDFS存储数据和元数据库(如MySQL)。什么是Hive的MetaStore,有什么作用?MetaStore存储了Hive的元数据,包括表结构、列信息、分区信息等。它使得Hive能够识别和管理存储在HDFS中的数据。请描述Hive本地模式部署方式的原理和架构。本地模式主要用于开发和测试。Hive服务、元数据存储和数据处理都在同一台机器上完成,使用本地文件系统存储数据和元数据。请描述Hive远程模式部署方式的原理和架构。远程模式利用Hadoop集群的分布式处理能力。HiveServer2提供客户端连接,元数据存储在如MySQL这样的关系型数据库中,数据处理则通过MapReduce在Hadoop集群上完成。四、部署规划已知有3个节点的Hadoop集群,如何基于这个集群进行Hive远程模式的部署,请给出部署规划,并写出部署步骤。在一个节点上安装和配置Hive,作为主节点(HiveServer2)。在所有节点上安装Hive客户端,以便可以提交查询任务。配置Hive元数据存储,使用MySQL或其他关系型数据库作为元数据存储后端。配置Hive使用Hadoop集群的HDFS作为数据存储后端。启动HiveServer2和必要的Hive服务。通过Hive客户端连接到HiveServer2,开始使用Hive进行数据分析和查询。项目2基于DDL的学员信息系统操作一、简答题1.创建内外部表、分区表、桶表的命令分别是什么?内部表:CREATETABLEtable_name(col1data_type,col2data_type,...)STOREDASfile_format;外部表:CREATEEXTERNALTABLEtable_name(col1data_type,col2data_type,...)STOREDASfile_formatLOCATION'hdfs_path';分区表:CREATETABLEtable_name(col1data_type,col2data_type,...)PARTITIONEDBY(col3data_type)STOREDASfile_format;桶表:CREATETABLEtable_name(col1data_type,col2data_type,...)CLUSTEREDBY(col3)INTOnum_bucketsBUCKETSSTOREDASfile_format;2.Hive中的数据类型都有哪些?基本数据类型:BOOLEAN,TINYINT,SMALLINT,INT,BIGINT,FLOAT,DOUBLE,STRING,CHAR,VARCHAR,DATE,TIMESTAMP,BINARY。复合数据类型:ARRAY,MAP,STRUCT,UNION。3.分析HiveQL和MySQL的区别是什么?HiveQL是Hive的查询语言,用于操作Hive中的数据,基于类SQL语法,但与MySQL语法有一些区别。HiveQL支持类SQL语法,但不支持事务、索引、主键等关系型数据库特性。HiveQL适用于大规模数据处理和分析,通常用于处理结构化数据,而MySQL更适用于在线事务处理(OLTP)和小规模数据分析。4.创建、删除、修改数据库的命令分别是什么?创建数据库:CREATEDATABASEdatabase_name;删除数据库:DROPDATABASEdatabase_name;修改数据库:ALTERDATABASEdatabase_nameSETdbproperties('key'='value');二、编程题1.Hive数据定义编程练习(1)尝试创建表1,其名字为student,共有五列number,name,sex,age,score;CREATETABLEstudent(numberINT,nameSTRING,sexSTRING,ageINT,scoreDOUBLE);(2)查看表1的结构;DESCRIBEstudent;(3)查看表1的详细属性;DESCRIBEFORMATTEDstudent;(4)重命名表1为students;ALTERTABLEstudentRENAMETOstudents;(5)在表1中新加一列course后再将其删除;ALTERTABLEstudentsADDCOLUMNcourseSTRING;ALTERTABLEstudentsDROPCOLUMNcourse;(6)删除表1。DROPTABLEstudents;2.编程题NameCourseScorehuangoMath81huangoEnglish87huangoComputer57xuzhengMath89xuzhengEnglish92xuzhengComputer83wangbaoqiangMath78wangbaoqiangEnglish88wangbaoqiangMomputer90dengchaoMath88dengchaoComputer58现有一张数据库表Student表:请求出:用一条HQL语句查询出Student表中每门课都大于80分的学生姓名;SELECTNameFROMStudentGROUPBYNameHAVINGMIN(Score)>80;用一条HQL语句查询出Student表中有不及格成绩的学生姓名;SELECTDISTINCTNameFROMStudentWHEREScore<60;项目3基于DML的学员信息系统操作课后练习一、简答题1.Hive中追加导入数据的方式有几种,请写出简要语法?Hive中追加导入数据的方式有三种:a.使用INSERTOVERWRITE命令直接覆盖原表;b.使用INSERTINTO命令插入新行;c.使用LOADDATAINFILE命令从文件加载数据。其中,INSERTOVERWRITE命令是最常用的方法,因为它可以直接在表中添加新数据,同时覆盖原有的数据。简要语法为:INSERTOVERWRITEtable_namePARTITION(partition_key)VALUES(value1,value2,…);2.Hive导出数据有几种方式?如何导出?使用INSERTOVERWRITEDIRECTORY语句将查询结果导出到HDFS指定目录。使用INSERTOVERWRITELOCALDIRECTORY语句将查询结果导出到本地文件系统指定目录。二、操作题:已知有某网站访问次数的数据文件access.txt,文件内容格式为:用户名,月份,访问次数三项数据以逗号分隔,如下所示:请基于此文件,完成以下问题:编写HQL创建外部表t_access,表的结构和文件内容结构对应。CREATEEXTERNALTABLEt_access(usernameSTRING,monthSTRING,access_countINT)ROWFORMATDELIMITEDFIELDSTERMINATEDBY','LOCATION'/path/to/access.txt';将access.txt文件的内容导入到t_access表中;LOADDATAINPATH'/path/to/access.txt'OVERWRITEINTOTABLEt_access;查看表中所有数据;SELECT*FROMt_access;创建表tmp_access,字段有(namestring,monstring,numint)存放每个用户每月的访问此网站的次数;CREATETABLEtmp_access(nameSTRING,monSTRING,numINT);将每个用户每月的访问次数统计结果插入到tmp_access表中。INSERTINTOTABLEtmp_accessSELECTusername,month,SUM(access_count)ASnumFROMt_accessGROUPBYusername,month;项目4企业信息管理数据查询与操作课后习题一、填空题在HiveSQL语句中,__ORDERBY____是全局排序,______SORTBY____而是分区内部排序。关键字EXISTS的作用是____判断子查询是否返回结果集,如果返回结果集则返回TRUE,否则返回FALSE_______。关键字ALL的作用是_______与子查询的结果集中的所有值进行比较。________。_____MAX()____函数返回组内某列的最大值。在HiveSQL查询语句中,_________ASC_____可对指定列进行升序排序,____DESC______是降序排列。二、程序题创建学生管理系统,其中包括:学生表Student(S_id,S_name,S_birth,S_sex)——学生编号,学生姓名,出生年月,学生性别;课程表Course(C_id,C_name)——课程编号,课程名称;成绩表Score(S_id,C_id,S_score)——学生编号,课程编号,分数。运用本章所学知识,查询如下信息:查询姓“张”同学的信息;SELECT*FROMStudentWHERES_nameLIKE'张%';查询语文成绩大于90分的同学信息;SELECT*FROMScoreJOINStudentONScore.S_id=Student.S_idWHEREC_id='语文'ANDS_score>90;查询所有学生的英语、数学成绩;SELECTStudent.S_id,S_name,S_scoreFROMScoreJOINStudentONScore.S_id=Student.S_idWHEREC_idIN('英语','数学');查询每位同学的姓名、学号,并统计每位同学的总分;SELECTStudent.S_id,S_name,SUM(S_score)AStotal_scoreFROMScoreJOINStudentONScore.S_id=Student.S_idGROUPBYStudent.S_id,S_name;查询总分前5名的同学信息。SELECTStudent.S_id,S_name,SUM(S_score)AStotal_scoreFROMScoreJOINStudentONScore.S_id=Student.S_idGROUPBYStudent.S_id,S_nameORDERBYtotal_scoreDESCLIMIT5;项目5网上商城购物数据统计和优化课后练习一、选择题1.下面关于视图的作用描述不正确的是(D)A.可以简化数据查询语句B.可以使用用户能从多角度看待同一数据C.通过引入视图可以提高数据的安全性D.视图提供了一定程度的逻辑联合性2.下面关于索引的作用描述不正确的是(D)A.提升一些操作的效率。Hive的索引可以建立在某些行上,从而减少任务中的数据块的数量读取。B.索引可以提高Hive表指定列的查询速度。C.索引可以避免全表扫描和资源浪费,还可以加快含有groupby语句的查询的计算速度。D.某些情况下索引的使用优于分区。在可预见到分区数据特别庞大的情况下,这里的索引索引使用会更好。3.下面关于视图和索引说明正确的是(A)A.视图是由从数据库的基本表中选取出来的数据组成的逻辑窗口B.视图有定义,也有相应的物理结构C.索引是对数据库表中一列或多列的值进行排序的一种结构D.索引是对特定的数据进行标记(一列或者多列)二、判断题1.Hive表的索引创建在HBase表中,能大大提升查询性能。(✔)2.在Hive中,视图只有在metastore中有和HDFS的映射关系,而在HDFS中找不到对应的文件夹。(✔)3.通过索引对特定的数据查询,可以在最小的开销下加速对数据的搜索。(✔)三、填空题1.执行索引查询,会生成一个___查询计划____2.根据对索引列的过滤条件,从索引表中过滤出索引列的值对应的_____数据块________及偏移量,并输出到HDFS文件中3.视图是对一个_________查询结果集______进行的第二次查询处理。四、简答题1.简述下Hive的索引和视图的区别?索引是对表中一列或多列的值进行排序的一种结构,可以提高查询效率;视图是由一个查询结果集生成的虚拟表,可以简化数据查询语句。2.简述下Hive的索引创建过程?Hive的索引创建过程包括两个阶段:首先是生成索引表,然后在索引表上进行查询优化。3.阐述Hive的视图主要应用场景有哪些?Hive的视图主要应用于简化数据查询语句、隐藏底层表结构、提供数据安全性等场景。4.说明Hive的视图和索引的创建对数据的影响有哪些?视图的创建不会影响底层表的数据存储,而索引的创建会在底层表的基础上生成索引表,可能会增加存储空间开销。视图的创建可以简化数据查询语句,而索引的创建可以提高查询效率。项目6基于函数实现微博和门户数据统计课后练习一、选择题1.下面不属于Hive的数学函数的是(D)A.roundB.ceilC.randD.size2.下面关于函数的描述不正确的是(C)A.to_date()日期的转换B.cast()数据类型转换C.sort_array()按自然顺序对数组进行排序并返回D.map_keys()返回集合中的所有key3.下面说法正确的是(A)A.Hive不但支持内置函数,还可以自定义函数B.常用的自定义函数有:UDFE、UDTF和UDAFC.自定义函数的产生是为丰富Hive的使用D.hive支持多种语言编写自定义函数二、判断题1.Hive提供了许多的内置函数,但是有时候提供的内置函数无法满足业务的需要时,就需要用户根据需求进行自定义函数。(√)2.Hive的自定义函数可以使用Python语言来编写(√)3.创建自定义UDF,需要实现evaluate方法(×)三、填空题1.常用的聚合函数________COUNT、SUM、AVG、MAX、MIN_________________________。2.UDF操作作用于_____

单个______数据行,并且产生一个数据行作为输出。大多数函数都属于这一类。3.________UDTF_______用来解决将一行输入拆分成多行输出。四、简答题简单说明下hive的函数分类?Hive的函数主要分为内置函数和自定义函数两类。内置函数是Hive提供的预定义函数,包括数学函数、字符串函数、日期函数、聚合函数等;自定义函数则是用户根据需求自行编写的函数,主要分为UDF、UDTF和UDAF三种类型。简述Hive的自定义函数的种类和作用?Hive的自定义函数主要分为UDF(User-DefinedFunctions)、UDTF(User-DefinedTable-GeneratingFunctions)和UDAF(User-DefinedAggregationFunctions)三种类型。它们的作用分别是对单个数据行进行操作并产生单个数据行输出(UDF)、将一行输入拆分成多行输出(UDTF)、以及对一组数据进行聚合计算(UDAF)。简述Hive的UDAF函数的创建流程?创建UDAF函数的流程包括编写Java代码实现自定义的聚合逻辑,继承Hive提供的相关类并重写对应的方法,打包并将Jar包添加到Hive的classpath中,最后在Hive中注册UDAF函数。简述Hive的自定义函数的使用流程?使用Hive的自定义函数,首先需要将函数对应的Jar包添加到Hive的classpath中,然后在Hive中注册该函数。注册完成后,就可以在Hive的查询语句中直接调用自定义函数,传入参数并获取结果。项目7基于Hive的JavaAPI操作影视数据课后练习一、选择题1.下面哪种方式不可以访问到Hive的客户端的是(D)A.JavaAPIB.HiveCLIC.BeelineD.HDFS2.下面关于JavaAPI的描述不正确的是(D)A.由Java语言编写的用于访问和使用的程序B.Hive支持JavaAPI的使用C.使用JavaAPI来编写Hive程序时,需要提前导入对应的JAR包D.JavaAPI不支持Hive的访问3.下面不是JavaAPI中的Hive的数据类型的是(A)A.intB.StringC.DoubleD.Map二、判断题1.Beeline,是Hive新的客户端工具,用于替代HiveCLI(√)2.Hive的运行依赖于Hadoop,需要先启动Hadoop;而Beeline的运行需要先启动HiveServer2。(√)3.JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成(√)三、填空题1.Hive的JDBC连接可以使用命令行(前面的Beeline连接)和___JDBC_______两种方式。2.HiveServer2也有一个JDBC驱动程序。它支持对HiveServer2的嵌入式和__远程连接________。3.在嵌入式模式中,它运行一个嵌入式的Hive(类似于HiveCLI),在远程模式中,通过Thrift连接到一个单独的_____HiveServer2________进程。四、简答题简述Beeline客户端与HiveCLI客户端的区别?Beeline客户端与HiveCLI客户端的主要区别在于用户交互方式和功能扩展性。Beeline提供了更现代化的命令行界面,支持更多的交互功能和配置选项,而HiveCLI则是传统的命令行界面。简述HiveAPI连接Hive客户端的步骤?使用HiveAPI连接Hive客户端的步骤包括导入对应的JavaAPI包、创建连接对象、创建会话、执行HiveQL语句、获取结果等。简述Hive的JDBC连接的工作原理和应用?Hive的JDBC连接通过JDBC驱动程序与HiveServer2建立连接,然后通过执行HiveQL语句来进行数据操作。应用上,可以通过JDBC连接进行数据查询、数据导入导出等操作。简述HiveAPI的数据仓库的创建流程?HiveAPI的数据仓库创建流程包括导入对应的JavaAPI包、创建连接对象、创建会话、执行DDL语句来创建数据库、表等对象。

温馨提示

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

评论

0/150

提交评论