数仓--Hive-面试之Hive的数据模型及各模块的应用场景
2019-05-09 本文已影响151人
李小李的路
这个讲起来搞不好让手写代码,扩展延申的问
Hive的数据模型
Hive数据模型.png数据模型组成及应用场景
- Hive的数据模型主要有:database、table、partition、bucket四部分;
数据模型之database
- database:相当于关系型数据库中的命名空间,作用是将数据库应用隔离到不同的数据库模式中,hive提供了create database dbname、use dbname 以及drop database dbname的语句;
数据模型之table
- table:表是由存储的数据以及描述表的一些元数据组成。数据存储再分布式文件系统中,元数据存储在关系型数据库中;
- hive表分四种:
- MANGED_TABLE :内部表
- EXTERNAL_TABLE:外部表
- INDEX_TABLE:索引表
- VIRTUAL_VIEW :视图表
- 查看表的具体信息使用:desc tablename或者 desc formatted tablename
Hive内部表和外部表的区别
数据模型之partition
- hive的分区是根据某列的值进行粗略的划分,每个分区对应HDFS上的一个目录;
数据模型之bucket
- 要使用hive的分桶功能,首先需要打开hive对痛的控制 set hive.enforce.bucketing=true;
- bucket是按照指定值进行hash,每个桶就是表目录里的一个文件