HIVE外部表 分区表
    外部表
        创建hive表,经过检查发现TBLS表中,hive表的类型为MANAGED_TABLE.

在真实开发中,很可能在hdfs中已经有了数据,希望通过hive直接使用这些数据作为表内容。
        此时可以直接创建出hdfs文件夹,其中放置数据,再在hive中创建表管来管理,这种方式创建出来的表叫做外部表。

#创建目录,上传已有文件
        hadoop fs -mkdir /data
        hadoop fs -put student.txt /datax/a.txt    
        hadoop fs -put student.txt /datax/b.txt    
        #在hive中创建外部表管理已有数据
        create external table ext_student(id int ,name string) row format delimited fields terminated by '\t' location '/datax';
        经过检查发现可以使用其中的数据。成功的建立了一张外部表。

#vim ppp.txt
            1    x
            2    y
            3    z
        #hadoop fs - put  peo.avi
        再在该目录下手动创建文件,能不能查询出来呢?
        发现是可以的。

不管是内部表还是外部表,新增的文件都可以自动被应用。

在删除表时,内部表一旦删除对应元数据和hdfs中的文件夹和文件都会被删除。外部表只删除元数据,对应的hdfs中的文件夹和文件不会被删除。
    分区表
        hive也支持分区表
        对数据进行分区可以提高查询时的效率
        普通表和分区表区别:有大量数据增加的需要建分区表
        create table book (id bigint, name string) partitioned by (category string) row format delimited fields terminated by '\t';
        在创建分区表时,partitioned字段可以不在字段列表中。生成的文件自动就会具有该字段。
        
        分区表加载数据
        load data local inpath './book_china.txt' overwrite into table book partition (category='china');
        load data local inpath './book_us.txt' overwrite into table book partition (pubdate='2015-01-11');
        
        select * from book;
        select * from book where pubdate='2010-08-22';
        经检查发现分区也是一个目录。
        此时手动创建目录是无法被hive使用的,因为元数据库中没有记录该分区。
        如果需要将自己创建的分区也能被识别,需要执行:
            ALTER TABLE book add  PARTITION (category = 'zazhi') location '/user/hive/warehouse/datax.db/book/category=zazhi';

HIVE外部表 分区表的更多相关文章

  1. Hive 外部表 分区表

      之前主要研究oracle与mysql,认为hive事实上就是一种数据仓库的框架,也没有太多另类,所以主要精力都在研究hadoop.hbase,sqoop,mahout,近期略微用心看了下hive. ...

  2. Hive 外部表的练习(多表关联查询,以及分组,子查询)

    Hive 外部表的练习 hive创建库和表操作 hive加载数据,4种发放 1.数据放在Linux创建表结构 进行加载 2.先定义表结构.将一个查询select语句结果插入到表中 3.数据先放在hdf ...

  3. hive外部表删除遇到的一个坑

    hive外部表删除遇到的一个坑 操作步骤 创建某个表(create external table xxx location xxx) 插入数据(insert xxx select xxx from x ...

  4. hive外部表的建立与数据匹配

    1.建立hive的外部表匹配hdfs上的数据 出现如下报错: hive (solar)> ; OK Failed with exception java.io.IOException:java. ...

  5. Hive 外部表新增字段或者修改字段类型等不生效

    标题比较笼统,实际情况是: 对于Hive 的分区外部表的已有分区,在对表新增或者修改字段后,相关分区不生效. 原因是:表元数据虽然修改成功,但是分区也会对应列的元数据,这个地方不会随表的元数据修改而修 ...

  6. hive 外部表和内部表的区别和相互转换

    Hive内部表和外部表区别 1.创建内部表时,内部表的数据文件是保存在指定的路径的:如若创建外部表,则只记录数据所在的路径,不会对数据位置做改变. 2.删除表的时候,内部表元数据和数据会跟着一起删除. ...

  7. hive -- 外部表、内部表、临时表

    1.外部表 关键字:EXTERNAL 外部表创建时需要指定LOCATION 删除外部表时,数据不被删除 CREATE EXTERNAL TABLE page_view(viewTime INT, us ...

  8. hive外部表

    创建外部表.数据从HDFS获取  只是建立了链接,hdfs中的数据丢失,表中数据也丢失;hdfs数据增加,表中数据也增加 上传文件 创建外部表 删除文件 执行查询语句,发现少了

  9. hive学习笔记之三:内部表和外部表

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

随机推荐

  1. 评估类模型之优劣解距离法Topsis模型

    定义: TOPSIS法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距. 层次分析法的局限性: 问题和解决方案: 所以最终评分公式为: 指标正向化,得到正向 ...

  2. Codeforces Round #350 (Div. 2) A B C D1 D2 水题【D2 【二分+枚举】好题】

    A. Holidays 题意:一个星球 五天工作,两天休息.给你一个1e6的数字n,问你最少和最多休息几天.思路:我居然写成模拟题QAQ. #include<bits/stdc++.h> ...

  3. qt 布局管理按钮控件间有空隙?

    定义了几个按钮控件,想要按钮间没有空隙,我使用setspaces(0)来设置它们之间的间隔. 结果控件间还是有空隙,如图 我对控件所在的widget的背景进行设置,(会把style传到子控件)发现结果 ...

  4. JS 的 new 到底是干什么的?

    大部分讲 new 的文章会从面向对象的思路讲起,但是我始终认为,在解释一个事物的时候,不应该引入另一个更复杂的事物. 今天我从「省代码」的角度来讲 new. --------------------- ...

  5. MongoDB-比较符及修改器

    数学比较符 $lt 小于 $lte 小于等于 $gt 大于 $gte 大于等于 $eq 等于 $ne 不等于 所有数据 > db.stutent.find() }) { "_id&qu ...

  6. Echarts案例-柱状图

    一:先在官网下载 https://www.echartsjs.com/zh/download.html 然后再建立工程,导入这两个包: 写代码: <!DOCTYPE html> <h ...

  7. Send Boxes to Alice

    E. Send Boxes to Alice 首先求出每一个位置的前缀和. 对答案进行复杂度为\(\sqrt{a[n]}\)的遍历,因为最后的答案不可能大于\(\sqrt{a[n]}\) for(ll ...

  8. springboot连接mongodb进行CRUD

    springboot连接mongodb进行CRUD的过程: 在执行以下操作前已安装了mongodb并创建了用户和数据库,使用Robo 3T可成功连接. 1.创建springboot项目,加入以下mav ...

  9. Ubuntu验证查看库的安装情况

    以下是ubuntu系统安装完成一些库后,验证查看各个库的安装情况. 1. CUDA8.0 yuanlibin@yuanlibin:~$ nvcc -V nvcc: NVIDIA (R) Cuda co ...

  10. Apache Flink - 分布式运行环境

    1.任务和操作链 下面的数据流图有5个子任务执行,因此有五个并行线程. 2.Job Managers, Task Managers, Clients Job Managers:协调分布式运行,他们安排 ...