hive之存储数据格式

  在项目中使用到了hive,本来觉得挺简单的无非就是CRUD,慢慢发现不是那么回事。特开文章来记录下来以备后查。

  在使用传统的数据库时因为封装的很好,屏蔽了许多底层细节,所以在使用时只需关注应用的开发无需关注底层的实现。在使用hive时就没那么简单了,需要考虑方方面面的内容。

   这里先记录下hive在数据存储时的存储格式,一共有三种格式:TEXTFILE,SEQUENCEFILE,RCFILE

   hive默认的存储格式为textfile既文本格式,后两种格式为二进制格式,行列混合格式。

   hive指定文件的存储格式有两种方式:1.在创建表时的SQL语句指定。2.在hive的hive-site.xml文件中配置成全局变量,如果在创建表时不显式指定文件存储格式就会使用指定的文件格式。

   下面举例来说明

   1.创建表时SQL语句指定

    CREATE TABLE TEST (name string,age int) STORED AS RCFILE;

  2.

  

<think>好的,我现在需要回答用户关于Hive支持的数据格式的问题。首先,我需要回忆一下Hive的相关知识,并参考提供的引用资料。根据引用[1],Hive支持的主要存储格式包括TEXTFILE、SEQUENCEFILE、ORC和PARQUET,其中TEXTFILE和SEQUENCEFILE是行式存储,而ORC和PARQUET是列式存储。引用[2]提到TEXTFILE是默认格式,直接拷贝数据文件到HDFS不进行处理。 接下来,我需要整理这些信息,确保结构清晰。用户可能还关心每种格式的特点,比如行式存储和列式存储的区别,以及它们的适用场景。引用[5]提到行式存储按行处理数据,适合OLTP场景,而列式存储适合OLAP场景,因为可以高效压缩和查询特定列。 然后,我需要检查是否有其他相关格式被遗漏,但根据提供的引用,主要的就是这四个。此外,引用[4]提到Hive的复杂数据类型,但用户的问题是关于存储格式,所以可能不需要涉及这部分,不过可以简要提及数据类型的支持情况。 最后,生成相关问题需要考虑用户可能的后续疑问,比如如何选择存储格式、不同格式的性能比较、如何在实际中使用这些格式等。确保问题覆盖用户可能想深入了解的方向。</think>### Hive支持的数据格式 Hive支持多种数据存储格式,主要分为**行式存储**和**列式存储**两类,具体如下: #### 1. **行式存储格式** - **TEXTFILE** - **默认格式**,建表时不指定则自动使用此格式[^2]。 - 数据以纯文本形式存储(如CSV、JSON),可直接查看文件内容。 - 优点:兼容性高,适合与其他工具交互;缺点:不支持压缩,查询效率较低。 - **SEQUENCEFILE** - 基于Hadoop二进制文件格式,支持记录级别的压缩。 - 适合处理大量小文件,但查询性能仍弱于列式存储。 #### 2. **列式存储格式** - **ORC(Optimized Row Columnar)** - 专为Hive设计的高效列式存储格式。 - 支持压缩、索引和谓词下推(Predicate Pushdown),显著提升查询速度。 - 数据按列分块存储,适合聚合查询和OLAP场景[^1][^5]。 - **PARQUET** - 跨平台的列式存储格式,兼容Hadoop生态中的多种工具(如Spark、Impala)。 - 支持高效的压缩和编码,适合复杂嵌套数据结构。 #### 行式 vs 列式存储对比 | 特性 | 行式存储(TEXTFILE/SEQUENCEFILE) | 列式存储(ORC/PARQUET) | |---------------|----------------------------------|---------------------------------| | **适用场景** | OLTP(频繁写入、单行查询) | OLAP(聚合查询、多列分析) | | **压缩效率** | 低 | 高(按列压缩,相似数据更高效) | | **查询性能** | 全表扫描快,单列查询慢 | 单列/多列聚合查询快 | #### 实际应用建议 - **默认场景**:若无需高性能,可直接使用TEXTFILE。 - **分析场景**:优先选择ORC或PARQUET,尤其是涉及大量聚合操作时。 - **兼容性需求**:若需与其他工具(如Spark)交互,PARQUET更通用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值