zoukankan      html  css  js  c++  java
  • Hive表的几种存储格式

    Hive的文件存储格式:

    • textFile

        textFile为默认格式

        存储方式:行存储    

        缺点:磁盘开销大;数据解析开销大;压缩的text文件,hive无法进行合并和拆分

    • sequencefile

        二进制文件,以<key,value>的形式序列化到文件中

        存储方式:行存储

        优点:可分割、压缩,一般选择block压缩,与hadoop api中的mapfile是互相兼容的。

    • Rcfile

        存储方式:数据按行分块 每块按照列存储

        压缩快 快速列存取

        读记录尽量涉及到的block最少

        读取需要的列只需要读取每个row group 的头部定义。

        读取全量数据的操作 性能可能比sequencefile没有明显的优势

    • ORC

        存储方式:数据按行分块 每块按照列存储

        压缩快 快速列存取

        效率比rcfile高,是rcfile的改良版本

        官网介绍:

        The Optimized Row Columnar (ORC) file format provides a highly efficient way to store Hive data. It was designed to overcome limitations of the other Hive file formats. Using ORC files improves performance when Hive is reading, writing, and processing data.
    

        ORC实际上是在RC文件存储格式做了一些优化,它的主要优点有:
          (1)、每个task只输出单个文件,这样可以减少NameNode的负载;
          (2)、支持各种复杂的数据类型,比如: datetime, decimal, 以及一些复杂类型(struct, list, map, and union);
          (3)、在文件中存储了一些轻量级的索引数据;
          (4)、基于数据类型的块模式压缩:a、integer类型的列用行程长度编码(run-length encoding);b、String类型的列用字典编码(dictionary encoding);
          (5)、用多个互相独立的RecordReaders并行读相同的文件;
          (6)、无需扫描markers就可以分割文件;
          (7)、绑定读写所需要的内存;
          (8)、metadata的存储是用 Protocol Buffers的,所以它支持添加和删除一些列。

    • 自定义格式

        用户可以通过实现inoutformat和outputformat来定义输入输出格式。

  • 相关阅读:
    条件随机场(crf)及tensorflow代码实例
    Adam作者大革新, 联合Hinton等人推出全新优化方法Lookahead
    33.服务之间的调用之RPC、Restful深入理解
    RPC框架调用过程详解
    Spring 面试问题 TOP 50
    myBatis+Spring+SpringMVC框架面试题整理
    JavaSSM框架精选50道面试题
    maven build的常用生命周期
    玄武短信接口和移动MAS短信接口的API封装
    Java异步执行多个HTTP请求的例子(需要apache http类库)
  • 原文地址:https://www.cnblogs.com/zbw1112/p/11897866.html
Copyright © 2011-2022 走看看