1.实验目的

  1. 认识与了解基本查询;
  2. 认识与了解数据聚合;
  3. 认识与了解数据连接。

2.实验内容及结果截屏

  1. 基本查询

①使用SELECT ... FROM ... LIMIT ...语句从航班表flights.flights14中选取所有列,并返回前5行:

hive job 监控 hive 实时查询_全连接

 ②使用WHERE语句筛选航班表flights.flights14中出发地(列origin)为'JFK'、月份(列month)为6月的数据行:

hive job 监控 hive 实时查询_内连接_02

 ③使用ORDER BY语句将返回结果按出发地(列origin)顺序、目的地(列dest)倒序排列:

hive job 监控 hive 实时查询_全连接_03

 ④使用SELECT语句后跟列名,选取航班到达延误分钟数(列arr_delay)和出发延误分钟数(列dep_delay),并使用AS关键词将这两列重命名为delay_arr和delay_dep:

hive job 监控 hive 实时查询_hive job 监控_04

 ⑤使用SELECT语句后跟列名的表达式,新计算返回2列:平均速度(列speed)和总延误分钟数(列delay):

hive job 监控 hive 实时查询_数据连接_05

 ⑥在SELECT语句中,使用DISTINCT关键词表示仅选取独立值:

hive job 监控 hive 实时查询_hive job 监控_06

(2)数据聚合

①调用聚合函数count()计算表flights.flights14的行数:

hive job 监控 hive 实时查询_全连接_07

②使用GROUP BY语句指定按出发地(列origin)分组,计算各出发地的行数:

 

hive job 监控 hive 实时查询_全连接_08

③使用GROUP BY语句指定多个列,计算各不同出发地(列origin)和目的地(列dest)的组合中,航空公司代码(列carrier)为'AA'的行数:

hive job 监控 hive 实时查询_数据库_09

 ④使用HAVING语句对聚合结果做进一步筛选,返回所有出发地(列origin)和目的地(列dest)组合中,航空公司代码(列carrier)为'AA'的行数大于3000的记录:

hive job 监控 hive 实时查询_hive job 监控_10

 ⑤常用聚合函数

hive job 监控 hive 实时查询_数据库_11

hive job 监控 hive 实时查询_全连接_12

 

(3)数据连接

①内连接

使用INNER JOIN命令做内连接,并指定连接条件为航空公司代码(列carrier)相等:

hive job 监控 hive 实时查询_数据库_13

hive job 监控 hive 实时查询_数据库_14

 计算内连接后的记录条数:

 

hive job 监控 hive 实时查询_内连接_15

②左连接

使用LEFT JOIN命令做左连接,并指定连接条件为航空公司代码(列carrier)相等:

hive job 监控 hive 实时查询_数据连接_16

hive job 监控 hive 实时查询_数据库_17

 计算左连接后的记录条数:

 

hive job 监控 hive 实时查询_内连接_18

 选取连接结果中航空公司描述(列description)为空的记录:

hive job 监控 hive 实时查询_内连接_19

③全连接

使用FULL JOIN命令做全连接,并指定连接条件为航空公司代码(列carrier)相等:

hive job 监控 hive 实时查询_hive job 监控_20

hive job 监控 hive 实时查询_全连接_21

 计算全连接后的记录条数:

 

hive job 监控 hive 实时查询_全连接_22

 3.实验分析及小结

       在此次实验过程中,我初步认识、了解了基本查询、数据聚合与数据连接。由于步步紧跟指导,我的实验过程十分顺利,没有遇上问题。而在实验过程中,我体会到了不同的操作语句的执行时长的差异,例如倒序排列所需时间较长。在之后的实验中,我会更加细致,多学习到一些知识。