一、实验目的
本次实验为体验华为云的数据库探索服务,使用的数据包括两部分,第一部分为车辆定时上报的位置记录和异常驾驶行为触发上报的事件数据,第二部分为货运订单相关的信息。通过使用数据湖探索服务和OBS服务去处理这些数据,了解DLI是什么以及怎么使用DLI。
二、实验步骤
1.将数据上传到OBS
将数据上传到OBS,为后面在数据湖中完成数据分析做准备。
(1)下载OBS Browser
在OBS服务控制台,找到“下载OBS Browser”,点击链接下载OBS Browser。
(2)下载AK/SK
在控制台界面,单击“我的凭证”--->“管理访问秘钥”--->“新增访问秘钥”,查看自己账户的AK/SK。
(3)运行OBS Browser
解压压缩包,运行obs.exe,填入相关信息。
(4)创建桶并上传数据
数据来源http://forum.huaweicloud.com/forum.php?mod=viewthread&tid=1903&page=1&extra=#pid5285
2.分析数据
在控制台界面找到数据湖探索,点击进入。
(1)创建SQL作业
点击SQL作业右上角的“创建作业”
(2)创建数据库
(3)在demo数据库中建表
执行下面的语句,注意PATH中的”dli-demo-yangfudong”为之前创建的OBS名称
create table detail_records(
driverID String,
carNumber String,
latitude double,
longitude double,
speed int,
direction int,
siteName String,
time timestamp,
isRapidlySpeedup int,
isRapidlySlowdown int,
isNeutralSlide int,
isNeutralSlideFinished int,
neutralSlideTime long,
isOverspeed int,
isOverspeedFinished int,
overspeedTime long,
isFatigueDriving int,
isHthrottleStop int,
isOilLeak int) USING CSV OPTIONS (PATH 's3a://dli-demo-yangfudong/detail-records/');
(4)创建告警事件表
create table event_records(
driverID String,
carNumber String,
latitude double,
longitude double,
speed int,
direction int,
siteName String,
time timestamp,
isRapidlySpeedup int,
isRapidlySlowdown int,
isNeutralSlide int,
isNeutralSlideFinished int,
neutralSlideTime long,
isOverspeed int,
isOverspeedFinished int,
overspeedTime long,
isFatigueDriving int,
isHthrottleStop int,
isOilLeak int)
(5)将告警事件数据从详单中抽取出来插入到event_records表中。
insert into table event_records
(select *
from detail_records
where isRapidlySpeedup > 0
OR isRapidlySlowdown > 0
OR isNeutralSlide > 0
OR isNeutralSlideFinished > 0
OR isOverspeed > 0
OR isOverspeedFinished > 0
OR isFatigueDriving > 0
OR isHthrottleStop > 0
OR isOilLeak > 0)
(6)创建order_records表
点击“创建订单表”,然后从OBS中导入数据。
3.执行查询
(1)查询某个司机在某个时间段的违规记录
select
*
from
event_records
where
driverID = "panxian1000005"
and time >= "2017-01-01 00:00:00"
and time <= "2017-02-01 00:00:00"
(2)查询订单信息
select
*
from
order_records
where
orderNumber = "2017013013584419488"
order by
time desc
(3)根据司机和发车信息查询司机详细轨迹
select
driverID,
carNumber,
latitude,
longitude,
siteName,
time
from
detail_records
where
driverID = "zouan1000007"
and time > "2017-01-30 16:00:00"
and siteName IS NOT NULL
order by
time desc
三、实验感想
通过这次实验了解了DLI的使用,这次从体验上来说,使用DLI与使用数据库类似,都是通过查询来对数据进行分析。与普通数据库的不同可能在于数据的来源不同,DLI的数据来源于OBS,普通数据库的数据可能就是直接放在数据库中的。