zoukankan      html  css  js  c++  java
  • 大数据学习路线之hive存储格式

    hive的存储格式通常是三种:textfile、sequencefile、rcfile、orc、自定义set hive.default.fileformat=TextFile; 默认存储格式为:textfile textFile:普通文本存储,不进行压缩。查询效率较低。

      1.sequencefile:

      hive提供的二进制序列文件存储,天生压缩。

      sequeceFile 和 rcfile都不允许使用load方式加载数据。需要使用insert 方式插入

      默认支付压缩、分割,使用便捷、写和查询较快。sequencefile和压缩属性可以搭配使用。

      create table if not exists seq1(

      id int,

      name string

      )

      row format delimited fields terminated by ' '

      lines terminated by ' '

      stored as sequencefile

      ;

      ###加载数据错误方式

      load data local inpath '/home/user' into table seq1;

      ###加载数据正确方式

      insert into table seq1

      select * from user1

      ;

      2.rcfile:

      rcfile可以进行行列混合压缩,将附近的列和行的数据尽量保存到相同的块里面,该存储格式会提高查询效率,但是写数据较慢。该方式和gzcodeC压缩属性结合不是很好() set mapred.output.compression=true; set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;

      ###创建rcfile表:

      create table if not exists rc1(

      id int,

      name string

      )

      row format delimited fields terminated by ' '

      stored as rcfile

      ;

      create table if not exists rc2(

      id int,

      name string

      )

      row format delimited fields terminated by ' '

      stored as rcfile

      ;

      ###加载数据错误方式

      load data local inpath '/home/user' into table rc1;

      ###加载数据正确方式

      insert into table rc2

      select * from user1

      ;

      3.存储自定义:

      数据: seqyd元数据文件: aGVsbG8saGl2ZQ== aGVsbG8sd29ybGQ= aGVsbG8saGFkb29w seqyd文件为base64编码后的内容,decode后数据为:

      ##hello,hive

      ##hello,world

      ##hello,hadoop

      create table cus(str STRING)

      stored as

      inputformat 'org.apache.hadoop.hive.contrib.fileformat.base64.Base64TextInputFormat'

      outputformat 'org.apache.hadoop.hive.contrib.fileformat.base64.Base64TextOutputFormat';

      LOAD DATA LOCAL INPATH '/home/cus' INTO TABLE cus;

      通常是使用defaultCodec+rcfile搭配效率最好。

  • 相关阅读:
    unable to import maven project see logs for details
    全栈工程师:第一章:NodeJS的安装与配置
    Unable to open debugger port (127.0.0.1:63959): java.net.SocketException "socket closed",编译过来就是无法打开调试器端口,套接字已关闭
    我的分享:第七章:数据埋点
    我的分享:第六章:IDEA的优秀插件
    我的分享:第五章:java程序员一个人搭建网站(静态的,动态的都有)
    Docker:第三章:简单入门和深入理解
    我的分享:第四章:深入理解MySQL索引底层数据结构与算法
    NPM使用详解(上)
    JS实现继承的几种方式
  • 原文地址:https://www.cnblogs.com/coffees/p/12331243.html
Copyright © 2011-2022 走看看