hive的数据模型之内部表和外部表

hive的数据模型

hiv的数据模型有6种:

  1. 内部表
  2. 外部表
  3. 分区表
    1. 静态分区
    2. 动态分区
  4. 桶表
  5. 视图
  6. 物化视图

 内部表

           从hive上创建的表通过hive存储到hdfs上的表叫内部表

           默认:在/user/hive/warehouse/目录下(hdfs上的目录)
           删除内部表:元数据、数据都会被删除

           创建一个普通的表(默认的分隔符:是一个不可见字符)

          create table emp
          (empno int,
           ename string,
           job string,
           mgr int,
           hiredate string,
           sal int,
           comm int,
           deptno int);

         然后加载数据可以使用insert,也可以使用load,也可以使用sqoop

         如果使用insert语句插入到上面的表中我们使用默认的分隔符就可以了

         insert into emp values(7499,‘ALLEN’,‘SALESMAN’,7698,‘1981/2/20’,1600,300,30);

        但是我们如果使用load语句来加载数据到hive,表的分隔符就需要根据具体情况指定了

        使用load语句可以加载hdfs和本地数据到表中

         我们测试load加载hdfs中的数据到hive中这个操作相当于ctr +X,这个操作会把hdfs上的这个文件剪切掉

我们已经加载到了hive中,从上图中hdfs中可以查看到,但是我们在hive中使用select语句确查不到,这个就是因为分隔符的问题

我们从新创建一张表,顺便测试load本地(linux)文件到hive中,这个操作相当于ctr+c,并不会删除本地文件

		create table emp
		(empno int,
		ename string,
		job string,
		mgr int,
		hiredate string,
		sal int,
		comm int,
		deptno int)
		row format delimited fields terminated by ',';	

外部表

外部表就是直接使用hdfs的数据创建表,在实际工作中,结合 外部表+分区表 更常用;

每张表中有一条数据,数据之间用逗号隔开

然后我们创建外部表

 create external table ext_students(sid int,sname string,age int)row format delimited fields terminated by ',' location '/student';

查询一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枣泥馅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值