Hive点滴 – 查询练习

本文学习一下Hive中的一些查询技巧。

初始化数据

首先创建我们所需的数据库:

第一个表定义了一张标识日期的纬度表。通过日期的ID可以找到该日期的年月,年,月,日,星期几,第几周,第几季度,旬、半月等信息

第二个表文件定义了订单的相关信息,主要字段有订单序号,交易地点ID,交易日期ID。

第三章表定义了订单详细信息,其内容包括:订单号,行号,货品,数量,金额。

下面将数据加载到三个表中:

检查数据:

通过HQL完成数据校验

在ETL中可能出现一些不正确的数据,比如OrderDetails和OrderList中信息不匹配。我们可以通过HQL语句来找到这些数据。

这可能出现没有正确的dateid字段的订单。我们下面通过一个not in语句来找到这些订单!
select a.* from sales.OrderList a where a.dateid not in (select dateid from sales.DateList);
1

通过HQL完成报表统计

统计所有订单中每年的销售单数、销售增额。

2
所有订单中销售最高的季度前n名

3
列出销售金额在100000以上的订单

4
找出订单中每年最畅销的商品
第一步:找到按年、商品id进行的统计汇总

第二步: 找到每年最大的商品销量

5
第三步:通过连接获得itemid

6

^^

Posted in BigData, HBase|Hive.