如何配置单元存储数据,什么是SERDE?(How does Hive stores data and

2019-08-16 15:23发布

查询表时,一个将SERDE 反序列化从该文件中的字节的数据的一行被配置单元内部用于数据的该行操作的对象 。 执行INSERT或CTAS(见441页的“导入数据”)时,表的SERDE将数据串行化的一排配置单元的内部表示成被写入到输出文件中的字节

  1. 是SERDE库?
  2. 如何蜂巢存储数据,即它存储在文件或表?
  3. 请任何人都清楚地解释了大胆的句子? 我是新来的蜂巢!

Answer 1:

答案

  1. 是的,SERDE是被内置到Hadoop的API库
  2. 蜂房使用文件系统,如HDFS或任何其它存储(FTP)来存储数据,数据这里是在表的形式(其具有行和列)。
  3. SERDE - 串行器,解串器指示如何处理记录(行)蜂房。 蜂巢使半结构化(XML,电子邮件等)或非结构化的记录(音频,视频等),也处理。 例如,如果你有1000个GB的RSS订阅(RSS个XML)的。 你可以摄取到那些在HDFS的位置。 您需要使蜂巢知道如何将XML文件加载到蜂巢表或周围的其他方式来写根据您的XML结构的自定义SERDE。

有关如何写出更多信息SERDE阅读这篇帖子



Answer 2:

In this aspect we can see Hive as some kind of database engine. This engine is working on tables which are built from records.
When we let Hive (as well as any other database) to work in its own internal formats - we do not care.
When we want Hive to process our own files as tables (external tables) we have to let him know - how to translate data in files into records. This is exactly the role of SerDe. You can see it as plug-in which enables Hive to read / write your data.
For example - you want to work with CSV. Here is example of CSV_Serde https://github.com/ogrodnek/csv-serde/blob/master/src/main/java/com/bizo/hive/serde/csv/CSVSerde.java Method serialize will read the data, and chop it into fields assuming it is CSV
Method deserialize will take a record and format it as CSV.



Answer 3:

蜂房可以通过使用(1)复杂数据类型(结构,数组,工会)分析半结构化和非结构化数据,以及(2)通过使用SERDE

SERDE接口允许我们指示蜂巢,以记录应如何处理。 串行器将Java对象蜂巢一直在努力,并将其转换成一些蜂箱可以存储并解串器需要记录的二进制表示并转化为Java对象蜂巢可以操作。



Answer 4:

我觉得上面有概念连载和deserialise后到前。 连载是在写入完成后,所述结构化数据被序列化成用于存储的比特/字节流。 上读出,该数据被从比特/字节存储格式,以由读取器所需要的结构deserialised。 如蜂房需要看起来像行和列,但HDFS存储位/字节的块中的数据,所以连载上写,deserialise上读取结构。



文章来源: How does Hive stores data and what is SerDe?
标签: hadoop hive