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