第7章课后习题答案
一、单选题
1. Hive 建表时,数值列的字段类型选取 decimal(x,y) 与 FLOAT、DOUBLE 的区别,下列说法正确的是(  ) 。
A.decimal(x,y) 是整数,FLOAT、DOUBLE 是小数
B.FLOAT、DOUBLE 在进行 sum 等聚合运算时,会出现 Java 精度问题
C.decimal(x,y) 是数值截取函数,FLOAT、DOUBLE 是数据类型
D.decimal(x, y) 与 FLOAT、DOUBLE 是一样的
参考答案:B
2. Hive 查询语言和 SQL 的一个不同之处在于(    ) 操作。   
A. Group by    B. Join    C. Partition    D. Union   
参考答案:C
3. 下列说法正确的是(  ) 。
A.数据源是数据仓库的基础,通常包含企业的各种内部信息和外部信息
B.数据存储及管理是整个数据仓库的核心
C.OLAP 服务器对需要分析的数据按照多维数据模型进行重组、分析,发现数据规律和趋势
D.前端工具主要功能是将数据可视化展示在前端页面中
参考答案:D
4. Hive 定义一个自定义函数类时,需要继承的类是(    ) 。
A. FunctionRegistry    B. UDF    C. MapReduce    D. Apache
参考答案:B
5. Hive 加载数据文件到数据表中的关键语法是(    ) 。   
A. LOAD DATA [LOCAL] INPATH filepath [OVERWRITE] INTO TABLE tablename
B. INSERT DATA [LOCAL] INPATH filepath [OVERWRITE] INTO TABLE tablename
C. LOAD DATA INFILE d: \ car. csv APPEND INTO TABLE t_car_temp FIELDS TERMI-
NATED BY “,”               
D. LOAD INTO TABLE tablename DATA [LOCAL] INPATH filepath
参考答案:A
6. 按粒度大小的顺序,Hive 数据被分为:数据库、数据表、(    ) 、桶。
A. 元祖    B. 栏    C. 分区        D. 行
参考答案:C
二、判断题
1. Hive 使用 MySQL 作为存储元数据的数据库时,在安装时需要将 MySQL 连接驱动 jar 包拷贝到 lib 目录中。 (    )
参考答案:对
2. sort by 关键字的作用是保证全局有序。  (  )
参考答案:错
3. Hive 的复杂数据类型中,Map 是有序键值对类型,key 值必须为原始类型,value 可以为
任意类型。 (    )
参考答案:错
4. Hive 的 String 类型相当于 MySQL 数据库的 varchar 类型,该类型是一个可变长度的字符串,理论上可以存储 2 GB 的字符数。 (    )
参考答案:对
5. 分区表是 Hive 数据模型的最小单元,在 Hive 存储上的体现就是在表的主目录下的一个子文件夹。 (  )
参考答案:错
6. 使用内嵌的 Derby 数据库存储元数据,这种方式是 Hive 的默认安装方式,配置简单,但是一次只能连接一个客户端,适合用来测试,不适合生产环境。 (  )
参考答案:对
7. 雪花模型需要关联多层维度表,这与结构简单的星型模型相比性能较低,通常不使用。(    )
参考答案:对
8. Hive 默认不支持动态分区功能,需要手动设置动态分区参数开启功能。 (    )
参考答案:对
9. Hive 分区字段不能与已存在字段重复,且分区字段是一个虚拟的字段,它不存放任何数据,该数据来源于装载分区表时所指定的数据文件。 (  )
参考答案:对
10. 数据仓库可以作为实时查询系统的数据库使用,为决策分析提供数据。 (  )
参考答案:错
11. 创建外部表的同时要加载数据文件, 数据文件会移动到数据仓库指定的目录下。(    )
参考答案:错
12. Hive 是一款独立的数据仓库工具,在启动前无须启动任何服务。 (  )
参考答案:错
三、填空题
1.Hive中所有的数据都存储在HDFS中,它包含________、表、___________、桶表等四种数据类型。
参考答案:数据仓库、分区
2.数据仓库是面向____________、集成、_____________和时变的数据集合,用于支持管理决策。
参考答案:主题、非易实
3.Hive查询语句“select ceil(2.34)”输出内容是__________
参考答案:3
4.Hive是建立在_________上的数据仓库,它能够对数据进行数据提取、____________和加载。
参考答案:HDFS、转换
5.Hive创建桶表关键字为____________
参考答案:clustered by
6.数据处理大致可以分为两类:一类是联机事务处理OLTP,另一类是____________
参考答案:联机分析处理OLAP
7.Hive建表时设置分割字符命令______________
参考答案:row format delimited fields terminated by char
8.数据仓库的结构包含了4部分,即数据源、_______服务器、数据管理服务器和前端工具。
参考答案:数据存储
9.Hive默认元数据存储在__________数据库中。
参考答案:Derby
四、简答题
1. Hive 元数据存储系统中通常存储什么?
数据可视化是什么
参考答案:Hive中的元数据通常包括:表名、列、分区及其相关属性(内部表和外部表),表数据所在目录的位置信息。
2. 简述 Hive 中内部表与外部表的区别。
参考答案:创建表阶段:外部表创建表的时候,不会移动数到数据仓库目录中(/user/hive/warehouse),只会记录表数据存放的路径,内部表会把数据复制或剪切到表的目录下。
删除表阶段:外部表在删除表的时候只会删除表的元数据信息不会删除表数据,内部表删除时会将元数据信息和表数据同时删除。
3. 简述 Hive 的排序种类及特点。   
参考答案:(1)order by 全局排序
2)sort by  非全局排序
3)distribute by hash散列分区,常和sort by同时使用。即分区又排序,需要设置duces的个数
4)cluster by 当distribute by 和sort by的字段相同时,等同于cluster by.可以看做特殊的di
stribute + sort
4. 简述 OLTP 与 OLAP 的作用。
参考答案:(1) OLTP是传统关系型数据库的主要应用,主要针对的是基本的日常事务处理,例如,银行转账。
(2) OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果,例如,商品的推荐系统。
5. Hive 的核心是驱动引擎,简述它由哪些部分组成。
参考答案:Hive核心驱动引擎是由编译器(Compiler),优化器(Optimizer),执行器(Executor)组成,它们用于完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成,生成的查询计划存储在HDFS中,并在随后由MapReduce调用执行。
6. Hive 相对于 Oracle 来说有哪些优点?
参考答案:(1)存储,Hive存储在 Hdfs上,Oracle存储在本地文件系统。
2)扩展性,Hive可以扩展到数千节点,Oracle理论上只可扩展到 100 台左右。
3)单表存储,数据量大Hive可以分区分桶,Oracle数据量大只能分表。
7. 简述 Hive 与 Hadoop 之间的工作过程。
参考答案:(1)用户通过用户接口UI将执行的查询操作发送给驱动器执行。
2)驱动器借助查询编译器解析查询,检查语法和查询计划或查询需求。
3)编译器将元数据请求发送到Metastore(任何数据库)。
4)编译器将元数据作为对编译器的响应发送出去。
5)编译器检查需求并将计划重新发送给驱动器。至此,查询的解析和编译已经完成。
6)驱动器将执行计划发送给执行引擎执行Job任务。
7)执行引擎从DataNode上获取结果集,并将结果发送给用户接口UI和驱动器。
8. 创建字段为 id、name 的用户表,并且以性别 gender 为分区字段的分区表。
参考答案:create table t_user (id int, name string)
partitioned by (gender string)
row format delimited fields terminated by ',';
9. 现有表名为“emp” 的员工表,其中工资字段为 sal,请写出查询员工表总工资额的 SQL语句。
参考答案:select sum(sal) sum_sal from emp;
10. Hive 有哪些方式保存元数据? 各有哪些优缺点?
参考答案:(1)存储于Derby 数据库中,此方法只能开启一个Hive客户端,不推荐使用。
2)存储于MySQL 数据库中,可以多客户端连接,推荐使用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。