如何创建 Hive 表的几种类型?

本文介绍了Hive中的五种表类型:内部表、分区表、外部表、桶表和视图。内部表的元信息存储在MySQL,数据存储在HDFS;分区表通过目录对应不同分区,提高查询效率;外部表不移动数据文件,删除仅删除元信息;桶表按特定字段哈希存储,便于并行处理;视图提供简化查询的虚表功能。

基于 MySql 的远程模式安装的 Hive 中的表存储在 hdfs 的 /user/hive/warehouse 目录下。

hive 的表主要有 5 中类型:

  1. 内部表
  2. 分区表
  3. 外部表
  4. 桶表
  5. 视图

一、内部表

  • 对应一个目录,表中的数据对应一个文件

  • 文件存储在 hdfs 的 Datanode 的数据块中,数据块默认的大小是 128m(Hadoop2.x的版本,1.x版本是 64m)

  • 表的元信息(表名,列名,列的类型)存储在 mysql 数据库的表中(TBLS -> 表信息,COLUMNS_V2 -> 列信息)

  • 例:创建 emp 表,字段如下,数据文件列分隔符为 ","

    create table emp
    (empno int, ename string, job string, mgr int,
    hiredate string, sal int, comm int, deptno int)
    row fromat delimited fields terminated by ',';
    
    • 导入数据:
    # 导入HDFS的数据,/ 是HDFS的根
    load data inpath '/data/emp.csv' into table emp;
    # 导入本地Linux数据,/ 是Linux的根
    load data local inpath '/root/data/emp.csv' into table emp;
    
  • emp.csv 文件内容:

    7369,SMITH,CLERK,7902,1980/12/17,800,,20
    7499,ALLEN,SALESMAN,7698,1981/2/20,1600,300,30
    7521,WARD,SALESMAN,7698,1981
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值