在hive中“inputformat,outputformat”和“storageas”有什么区别?

8wigbo56  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(586)

我是新来的大数据,目前正在学习Hive。作为serde的一部分,我理解了hive中inputformat和outputformat的概念。我还了解到,“存储为”用于以特定格式存储文件,就像inputformat一样。但我不明白使用“inputformat,outputformat”和“storageas”之间有什么显著区别。
感谢您的帮助。

bfhwhh0e

bfhwhh0e1#

hive有很多存储数据的选项。您可以使用外部存储,其中配置单元只 Package 来自其他位置的一些数据,也可以从配置单元仓库中开始创建独立表。输入和输出格式允许您指定这两种表的原始数据结构,或者指定数据的物理存储方式。在客户端,您将继续使用sql处理表,但在较低级别上,它可能是文本文件、序列文件、hbase表或其他一些数据结构。
inputformat和outputformat—允许您描述原始数据结构,以便hive可以将其正确Map到表视图
serde—表示将数据从表视图实际转换为低级输入输出格式结构的类
一般情况下,您的过程是这样的:hdfs文件-->inputfileformat-->反序列化程序-->行对象-->序列化程序-->outputfileformat-->hdfs文件
存储为-指定这样的存储格式,其中包括配置单元中新表的输入和输出格式
这些属性确实会影响性能、总体大小、数据模式演化支持或启用acid等功能。您可以按照本文中描述的步骤查看底层的工作情况,并获取有关最常用格式的一般信息-https://oyermolenko.blog/2017/02/16/structuring-hadoop-data-through-hive-and-sql

相关问题