ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Hive 数据导入/导出

2021-12-14 18:05:06  阅读:233  来源: 互联网

标签:文件 存储 导出 Hive 导入 格式 数据 ORC


Hive 支持的文件格式

  • Text File(文本格式文件)

  • Sequence File(hadoop 专用序列格式二进制文件)

    Hadoop 提供的 Sequence File 文件格式提供一对 Key-Value 形式的不可变的数据结构。同时,HDFS 和 MapReduce 使用SequenceFile 文件可以使文件的读取更加效率

  • Avro File (hadoop 专用序列格式二进制文件)

    Avro 是一个数据序列化系统,设计用于支持大批量数据交换的应用。

    Avro 主要特点有:

    • 支持二进制序列化方式,可以便捷,快速地处理大量数据;
    • 动态语言友好,Avro 提供的机制使动态语言可以方便地处理 Avro 数据
    • 可排序的
  • Parquet File(列式存储格式二进制文件)

    Parquet 是一种列式数据存储格式,同 XML 和 JSON 一样,它是语言、平台无关的,并且不需要和任何一种数据处理框架绑定,并且可以很方便的将其它序列化工具生成的数据转换成 Parquet 格式

    Parquet 文件是以二进制方式存储的,所以是不可以直接读取的,文件中包括该文件的数据和元数据,因此 Parquet 格式文件是自解析的

    目前支持 Parquet 文件格式的组件或框架如下:

    • 查询引擎: Hive, Impala, Pig, Presto, Drill, Tajo, HAWQ, IBM Big SQL
    • 计算框架: MapReduce, Spark, Cascading, Crunch, Scalding, Kite
    • 数据模型: Avro, Thrift, Protocol Buffers, POJOs
  • ORC file(列式存储格式二进制文件)

    ORC 的全称是 (Optimized Row Columnar),是另一种常见的列式存储格式。

    在 ORC 之前,Hive 中就有一种列式存储格式称为 RCFile(RecordColumnar File),ORC 是对 RCFile 格式的改进,主要在压缩编码、查询性能方面做了优化。因此 ORC/RC 都源于 Hive,主要用来提高 Hive 查询速度和降低 Hadoop 的数据存储空间。

    ORC 具有以下一些优势:

    • ORC 是列式存储,有多种文件压缩方式,并且有着很高的压缩比
  • ORC 文件是可切分(Split)的,在 Hive 中使用 ORC 作为表的文件存储格式,不仅节省HDFS 存储资源,查询任务的输入数据量减少,使用的 MapTask 也就减少

    • ORC 提供了多种索引,row group index、bloom filter index。
  • ORC 可以支持复杂的数据结构(比如Map等)

  • 在压缩存储时间上,除 Sequence File 外基本都相差无几
  • 数据压缩比例上 ORC FILE 最优,相比 Text File 节省了 50 倍磁盘空间,Parquet File压缩性能也较好
  • SQL 查询速度而言,ORC FILE 与 Qarquet FILE 性能较好,远超其余存储格式

综合上述各种性能指标,生产环境中主流做法是原始日志写入 hive 的存储格式都采用 ORC 或者 Qarquet 格式

文件存储分类

  • 行式存储

    • TEXT FILE
    • SEQUENCE FILE
    • AVRO FILE
  • 列式存储

    • PARQUET FILE
    • RC FILE
    • ORC FILE

数据导入

方式一

手动用 hdfs 命令,直接导入本地数据或 hdfs 数据到 Hive 仓库的表目录中

方式二

在 Hive 的交互式 shell 中用 load 命令,导入本地数据到 Hive 仓库的表目录中(文件复制)

注:Hive 的 load 命令是将文件直接加载到 Hive 仓库表的目录中, 将相关的元数据信息加到 MySQL 中,不涉及到文件格式的转换

方式三

在 Hive 的交互式 shell 中用 load 命令,导入 hdfs 数据到 Hive 仓库的表目录中(文件移动)

注:导入的 hfds 数据将被移动到 Hive 仓库表目录中

方式四

在 Hive 的交互式 shell 中用 insert 命令,导入Hive 表数据到 Hive 仓库的表目录中(主要用于创建表的文件格式和加载的数据文件格式不一致的时候

方式五

在 Hive 的交互式 shell 中用 import 命令,导入使用 Export 命令导出的文件数据

注:Import 导入的数据必须是 Export 导出的数据

数据导出

方式一
  • 将 Hive 表中的数据导出到 HDFS 中
  • 将 Hive 表中的数据导出到本地磁盘文件中

标签:文件,存储,导出,Hive,导入,格式,数据,ORC
来源: https://www.cnblogs.com/ccl971123/p/15689191.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有