1.

  

2.表 

  2.1 常用命令

    查看描述信息 # desc formatted xxx

         建立表  

  
   CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name    -- (Note: TEMPORARY available in Hive 0.14.0 and later)
     [(col_name data_type [COMMENT col_comment], ... [constraint_specification])]
     [COMMENT table_comment]  --表描述
     [PARTITIONED BY (col_name data_type [COMMENT col_comment],...)] --表分区设置
     [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
     [SKEWED BY (col_name, col_name, ..) -- (Note: Available in Hive 0.10.0 and later)]
     ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
     [STORED AS DIRECTORIES]
     [
       [ROW FORMAT row_format] 
       [STORED AS file_format]
         | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]  -- (Note: Available in Hive 0.6.0 and later)
     ]
     [LOCATION hdfs_path] --数据文件存于HDFS上的位置,如果不指定,默认存放于/user/hive/warehouse/数据库名.db/表名下
     [TBLPROPERTIES (property_name=property_value, ...)]   -- (Note: Available in Hive 0.6.0 and later)
     [AS select_statement];   -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)
   data_type
    : primitive_type
      | array_type
      | map_type
      | struct_type
      | union_type  -- (Note: Available in Hive 0.7.0 and later)
   primitive_type
    : TINYINT
      | SMALLINT
      | INT
      | BIGINT
      | BOOLEAN
      | FLOAT
      | DOUBLE
      | DOUBLE PRECISION -- (Note: Available in Hive 2.2.0 and later)
      | STRING
      | BINARY      -- (Note: Available in Hive 0.8.0 and later)
      | TIMESTAMP   -- (Note: Available in Hive 0.8.0 and later)
      | DECIMAL     -- (Note: Available in Hive 0.11.0 and later)
      | DECIMAL(precision, scale)  -- (Note: Available in Hive 0.13.0 and later)
      | DATE        -- (Note: Available in Hive 0.12.0 and later)
      | VARCHAR     -- (Note: Available in Hive 0.12.0 and later)
      | CHAR        -- (Note: Available in Hive 0.13.0 and later)
    array_type
      : ARRAY < data_type >
    map_type
      : MAP < primitive_type, data_type >
    struct_type
      : STRUCT < col_name : data_type [COMMENT col_comment], ...>
    union_type
       : UNIONTYPE < data_type, data_type, ... >  -- (Note: Available in Hive 0.7.0 and later)
   row_format:
       DELIMITED
