-- 按产品分类查询销售量和销售额
select t2.product_category pro_category,
sum(order_quantity) sum_quantity,
sum(order_amount) sum_amount
from sales_order_fact t1, product_dim t2
where t1.product_sk = t2.product_sk
group by pro_category
order by pro_category;
-- 按产品查询销售量和销售额
select t2.product_name pro_name,
sum(order_quantity) sum_quantity,
sum(order_amount) sum_amount
from sales_order_fact t1, product_dim t2
where t1.product_sk = t2.product_sk
group by pro_name
order by pro_name;
点击“执行”按钮,结果显示按产品分类的销售统计,如下图所示。接着点击“下一页”按钮,结果会显示按产品的销售统计。
产品统计结果如下图所示。
产品统计柱状图如下图所示。-- 按州查询销售量和销售额
select t3.state state,
count(distinct t2.customer_sk) sum_customer_num,
sum(order_amount) sum_order_amount
from sales_order_fact t1
inner join customer_dim t2 on t1.customer_sk = t2.customer_sk
inner join customer_zip_code_dim t3 on t1.customer_zip_code_sk = t3.zip_code_sk
group by state
order by state;
-- 按城市查询销售量和销售额
select t3.city city,
count(distinct t2.customer_sk) sum_customer_num,
sum(order_amount) sum_order_amount
from sales_order_fact t1
inner join customer_dim t2 on t1.customer_sk = t2.customer_sk
inner join customer_zip_code_dim t3 on t1.customer_zip_code_sk = t3.zip_code_sk
group by city
order by city;
城市统计饼图如下图所示。
从图中可以看到,mechanicsburg市的销售占整个销售额的一半。
(8)再建立一个“按年月统计”的查询,这次使用动态表单功能,运行时输入年份。SQL语句如下。-- 按年月查询销售量和销售额
select t4.year*100 + t4.month ym,
sum(order_quantity) sum_quantity,
sum(order_amount) sum_amount
from sales_order_fact t1
inner join order_date_dim t4 on t1.order_date_sk = t4.date_sk
where (t4.year*100 + t4.month) between $ym1 and $ym2
group by ym
order by ym;
注意$ym1和$ym2是动态参数,执行此查询,会出现输入框要求输入参数,如下图所示。
[librdbms]
[[databases]]
[[[mysql]]]
# Name to show in the UI.
nice_name="MySQL DB"
name=hive
engine=mysql
host=172.16.1.102
port=3306
user=root
password=mypassword
这里配置的是一个MySQL数据库,如下图所示。
此时再次在Hue里点击“Query Editors” -> “DB 查询”,则会出现MySQL中hive库表,此库存放的是Hive元数据。此时就可以输入SQL进行查询了,如下图所示。
3. 建立定期执行销售订单示例的ETL工作流
下面说明建立工作流的详细步骤。
(1)登录Hue的Web主页,点击“Workflows” -> “编辑器” -> “Workflow”,打开“Workflow 编辑器”页面,如下图所示。
从图中看到,工作流预定义了16种操作,而且Start、End、Kill节点已经存在,不需要(也不能)自己定义。
(3)点击图标,打开工作区页面,如下图所示。
hdfs dfs -put -f /root/mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar /user/hue/oozie/workspaces/hue-oozie-1472779112.59
hdfs dfs -put -f /etc/hive/conf.cloudera.hive/hive-site.xml /user/hue/oozie/workspaces/hue-oozie-1472779112.59
hdfs dfs -put -f /root/regular_etl.sql /user/hue/oozie/workspaces/hue-oozie-1472779112.59
hdfs dfs -put -f /root/month_sum.sql /user/hue/oozie/workspaces/hue-oozie-1472779112.59
(6)回到“Workflow 编辑器”页面,拖拽添加三个“Sqoop 1”操作,如下图所示。
import --connect jdbc:mysql://cdh1:3306/source?useSSL=false --username root --password mypassword --table customer --hive-import --hive-table rds.customer --hive-overwrite
b. 点击“文件”,在“选择文件”页面点击“工作区”,选择hive-site.xml文件。
import --connect jdbc:mysql://cdh1:3306/source?useSSL=false --username root --password mypassword --table product --hive-import --hive-table rds.product --hive-overwrite
b. 点击“文件”,在“选择文件”页面点击“工作区”,选择hive-site.xml文件。
job --exec myjob_incremental_import --meta-connect jdbc:hsqldb:hsql://cdh2:16000/sqoop
b. 点击“文件”,在“选择文件”页面点击“工作区”,选择hive-site.xml文件。