hive中的逻辑运算符 案列_Hive 教程(官方Tutorial)

Hive 教程(官方Tutorial)

Tutorial

Hive Tutorial

Concepts What Is Hive

What Hive Is NOT

Getting Started

Data Units

Type System

Built In Operators and Functions

Language Capabilities

Usage and Examples Creating, Showing, Altering, and Dropping Tables

Loading Data

Querying and Inserting Data

概念

Hive是什么

Hive是一个基于Apache Hadoop的数据仓库。对于数据存储与处理,Hadoop提供了主要的扩展和容错能力。

Hive设计的初衷是:对于大量的数据,使得数据汇总,查询和分析更加简单。它提供了SQL,允许用户更加简单地进行查询,汇总和数据分析。同时,Hive的SQL给予了用户多种方式来集成自己的功能,然后做定制化的查询,例如用户自定义函数(User Defined Functions,UDFs).

Hive不适合做什么

Hive不是为在线事务处理而设计。它最适合用于传统的数据仓库任务。

Getting Started

对于Hive, HiveServer2 和Beeline的设置详情,请参考指南。

对于学习Hive,这些书单可能对你有所用处。

以下部分提供了一个关于Hive系统功能的教程。先描述数据类型,表和分区的概念,然后使用例子来描述Hive的功能。

数据单元

根据颗粒度的顺序,Hive数据被组织成: - 数据库:命名空间功能,为了避免表,视图,分区,列等等的命名冲突。数据库也可以用于加强用户或用户组的安全。表:相同数据库的同类数据单元。例如表page_views,表的每行包含以下列:timestamp -这是一个INT类型,是当页面被访问时的UNIX时间戳。

userid -这是一个BIGINT类型,用于惟一识别访问页面的用户。

page_url -这是一个STRING类型,用于存储页面地址。

referer_url -这是一个STRING类型,用于存储用户是从哪个页面跳转到本页面的地址。

IP -这是一个STRING类型,用于存储页面请求的IP地址。

分区:每个表可以有一个或多个用于决定数据如何存储的分区键。分区(除存储单元之外)也允许用户有效地识别满足指定条件的行;例如,STRING类型的date_partition和STRING的country_partition。这些分区键的每个惟一的值定义了表的一个分区。例如,所有的“2009-12-23”日期的“US”数据是表page_views的一个分区。(注意区分,分区键与分区,如果分区键有两个,每个分区键有三个不同的值,则共有6个分区)。因此,如果你只在日期为“2009-12-23”的“US”数据上执行分析,你将只会在表的相关数据上执行查询,这将有效地加速分析。然而要注意,那仅仅是因为有个分区叫2009-12-23,并不意味着它包含了所有数据,或者说,这些数据仅仅是那个日期的数据。用户需要保证分区名字与数据内容之间的关系。分区列是虚拟列,它们不是数据本身的一部分,而是源于数据加载。

桶(Buckets or Clusters):每个分区的数据,基于表的一些列的哈希函数值,又被分割成桶。例如,表page_views可能通过userid分成桶,userid是表page_view的一个列,不同于分区列。这些桶可以被用于有效地抽样数据。

类型系统

Hive支持原始类型和复要类型,如下所述,查看Hive Data Types

原始类型

类型与表的列相关。支持以下原始类型:

Integers(整型) TINYINT -1位的整型

SMALLINT -2位的整型

INT -4位的整型

BIGINT -8位的整型

布尔类型 BOOLEAN -TRUE/FALSE

浮点数 FLOAT -单精度

DOUBLE -双精度

定点数 -DECIMAL -用户可以指定范围和小数点位数

字符串 -STRING -在特定的字符集中的一个字符串序列 -VARCHAR -在特定的字符集中的一个有最大长度限制的字符串序列 -CHAR -在特定的字符集中的一个指定长度的字符串序列

日期和时间 -TIMESTAMP -一个特定的时间点,精确到纳秒。 -DATE -一个日期

二进制 -BINARY -一个二进制位序列

复杂类型

复杂类型可以由原始类型和其他组合类型构建: - 结构体类型(Stuct): 使用点(.)来访问类型内部的元素。例如,有一列c,它是一个结构体类型{a INT; b INT},字段a可以使用表达式c.a来访问。 - Map(key-value键值对):使用['元素名']来访问元素。例如,有一个MapM,包含'group'->gid的映射,则gid的值可以使用M['group']来访问。 - 数组:数组中的元素是相同的类型。可以使用[n]来访问数组元素,n是数组下标,以0开始。例如有一个数组A,有元素['a','b','c'],则A[1]返回'b'。

内置运算符和函数

Hive所有关键词的大小写都不敏感,包括Hive运算符和函数的名字。

内置运算

关系运算

f21d7cbb1b485de3a2850dc789b0b69f.png

数学运算

3f8ce81d03b1d653b84e2a546ba70a2c.png

逻辑运算

bbe1c9a4752b3be433f32e01fbd5f0bf.png

复杂类型的运算

37c856746bb720aea3a92633f5fe0661.png

内置函数

Hive支持以下内置函数

ef6442c14c1f1d125657c2a2e406e42b.png

71e1cd7cca2b88280a064f1bba55801c.png

Hive支持以下内置聚合函数

bab5370e7a1c75d9cfac4b1bea0d7aea.png

语言能力

Hive’s SQL提供

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值