zoukankan      html  css  js  c++  java
  • hive支持的数据类型和存储格式

    1.hive支持的数据类型:

      Hive支持原始数据类型和复杂类型,原始类型包括数值型,Boolean,字符串,时间戳。复杂类型包括array,map,struct,union。

        原始数据类型:

    类型名称大小备注
    TINYINT 1字节整数 45Y
    SMALLINT 2字节整数 12S
    INT 4字节整数 10
    BIGINT 8字节整数 244L
    FLOAT 4字节单精度浮点数 1.0
    DOUBLE 8字节双精度浮点数 1.0
    DECIMAL 任意精度带符号小数 DECIMAL(4, 2)范围:-99.99到99.99
    BOOLEAN true/false TRUE
    STRING 字符串,长度不定 “a”, ‘b’
    VARCHAR 字符串,长度不定,有上限 0.12.0版本引入
    CHAR 字符串,固定长度 “a”, ‘b’
    BINARY 存储变长的二进制数据  
    TIMESTAMP 时间戳,纳秒精度 122327493795
    DATE 日期 ‘2016-07-03’

      复杂类型:

    类型名称大小示例
    ARRAY 存储同类型数据 ARRAY< data_type>
    MAP key-value,key必须为原始类型,value可以是任意类型 MAP< primitive_type, data_type>
    STRUCT 类型可以不同 STRUCT< col_name : data_type [COMMENT col_comment], …>
    UNION 在有限取值范围内的一个值 UNIONTYPE< data_type, data_type, …>

    2.hive支持的存储格式:

      hive支持的存储格式包括TextFile、SequenceFile、RCFile、Avro Files、ORC Files、Parquet。

    TextFile:

      Hive默认格式,数据不做压缩,磁盘开销大,数据解析开销大。
      可结合Gzip、Bzip2、Snappy等使用(系统自动检查,执行查询时自动解压),但使用这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作。

    SequenceFile:

      SequenceFile是Hadoop API 提供的一种二进制文件,它将数据以<key,value>的形式序列化到文件中。这种二进制文件内部使用Hadoop 的标准的Writable 接口实现序列化和反序列化。它与Hadoop API中的MapFile 是互相兼容的。Hive 中的SequenceFile 继承自Hadoop API 的SequenceFile,不过它的key为空,使用value 存放实际的值, 这样是为了避免MR 在运行map 阶段的排序过程。

    SequenceFile的文件结构图:

    Header通用头文件格式:

    SEQ 3BYTE
    Nun 1byte数字
    keyClassName  
    ValueClassName  
    compression (boolean)指明了在文件中是否启用压缩
    blockCompression (boolean,指明是否是block压缩)
    compression codec
    Metadata 文件元数据
    Sync 头文件结束标志

    Block-Compressed SequenceFile格式

      RCFile

    RCFile是Hive推出的一种专门面向列的数据格式。 它遵循“先按列划分,再垂直划分”的设计理念。当查询过程中,针对它并不关心的列时,它会在IO上跳过这些列。需要说明的是,RCFile在map阶段从 远端拷贝仍然是拷贝整个数据块,并且拷贝到本地目录后RCFile并不是真正直接跳过不需要的列,并跳到需要读取的列, 而是通过扫描每一个row group的头部定义来实现的,但是在整个HDFS Block 级别的头部并没有定义每个列从哪个row group起始到哪个row group结束。所以在读取所有列的情况下,RCFile的性能反而没有SequenceFile高。

     

  • 相关阅读:
    WPF 文本动画 文字BaseLine 字体 行高计算说明
    C#查找窗口,并控制窗口显示隐藏,通过改变窗口样式方式
    c#获取状态栏图标并-模拟鼠标点击-模拟鼠标点击窗体的某些按钮
    IEC 104公约 解析 c#使用通过104公约同步时间
    hprose数据可视化显示,通过c#序列化,列表形式展示,导出excel、csv
    微服务优秀博文资料
    IT 常用单词表
    java 优秀开源项目
    java并发编程学习博客
    LDAP服务端
  • 原文地址:https://www.cnblogs.com/jvStarBlog/p/10883907.html
Copyright © 2011-2022 走看看