企业实训课第八节
继续补上节的知识点
- hive视图
[定义]- HIVE中的视图(view)是一种虚拟表,指保存定义,不实际存储数据。
- 通常从真实 物理表查询中创建生成视图,也可以从已经存在的视图上创建新视图。
- 创建视图时,将冻结视图的架构,如果删除或更改基础表,则视图将失败。
- 视图是用来简化操作的,不缓冲记录,也没有提高查询性能。
语法
--hive中有一张真实的基础表t_usa_covid19
select *
from t_usa_covid19;
--1、创建视图
create view v_usa_covid19 as select count_date, county,state,deaths from t_usa_covid19 limit 5;
--能否从已有的视图中创建视图呢 可以的
create view v_usa_covid19_from_view as select * from v_usa_covid19 limit 2;
--2、显示当前已有的视图
show tables;
show views;--hive v2.2.0之后支持
--3、视图的查询使用
select *
from v_usa_covid19;
--能否插入数据到视图中呢?
--不行 报错 SemanticException:A view cannot be used as target table for LOAD or INSERT
insert into v_usa_covid19 select count_date,county,state,deaths from t_usa_covid19;
--4、查看视图定义
show create table v_usa_covid19;
--5、删除视图
drop view v_usa_covid19_from_view;
--6、更改视图属性
alter view v_usa_covid19 set TBLPROPERTIES ('comment' = 'This is a view');
--7、更改视图定义
alter view v_usa_covid19 as select county,deaths from t_usa_covid19 limit 2;
10月底做完项目
滴滴出行项目
通过此项目实战,将某出行打车的**日志数据**来进行**数据分析**,如:**统计某一天订单量是多少、预约订单与非预约订单的占比是多少、不同时段订单占比**等。
通过此案例,必须掌握以下技术来进行数据分析:
- HDFS
- Hive Sql
- Zeppelin
- Sqoop
- Superset
项目架构方案
1. 用户打车的订单数据非常庞大,当遇到庞大的数据需要存储时,一般选择一个大规模数据的分布式文件系统来存储这些文件,HDFS作用就是海量存储大规模数据文件。
2. 为了方便进行数据分析,需要将这些日志文件数据映射为一张张的表——基于hive来构建数据仓库(为了提高数据处理的性能)
3. 基于Spark引擎来进行数据开发,所有的应用程序都将运行在Spark集群上。
4. 使用Zeppelin来快速将数据进行SQL指令交互
5. 使用Sqoop到处分析后的数据到传统型数据库,便于后期应用
6. 使用Superset来实现数据可视化展示。
日志数据集介绍
- 用户打车订单日志为例
构建数据仓库——数仓分层
目标:分析用户打车的订单,进行各类的指标计算(指标,例如:订单的总数、订单的总支付金额等等)。
我们学过HDFS以及HIVE,可以将日志数据上传到HDFS保存下来(HDFS保存海量数据),每天都可以上传。再将HDFS中的数据文件,对应到HIVE的表中。
但需要考虑一个问题,业务系统的日志数据不一定是能够直接进行分析的。
例如:我们需要分析不同时段的订单占比,凌晨有多少订单、早上有多少订单、上午有多少订单等。
但是,我们发现,原始的日志文件中,并没有区分该订单的是哪个时间段的字段。
所以,我们需要对日志文件的原始数据进行预处理,才能进行分析。
我们会有这么几类数据要考虑:
1. 原始日志数据(业务系统中保存的日志文件数据)
2. 预处理后的数据
3. 分析结果数据
这些数据我们都通过Hive来进行处理,因为Hive可以将数据映射为一张张的表,然后就可以通过编写HQL来处理数据了,简单、快捷、高效。为了区分以上这些数据,我们将这些数据对应的表分别保存在不同的数据库中。
构建数据仓库——创建数据库
根据之前的分析,我们的数仓架构为三层,接下来,创建三个数据库,分别用来管理每一层的表数据。
-- 创建ods库
create database if not exitsts ods_didi;
-- 创建dw库
create database if not exitsts dw_didi;
-- 创建app库
create database if not exitsts app_didi;
数据分区表构建
配置sqoop
配置步骤,参考文档
- sqoop 1.4.7的安装.docx
sqoop list-databases --connect jdbc:mysql://node1:3306/ --username root --password hadoop
出现这个,说明配置成功
安装superset
跟着手册来 superset安装.docx
用户名superset p:123456
- 进入superset
http://192.168.88.100:8099/login/
端口号
- zeppelin
http://node1:9090/ - superset 8099
- HDFS 9870
IDEA连接HIVE
小结
这一节视频课,主要是自己跟着手册实操。
这里总结需要看的文档手册
1、滴滴出行的PPT
2、sqoop数据导出数据并在superset上显示.docx
(连接数据库,必须先有didi的数据库,所以跟着手册做完~)
3、idea连接HIVE配置方法.ppt