其他分享
首页 > 其他分享> > 【Hive学习笔记】3

【Hive学习笔记】3

作者:互联网

文章目录


一、数据定义语言(DDL)概述

1、SQL中DDL语法的作用

2、Hive中DDL语法的使用

二、建表语法

在这里插入图片描述
注意事项:

三、Hive数据类型

1、整体概述

(1)Hive数据类型是指表中的字段类型;
(2)整体分为:原生数据类型(primitive data type)和复杂数据类型(complex data type)两类,其中:

2、数据类型的注意事项

四、Hive读写件机制

1、SerDe

(1)SerDe是Serializer、Deserializer的简称,目的是用于序列化和反序列化。其中序列化是对象转化为字节码的过程;而反序列化是字节码转换为对象的过程
(2)Hive使用SerDe(包括FileFiormat)读取和写入表行对象。需要注意的是,"key"部分在读取时会被忽略,而在写入时key始终是常数。基本上行对象存储在"value"中。
(3)可以通过desc formatted tablename查看表的相关SerDe信息。

2、Hive读写件流程

(1)Hive读取文件机制:

  1. 首先调用InputFormat(默认Text InputFormat),返回一条一条kv键值对记录(默认是一行对应一条键值对);
  2. 然后调用SerDe(默认LazySimpleSerDe)的Deserializer,将一条记录中的value根据分隔符切分为各个字段。

(2)Hive写文件机制:

  1. 将Row写入文件时,首先调用SerDe(默认LazySimpleSerDe)的Serializer将对象转换成字节序列;
  2. 然后调用OutputFormat将数据写入HDFS文件中。

3、SerDe相关语法

在这里插入图片描述

SerDe相关语法就是上图红色框ROW FORMAT这一行所代表的是跟读写文件、序列化SerDe相关的语法,功能有二:
(1)使用哪一个SerDe类进行序列化;
(2)如何指定分隔符。

根据上图:
(1)ROW FORMAT是语法关键字,DELIMITED和SERDE二选其一。
(2)如果使用delimited表示使用默认的LazySimpleSerle类来处理数据。
(3)如果数据文件格式比较特殊可以使用ROW FORMAT SERDE serde_name指定其他的Serde类来处理数据,甚至支持用户自定义SerDe类。
其中: LazySimpleSerDe分隔符指定
(1)LazySimpleSerDe是Hive默认的序列化类,包含4种子语法,分别用于指定字段之间、集合元素之间、map映射kv之间、换行的分隔符号。
(2)在建表的时候可以根据数据的特点灵活搭配使用。
在这里插入图片描述

标签:语法,SerDe,SQL,数据类型,笔记,学习,Hive,DDL
来源: https://blog.csdn.net/Txixi/article/details/121950017