Hive面试题

Hive面试题

数据仓库

数据仓库的主要特征

  • 面向主题
  • 集成性
  • 非易失性
  • 时变性

数据库和数据仓库的区别

数据库系统作为数据管理的主要手段,主要用于操作型处理

  • 操作型处理,也叫联机事务处理OLTP(On-Line Transaction Processing,),也可以称面向交易的处理系统。
  • 主要针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改
  • 特点是低延迟

数据仓库主要用于分析型处理

  • 分析型处理,也叫联机分析处理OLAP(On-Line Analytical Processing)一般针对某些主题的历史数据进行分析,支持管理决策
  • 主要是查询操作
  • 特点是高延迟

数据仓库的分层架构

Hive面试题_第1张图片
分为三层:
① ODS源数据层(采集源数据)
② DW数据仓库层(数据清洗与数据分析)
③ DA数据应用层(把分析结果对接外部应用)

可能涉及问题

问题1:为什么要进行数仓分层?

① 清晰的数据结构
② 实现血缘追踪
③ 减少重复开发
④ 把复杂问题简单化:大问题拆解若干个小问题 => 美团点评 153张数据表 => 12张数据表
⑤ 屏蔽原始数据异常


Hive

Hive核心

Hive(离线数仓)核心是把SQL语法转换为MapReduce


Hive和Hadoop关系

Hive利用Hadoop的HDFS存储实际数据和利用MapReduce分析数据


Hive有几种表类型,各有什么特点?

  • 内部表:删除内部表时会将Metastore中的元数据和HDFS中的数据一起删除
    • Hive创建表时默认选择内部表
    • 当需要通过Hive完全管理控制表的整个生命周期时,使用内部表
  • 外部表:删除外部表,只会删除元数据,不会删除HDFS中的数据
    • 适合多人同时操作数据库时建立的表
  • 分区表:通过分区把不同类型的数据放在不同的目录中
    • 意义在于优化查询,减少全表扫描
  • 分桶表:根据哈希值取余计算,将余数相同的数据保存在同一个文件夹下。
    • 意义在于优化查询,减少全表扫描
    • 比分区表划分的更加精细,但是数据平均,适合数据抽样
    • JOIN时可以提高MR程序效率,减少笛卡尔积数量

Hive的优化手段

  • 分区、分桶
  • 开启Map聚合

你可能感兴趣的:(面试,hive,hadoop,数据仓库,经验分享)