[LINES TERMINATED BY char] --行分割符.默认\n
         [FIELDS TERMINATED BY char [ESCAPED BY char]]  --列分割符
         [COLLECTION ITEMS TERMINATED BY char]  -集合对象切割符
         [MAP KEYS TERMINATED BY char] --Map对象切割符
         [NULL DEFINED AS char]  --空值填充字符 
        | SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value,...)] 
     file_format:

      : SEQUENCEFILE
        | TEXTFILE    -- (Default, depending on hive.default.fileformat configuration)
        | RCFILE      -- (Note: Available in Hive 0.6.0 and later)
        | ORC         -- (Note: Available in Hive 0.11.0 and later)
        | PARQUET     -- (Note: Available in Hive 0.13.0 and later)
        | AVRO        -- (Note: Available in Hive 0.14.0 and later)
        | INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname

   

    constraint_specification:

      : [, PRIMARY KEY (col_name, ...) DISABLE NOVALIDATE ]
        [, CONSTRAINT constraint_name FOREIGN KEY (col_name, ...) REFERENCES table_name(col_name, ...) DISABLE NOVALIDATE

  

   本地数据导入

      # LOAD DATA [LOCAL] INPATH '本地路径' [OVERWRITE] INTO TABLE 目标表

        [LOCAL]有代表从本地文件系统上导入(拷贝),否则代表从HDFS导入(是移动,源文件会被删掉,切记切记)

        [OVERWRITE]有代表数据全覆盖,否则代表数据追加

      # insert into table 表明 [分区设置]

         select 字段... from 目标表 ;

        语法要求目标表必须存在,

      # create table xxx as select ..... 

         直接将select查询结果创建为表

        语法要求:

            目标表必须不存在

            目标表不能是分区表,外部表或者list bucketing表 

  2.2 外部表&内部表

    内部表(MANAGED_TABLE)

      内部表同时管理MetaData和SourceData.删除后,将同时删除MetaData和SourceData

    外部表(EXTERNAL)

      外部表只管理MetaData.删除后,只删除MetaData.不会影响到SourceData

    以数据导入方式后,数据文件文件默认存放于/user/hive/warehouse/数据库名.db/表名下(表自身文件夹)

    直接于HDFS放入文件,内外部表都可以正确读取直接放入的文件数据.只是如果是内部表,删除会将自行放入的文件数据也一起删除(删除的是表文件夹)

  2.3 分区表

    2.3.1 简述

      分区在HDFS中体现为表的子文件夹.

      分区的最大优势在于降低IO,因为以分区字段筛选数据时,可以直接跳过读取和计算整个分区下的数据.特别是大数据情况下,良好的分区可以显著的提供计算性能

    2.3.2 分区表建立

      create table order_partition.....常规建表

      partitioned by (分区字段,分区字段类型........)

       语法要求:分区字段不得与任何非分区字段同名

    2.3.3 静态分区

      静态分区是手动指定分区,将数据直接放入目标分区.

        LOAD DATA LOCAL INPATH '/home/hadoop/data/order.txt'

        OVERWRITE INTO TABLE order_partition

        PARTITION(event_month='2014-05');

    2.3.4 动态分区

        LOAD DATA LOCAL INPATH '/home/hadoop/data/order.txt' 

        OVERWRITE INTO TABLE order_partition

        PARTITION(event_month='2014-05');

  

    

转载于:https://www.cnblogs.com/NightPxy/p/9131314.html

[Hive]-Table相关推荐

  1. Presto Cannot write to non-managed Hive table

    使用Presto向Hive表插数据时遇到这个错,我还是头回碰见. Cannot write to non-managed Hive table 网上搜了一下也没发现类似的错,不过让我注意到了non-m ...

  2. [Hive基础]-- Hive table 的压缩方式和存储格式

    目录 一.了解 Hadoop 的压缩方式 1.Hadoop 的压缩方式的基本信息 2.Hadoop 压缩方式优缺点对比 二. Hive table的存储格式 1.TEXTFILE 2.Parquet ...

  3. SparkSQL操作Hive Table

    Spark SQL支持对Hive的读写操作.然而因为Hive有很多依赖包,所以这些依赖包没有包含在默认的Spark包里面.如果Hive依赖的包能在classpath找到,Spark将会自动加载它们.需 ...

  4. Hive Table 操作命令汇总

    1. 数据类型 1.1 数字类 类型 长度 备注 TINYINT 1字节 有符号整型 SMALLINT 2字节 有符号整型 INT 4字节 有符号整型 BIGINT 8字节 有符号整型 FLOAT 4 ...

  5. 理解Hive表(Hive Table)

    Hive表逻辑上有表的数据和相关的元数据组成.元数据描述表的结构,索引等信息.数据通常存放在HDFS中,虽然任意的Hadoop文件系统都能支持,例如Amazon的S3或者而本地文件系统.元数据则存在关 ...

  6. hive常用参数配置设置

    hive.exec.mode.local.auto  决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行)  true hive.exec.mode.local.auto ...

  7. hive增量表和全量表_基于 Flink + Hive 构建流批一体准实时数仓

    基于 Hive 的离线数仓往往是企业大数据生产系统中不可缺少的一环.Hive 数仓有很高的成熟度和稳定性,但由于它是离线的,延时很大.在一些对延时要求比较高的场景,需要另外搭建基于 Flink 的实时 ...

  8. hive 配置参数说明

    hive.exec.mode.local.auto 决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行) truehive.exec.mode.local.auto.in ...

  9. sqoop导入-hive

    导入关系表到HIVE 第一步:拷贝jar包 将我们mysql表当中的数据直接导入到hive表中的话,我们需要将hive的一个叫做hiveexec-3.1.1.jar 的jar包拷贝到sqoop的lib ...

  10. hive的新分区和旧分区的概念问题

    hive中的一个表格中的内容可以存储在不同分区(可以理解为分片). [1]中描述的是,试图给表格新增一个字段,结果只给新分区进行了新增字段操作,老分区并没有影响, 需要使用如下的cascade写法 a ...

最新文章

  1. ubuntu环境ceph配置入门(一)
  2. MySQL数据库初识(基础语句)
  3. Common Attention Points
  4. Error: Could not find or load main class CLASS的解决方法
  5. python如何让图片镜像翻转_98后常春藤学霸林之秋,一作拿下CVPR最佳论文提名,首次挑战图片翻转不变性假设...
  6. html5支持udp协议吗,HTML5的TCP和UDP Web Socket API草案定稿
  7. Android隐藏输入法键盘(hideSoftInputFromInputMethod没有效果)(转)
  8. android ringtonemanager raw,ringtone播放自定义的声音
  9. WordPress火箭缓存插件WP Rocket v3.8.8 汉化版
  10. window 快捷键
  11. html 文本域 nanme,第3章 JaaScript.ppt
  12. Lucene和Solr原理初探
  13. 冒泡排序时间复杂度计算和优化
  14. 如何把PDF锁定,限制修改文档内容?
  15. Trend Micro 趋势科技
  16. Jenkins自动构建部署项目
  17. vue2.0中的路由传值
  18. make: *** [Makefile:44:obj/start.o] 错误 127
  19. Unity3D学习日记6
  20. Win10忘记登录密码,系统U盘/光盘轻松重置

热门文章

  1. Linux ubuntu基本知识
  2. 变换型设计与事务型设计
  3. 复习-java运行的整个流程
  4. java alert 乱码_在servlet中输出JS中文乱码,servlet中alert对话框出现中文乱码的解决方法...
  5. 基于Java的在线购书系统
  6. algorithm:next_permutation
  7. Oracle 数据类型,表空间、用户与权限,DDL、DML 语句、约束,exp/imp
  8. python登录界面代码_超酷 Python 程序包 ,一行代码实现 GUI 界面
  9. 阶段3 2.Spring_08.面向切面编程 AOP_10 总结和作业安排
  10. 聊聊、Integer 封装特性