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. 11、Spring Boot 2.x 集成 HBase

    1.11 Spring Boot 2.x 集成 HBase 完整源码: Spring-Boot-Demos

  2. C++指针图解

  3. lodop第三方插件的使用

    原文链接 使用pdf.js插件与LODOP控件实现前端浏览器静默打印PDF文件 lodop官网地址:http://www.lodop.net/download.html lodop他人总结教程:htt ...

  4. overflow妙用--去除默认滚动条,内容仍可滚动

    在开发中我们往往要去除默认滚动条,但是其在竖直方向的滚动效果仍然需要. <div id="parent"> <div id="child"&g ...

  5. 取出easyui的datagrid的总数

    var grid = $('#datagrid'); var options = grid.datagrid('getPager').data("pagination").opti ...

  6. Flask-login 例子

    ################################################################################ from flask.ext.logi ...

  7. certbot 配置https屏蔽询问选项

    平常直接在终端,刷https时,要sudo certbot --nginx这样执行,但是中间会出现选项,让选择. 写程序用脚本操作时,希望跳过这些选项,就用--agree-tos 参数,一步到位. s ...

  8. 区间dp括号匹配

    POJ2955 匹配则加一,不需要初始化 //#include<bits/stdc++.h> #include<iostream> #include<cstdio> ...

  9. DELPHI安卓定位权限申请

    DELPHI安卓定位权限申请 安卓8及以后版本的权限分为静态和动态申请2部分,而之前的安卓版本只需要静态申请权限. 1)静态申请定位权限: 2)动态申请定位权限: uses System.Permis ...

  10. java中json的使用和解析

    1.创建json对象 1.1 创建JSONObject对象 使用map初始化json @Test public void test1() { Map<String, Object> map ...