离线大数据场景主要基于MaxCompute进行批量数据分析,实时数据场景主要是依靠实时计算做初步的数据清洗再对接数据库来完成数据的实时分析需求。但随着业务精细化运营的加深以及大促的常态化,单一的数据场景并不能满足业务的需求,而实时离线联合使用的场景诉求变得越来越多。例如双11大促当天快结束时,某手机店铺需要冲击一下销量,运营通过对实时数据分析发现当前店铺的加购率高但是转化不行,为了提高转化率,想针对部分人群发放一些优惠券或者红包来促进转化,但加购的实时人群数量庞大,如何选取最精准的人群成为一大难题。这时,运营调用历史购买数据即离线数据,通过对实时数据和离线数据在某个条件下的聚合查询对用户进行分层,最后筛选出最精准的人群来进行优惠券发放。
交互式分析与大数据生态无缝打通,在离线数据场景上,与MaxCompute在底层打通,支持直接查询/导入查询MaxCompute数据;在实时数据场景上,提供connect接口,支持实时计算(Blink)数据实时查询实时写入,只需要维护一套系统,就能实现实时离线的交互式查询。今天小编就为大家介绍,如何使用交互式分析来同时完成实时离线联合查询。
本次案例基于交互式分析的开发平台HoloStudio完成,关于HoloStudio的使用可以请参见往期传送门:
HoloStudio介绍:《交互式分析六脉神剑》之Dataworks-HoloStudio初体验
HoloStudio直接查询MaxCompute:在吗?0代码加速查询MaxCompute请查收!
HoloStudio查询实时计算:学会这个,实时数据(Blink)实时查询实时写入!
开发平台
前提条件
1.开通实时计算服务。
2.开通MaxCompute服务。
3.开通[交互式分析服务]。
4.确保以上3个服务在同一个region。
操作步骤
1.准备MaxCompute离线数据
登录DataWorks,新建业务流程--数据开发--ODPS SQL,输入MaxCompute作业信息
在MaxCompute中准备一张用户的离线数据表,主要用来存放以前用户的购买记录,本案例的示例数据如下:
2.准备实时数据
登录实时计算平台,新建作业,写入实时作业,对数据做初步的清洗,并引用资源包完成交互式分析与实时计算的连接。
作业检无误后提交,在生产环境启动该作业,最终作业输出如下:(数据最终存储在交互式分析里)
3.交互式分析联合查询数据
登录HoloStudio,在SQL Console里面执行临时查询,查询经过实时计算初步清洗的部分实时数据如下:(
HoloStudio新建外部表,查询的MaxCompute部分离线数据如下:(数据仍然存储在MaxCompute中)
现将实时数据与离线数据按照某个条件做聚合,例如查询过去1-2年购买过且当前加购金额超过8000元的用户。
SELECT a_id, sum(a_cost) as total from
(select user_id as a_id, cost as a_cost from holo_demo where salltime >='20171101' and salltime <= '20181101') hdm
join (SELECT user_id as b_id, cost as b_cost FROM blink_demo where cost >'8000' ) bdm on hdm.a_id = bdm.b_id
group by a_id;
join后的部分结果示例如下:
即可通过join后的id筛选出精准人群,来进行优惠券/红包投放。
本案例只是做简单的示例,具体的场景请根据业务需求进行数据聚合。
交互式分析与大数据生态无缝打通,不仅能实时查询离线数据以及实时数据,还能对离线数据、实时数据做联合查询,用一套SQL语言,在一套系统里面就能根据业务需求完成开发,无数据的冗余存储业务导入导出操作,在降低成本和运维的同时,也为开发降低难度。既然交互式分析功能这么强大,赶紧用起来把
如果大家在使用过程中有任何疑问,欢迎进钉钉群询问。